MYSQL第一天的学习

1.什么是DB,DBMS,SQL?它们之间有什么关系?

  DB:    DataBase         表示数据库

  DBMS:    DataBase    Management  System      表示数据库管理系统  例如(MYSQL,Oracle等等)

  SQL: 结构化的查询语言,是一种高级语言

  三者的关系:

      DBMS 通过执行SQL语句去操作DM

       DBMS   -----(执行)SQL-----(操作)DB

2.表的介绍

  表(table)由   行,列,主键(目前还不清楚是啥东西)

    行:一般表示的是数据(data)

    列:表示字段,字段的三个要素:字段名,字段的数据类型,约束条件

3.SQL语句的分类(一共5大类)

  DQL     (数据查询语言)   一般的select语句都是DQL

  DML  (数据操作语言) insert,delete,update    对表中的数据进行 增 删 改  

  DDL       (数据定义语言) create,drop,alter     对表的结构进行   增 删 改

  TCL       (事务控制语言) commit(提交事务),rollback(回滚事务)

  DCL  (数据控制语言) grant(授权),revoke撤销权限等

4.如何查看MYSQL的版本

  使用    select version();

  

5.如何查看表的结构

  desc  表名;

6.查询当前使用的数据库

  select database();

7.如何退出MYSQL

  (1)exit

  (2)ctrl c

8.常见的MYSQL的命令

  show databases;查看当前所有的数据库

  use 库名     打开指定的库

  show tables;      查看当前库的所有表

  show tables from 库名    查看其他库的所有表

  show create table 库名      查看表的创建语句

9.注意

  SQL语句不区分大小写,但表中数据是有大小写的区分的,但MYSQL 的语法相对松散,如果一张表中,只有一个'SMITH',你去查询,使用‘smith’进行查询时,查找到的仍然是‘SMITH’!

10.查询一个字段

  select  字段名 from 表名;

  

11.查询多个字段,用‘,’隔开

  select 字段名1,字段名2 from 表名

12.查询全部字段

  select *from 表名

13.修改某一字段名的方法

  select 字段 as 新的字段名 from 表名

  

14. 当字段为中文或者其他字符时,用单引号括起来(‘’)

15.条件查询

    一般的大于小于不等于什么的与JAVA 没什么区别,在MYSQL中的不等于还可以写为<>

  between...and...必须满足左小右大的规则,它表示一个区间(左右都是闭区间(指数字))

  

  is null 的用处(提示:任何运算中有null参与的,最终的结果一定为null(除了分组函数))

  

and(相当于且),or(相当于或者),表连接

  in的用法与or类似

 

  like 模糊查询

  例如查询名字中带有‘o’的人

16.排序数据(默认为升序)

  单一字段排序

  想要按升序或者降序

(1)升序有两种方式

  默认:select salary from employees order by salary;

  升序:select salary from employees order by salary asc;

 (2) 降序:select salary from employees order by salary desc;

17.分组函数(共有五种)

  count    计数

  max   求最大值

  min   求最小值

  sum  求和

  avg  求平均

特点:

  1.不可以出现在where 后面

  2.自动忽略NULL!(上面说过有NULL参与的运算,最终的结果都为NULL,但在分组函数这里是忽略NULL,所以他的结果不是NULL)

18.分组查询(group by,having)

未使用group 的表

 使用group by 的表

还可以多字段分组,意思就是讲两个字段进行拼接分组

 要注意:使用group by 后,select 后面只能跟参与group by 分组的字段,

  having 的使用

  是你对使用group by 分组后的数据仍需过滤时使用having 。

例如下面这种形式

 其实这个举例并不是很合理,因为having 的效率低,完全可以使用where先进行筛选,再进行分组;  select salary from employees where salary >10000 group by salary;

我们一般在使用到分组函数时,因为分组函数不可以在where 后面使用,这时候可以使用having进行筛选。(所以少用having ,多用where)

而且having 与group by 是一起出现的,只要用到having ,就要有group by出现 ,having 就是为group by 服务的

一个完整的select 语句的格式如下

select 字段

from 表名

where ......

group by......

having......(不可单独出现)

order by......

以上语句的执行顺序

1.先进行from

2.where进行原始数据的过滤

3.group by进行分组

4.having 对分完组的数据进行处理操作

5.执行select 选出数据

6.最后执行order by的排序

这是学习MYSQL第一天的笔记!!加油学习!!1

猜你喜欢

转载自www.cnblogs.com/qingfengdream/p/12308411.html