# ----------排序查询--------
# 语法
# select 字段列表 from 表名 order by 字段1 排序方式1 ,字段2 排序方式2 ; DESC 降序 ASC升序
# 1 根据年龄对公司的员工进行升序排序---默认升序-黄色提示代码冗余
select * from userTable order by age ASC ;
# 2 根据入职时间,对员工进行降序排序
select * from userTable order by entrydate DESC ;
# 3 根据年龄对公司的员工进行升序排序,年龄相同,在按照入职时间进行降序排序
# (首先对age进行升序排序,-之后对年龄相同的-用入职时间进行降序排序)
select * from userTable order by age asc ,entrydate DESC ;
# =============================================
# ---------------分页查询--------------
# 字段 limit
# 语法 select 字段列表 form 表 limit 起始索引 查询记录数 ;
# **** 索引公式--(查询)页码-1 * 页面展示数,起始页0
# 1 查询员工第一页员工数据,每页展示2条
select * from userTable limit 0 , 2 ;
# 2 查询员工第二页员工数据,每页展示2条 (其实页-》页码-1 * 条数)
select * from userTable limit 2 , 2;
案例练习--dql查询语句
# 批量添加 字段 值
insert into userTable(id, workno, name, gender, age, idcard, worknoaddress, entrydate)
values (1,'1','柳岩','女',18,'123123123123123123','武汉','2023-6-26'),
(2,'2','张无忌','男',20,'123123123123123123','天龙八部','2022-7-26'),
(3,'3','韦一笑','男',18,'123123123123123123','天龙八部','2021-7-26'),
(4,'4','周芷若','女',25,null,'天龙八部','2023-7-26'),
(5,'5','谢逊','男',88,'12312312312312312x','天龙八部','2023-3-26'),
(6,'6','张三丰','女',100,'123123123123123123','天龙八部','2023-2-26'),
(7,'7','刘亦菲','女',18,'123123123123123123','武汉','2023-7-26')
;
# 1 查询年龄为 20 21 22 23 得男性员工信息
select * from userTable where gender = '男' && (age = 20 || age = 21 || age = 22 || age = 23) ;
select * from userTable where gender = '男' && age in (20,21,22,23);
select * from userTable where gender = '男' && age between 20 and 23 ;
# 2 查询 性别未男,且年龄再20-40(含)以内的姓名未三个字的员工 (含20 和40)
select * from userTable where gender = '男' && (age between 20 and 40) && name like '---';
select * from userTable where gender = '男' && (age >= 20 && age <= 40) && name like '---';
# 3 统计员工表,年龄小于60的 ,男性员工和女性员工的人数
select gender,count(*) from userTable where age < 60 group by gender;
# 4 查询所有年龄小于等于35岁员工的姓名和年龄,并对查询结果按年龄升序排序,如果年龄相同按入职时间降序排序
# 5r
select name,age ,entrydate from userTable where age <= 35 order by age asc , entrydate desc ;
# 5 查询性别为男,年龄10-40(含)以内的5个员工信息,对查询结果按照年龄升序排序,年龄相同按入职时间升序排序
select * from userTable where gender = '男' && age between 10 and 40 order by age asc ,entrydate desc limit 0 , 5;
DQL 编写顺序 执行顺序
# 查询年龄大于15的员工的姓名,年龄,并根据年龄进行升序排序---验证执行顺序
select t.age tage,t.name tname from userTable t where t.age > 15 order by tage asc;
# 首先 执行 from 表明 别名 t
# 再执行 where 后的条件 ---- 可以使用t.age ,执行顺序在select 前面无法使用tage别名
# 再执行 group by
# 再执行分组条件 having
# 再执行select --------------字段 t.age 别名tage
# 再执行 order by 执行顺序在select后面可以使用别名 tage
# 最后 limit
# 总结
# 字段 和 表 加别名 是 as关键字 也可以 省略
# where 条件可以使用 and(&&) or(||) 进行连接
# 分组查询 group by 分组 having 对分组后进行过滤
# 排序查询 order by asc升序 desc降序
# 分页 limit 参数 起始索引(从零开始),每页展示的数据 查询页码 = 索引 = 查询页 - 1 * 条数
# ==========================================
# --------------------------dcl-------(管理数据库用户-控制数据库的访问权限)
#用户管理
# 1查询用户
# 用户权限都存在 mysql 数据库的 user表里
# 2创建用户
# 语法 create user '用户名'@'主机名' identified by '密码'
# 3修改用户密码
# 4删除用户
# 需求
# 创建用户itcast 只能够在当前主机localhost访问,密码123456
create user 'itcast'@'localhost' identified by '123456';
# 创建用户heima 访问密码1234 %代表任意主机
create user 'heima'@'%' identified by '123';
# 修改用户密码--
# 语法 密码加密方式
# alter user '用户名'@'主机名' identified with mysql_native_password by '新密码'
alter user 'heima'@'%' identified with mysql_native_password by '1234';
# 删除itcast@localhost用户
drop user 'itcast'@'localhost';
# 总结--主机名可以使用%通配(任意主机都可以访问)
#运维 dba 使用较多
# ------------dcl--权限控制
# 查询权限-----语法 show grants for '用户名'@'主机名'
show grants for 'heima'@'%';
# 通用就--------------------------- *.*
# 授予权限-----语法 grant 权限列表 on 数据库名.表名 to '用户名'@'主机名'
# 所有权限 拥有itcast 所有表 用户 ---从右向左读
grant all on itcast.* to 'heima'@'%';
# 所有权限 拥有所有数据库 所有表 用户 ---从右向左读
grant all on *.* to 'heima'@'%';
# 撤销权限-----语法revoke 权限列表 no 数据库名.表名 from '用户名'@'主机名'
revoke all on itcast.* from 'heima'@'%';
上图为常用---还有其他的可以查看官方文档
权限总结