·DQL是用来查询数据库中表的记录
查询关键字:select
DQL-语法
·基本查询 :
·DQL-基本查询
①查询多个字段
select 字段1,字段2,字段3... from 表名;(查询某些字段)
select *from 表名;(查询所有字段)
②设置别名
select 字段1 [AS 别名1],字段2 [AS 别名2]...from 表名; (其中那个AS可以省略)
③去除重复记录
select distinct 字段列表 from 表名;
·DQL-条件查询
1.语法
select 字段列表 from 表名 where 条件列表;
2.条件
·DQL-聚合函数
1.介绍:将一列数据作为一个整体,进行纵向计算。
2.常见聚合函数:(是作用到某一列的)
函数 | 功能 |
count | 统计数量 |
max | 最大值 |
min | 最小值 |
avg | 平均值 |
sum | 求和 |
3.语法:
select 聚合函数(字段列表) from 表名;
注意:null值不参与所有聚合函数运算。
·DQL-分组查询
1.语法:
select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];
解释一下,分组查询要用到group by ,比如分年龄,就group by age,分组前的条件如例3分组前是先查询年龄小于25的员工,所以where age<25,分组后条件是员工数量大于等于3的,所以having count(*)>=3。from前的字段列表就是据的什么分组然后逗号算什么,如例3,据工作地址所以workaddress,算数量即count(*)。
2.where与having区别:
①执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
②判断条件不同:where不能对聚合函数进行判断,而having可以。
注意:
·执行顺序:where>聚合函数>having
·分组之后,查询的字段一般为聚合函数和分组字段,查询其它字段无任何意愿
·DQL-排序查询
1.语法:
select 字段列表 from表名 order by 字段1 排序方式1,字段2 排序方式2;
2.排序方式:
·ASC:升序(默认值)
·DESC:降序
注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。
·DQL-分页查询
1.语法:
select 字段列表 from 表名 limit 起始索引,查询记录数;
注意:
·起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数
·分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是limit
·如果查询的是第一页数据,起始索引可以省略,直接简写为limit 10
·DQL-案例练习
·DQL-执行顺序
·DQL-总结
小总结:
条件用where;分组用group by;排序用order by;分页用limit
对于条件,where 是在分了组之前过滤,having是在分了组之后过滤
·DCL--用来管理数据库用户、控制数据库的访问权限
1.查询用户:
use mysql;
select * from user;
2.创建用户:
create user '用户名'@'主机名' identified by '密码';
3.修改用户密码:
alter user '用户名'@'主机名' identified with mysql_native_password by '新密码';
4.删除用户:
orop user '用户名'@'主机名';
注意:
·主机名可以使用%通配
·这类SQL开发人员操作较少,主要是DBA(数据库管理员)使用