# ----------排序查询--------
 # 语法
 # 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'@'%';

上图为常用---还有其他的可以查看官方文档
权限总结


















