浅学一下SQL 2
[ code ]

DQL 数据查询语言

查询关键字:select

以下是DQL的语法:

select 字段列表 
from 表名列表

where 条件列表

group by 分组字段列表
having 分组后条件列表

order by 排序字段列表

limit 分页参数

基本查询

select 字段1,字段2,...,字段n from 表名; -- 查询多个字段
select * from 表名; --查询全部

select 字段1 [as 别名1],...,字段n [as 别名n] from 表名;
-- 别名的设置是可选的

select distinct 字段列表 from 表名; -- 对查询结果去重

条件查询

select 字段列表 from 表名 where 条件列表;

条件可以包括各类比较运算符,逻辑运算符:

聚合函数

-- 聚合函数可作用于表的某一列
-- null不参与聚合函数的运算
count --统计数量  
max --最大值
min --最小值
avg -- 平均值
sum --求和

-- 用法
select 聚合函数(字段列表) from 表名;

分组查询

select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];

where和having的区别:

where是分组之前过滤,不满足where条件的不参与分组,而having是对分组之后的结果进行过滤;where不能对聚合函数进行判断,而having可以。

执行顺序:where>聚合函数>having

排序查询

select 字段列表 from 表名 order by 字段1 排序方式1, 字段2 排序方式2;

排序方式有:ASC升序(default),DESC降序

如果是多字段排序,当第一个字段值相同时,才会参考第二个字段进行排序。

分页查询

select 字段列表 from 表名 limit 起始索引, 查询记录数;
-- 起始索引为(页码-1)*每页记录数

起始索引是从0开始的,如果查询的是第一页的数据,那么起始索引可以忽略。

DQL的执行顺序

编写顺序

  select   from   where   group by   having   order by    limit
-- 执行顺序
--    5           1         2            3             4            6             7       

DCL 数据控制语言

用来控制用户对数据库的访问权限:

-- 查询用户
use mysql;
select * from user;

-- 创建用户 主机名可以用百分号通配
create user '用户名'@'主机名' identified by '密码'

-- 修改密码
alter user '用户名'@'主机名' identified with mysql_native_password by '新密码'

--删除用户
drop user '用户名'@'主机名'

Reference