自由的羽毛 发表于 2024-9-3 13:09:17

【Day07】

目录
MySQL-DQL- 基本查询
MySQL-DQL- 条件查询
MySQL-DQL- 聚合函数
MySQL-DQL- 分组查询
MySQL-DQL- 排序查询
MySQL-DQL- 分页查询
MySQL-DQL- 案例
MySQL-多表计划-一对多
MySQL-多表计划-一对多-外键束缚
MySQL-多表计划-一对一&多对多
MySQL-多表计划-案例-关系分析
MySQL-多表计划-案例-表布局

https://i-blog.csdnimg.cn/direct/2b6d4815ac144c2ea38c84d0fa5061ff.png
MySQL-DQL- 基本查询

https://i-blog.csdnimg.cn/direct/b57d0031719d425886ce003ba19ab14b.png
https://i-blog.csdnimg.cn/direct/d73f865909734f73a476a3a8d04bc432.png
-- DQL : 基本查询 --
-- 1.查询指定字段name,entrydate
select name,entrydate from tb_emp;

-- 2.查询返回所有字段
select id, username, password, name, gender, image, job, entrydate, create_time, update_time from tb_emp;
-- 不推荐(不直观、性能低)
select * from tb_emp;

-- 3.查询所有员工的name, entrydate,并起别名(姓名、入职时间)
select name '姓 名', entrydate 入职日期 from tb_emp;

-- 4.查询已有的员工关联了几种职位(不要重复)
select distinct job from tb_emp; MySQL-DQL- 条件查询

https://i-blog.csdnimg.cn/direct/ab137db5b7da4f15a7d54820f6666933.png
-- DQL : 条件查询 --
-- 1.查询 姓名 为 杨逍 的员工
select * from tb_emp where name = '杨逍' ;

-- 2.查询 id小于等于5 的员工信息
select * from tb_emp where id <= 5;

-- 3.查询 没有分配职位 的员工信息
select * from tb_emp where job is null;

-- 4.查询 有职位 的员工信息
select * from tb_emp where job is not null;

-- 5.查询密码不等于‘123456’ 的员工信息
select * from tb_emp where password != '123456';

-- 6.查询 入职日期 在‘2000-01-01’(包含)到‘2010-01-01’(包含)之间的员工信息
select * from tb_emp where entrydate between '2000-01-01' and '2010-01-01';

-- 7.查询 入职时间在‘2000-01-01’(包含)到‘2010-01-01’(包含)之间 且 性别为女 的员工信息
select * from tb_emp where entrydate between '2000-01-01' and '2010-01-01' && gender = 1;

-- 8.查询 职位是2(讲师),3(学工主管),4(教研主管) 的员工信息
select* from tb_emp where job = 2 || job = 3 || job =4;
select* from tb_emp where job in(2,3,4);

-- 9.查询 姓名 为两个字的员工
select * from tb_emp where name like '__';

-- 10.查询 姓‘张’ 的员工信息
select * from tb_emp where name like '张%';
 MySQL-DQL- 聚合函数

https://i-blog.csdnimg.cn/direct/e99caa8216c34df683b228a63e2ed9b3.png
https://i-blog.csdnimg.cn/direct/f2551d076c834e6ab5b075b6191e0a90.png
-- DQL : 分组查询 --
-- 聚合函数 : 不对null值进行运算的
-- 1.统计该企业员工数量 -- count
-- A.count(字段)
select count(name) from tb_emp;
select count(job) from tb_emp;

-- B.count(常量)
select count(1) from tb_emp;

-- C.count(*) -- 推荐
select count(*) from tb_emp;

-- 2.统计该企业最早入职的员工
select min(entrydate) from tb_emp;

-- 3.统计该企业最迟入职的员工
select max(entrydate) from tb_emp;

-- 4.统计该企业员工 ID 的平均值
select avg(id) from tb_emp;

-- 5.统计该企业员工的 ID 之和
select sum(id) from tb_emp;  MySQL-DQL- 分组查询

https://i-blog.csdnimg.cn/direct/d2fc0f4a825f432fad0749f6f02eb798.png
-- 分组
-- 1.根据性别分组 , 统计男性和女性员工的数量
select gender, count(*) from tb_emp group by gender;

-- 2.先查询入职时间在‘2015-01-01’(包含)以前的员工 , 并对结果根据职位分组 , 获取员工数量大于等于2的职位
select job, count(*) from tb_emp where entrydate <= '2015-01-01' group by job having count(*) >= 2;  MySQL-DQL- 排序查询

https://i-blog.csdnimg.cn/direct/3131d3becef74f7d8d8419adad75da65.png
-- 排序查询 --
-- 1.根据入职时间,对员工进行升序排序
select * from tb_emp order by entrydate asc;

-- 2.根据入职时间,对员工进行降序排序
select * from tb_emp order by entrydate desc;

-- 3.根据 入职时间 对公司员工进行 升序排序, 入职时间相同,再按照 更新时间进行降序排序
select * from tb_emp order by entrydate asc, update_time desc;
 MySQL-DQL- 分页查询

https://i-blog.csdnimg.cn/direct/7850a69ab81b4ece93039a33694c381a.png
-- 分页查询 --
-- 1.从 起始索引0 开始查询员工数据,每页展示5条数据
select * from tb_emp limit 0, 5;

-- 2.查询 第1页 员工数据,每页展示5条记录
select * from tb_emp limit 0, 5;

-- 3.查询 第2页 员工数据,每页展示5条记录
select * from tb_emp limit 5, 5;

-- 4.查询 第3页 员工数据,每页展示5条记录
select * from tb_emp limit 10, 5;


-- 起始索引 = (页码-1)*每页展示记录数
 MySQL-DQL- 案例

https://i-blog.csdnimg.cn/direct/4592a258b1bc4d21a829a779bda8bf14.png
-- 案例1 : 按需求完成对员工管理的条件分页查询 - 根据输入条件 , 查询第一页数据,每页展示10条记录
-- 输入条件 :
   -- 姓名 : 张
   -- 性别 : 男
   -- 入职时间 : 2000-01-012015-12-31
select *
from tb_emp
where name like '张%'
and gender = 1
and entrydate between '2000-01-01' and '2015-12-31'
order by update_time desc limit 0, 10; https://i-blog.csdnimg.cn/direct/471b9eac22ba4c6f98ba5f10fe6fd7f6.png
 
-- 案例2-1 : 根据需求,完成对员工性别信息的统计【统计出男性和女性员工各自多少人】 -- count(*)
-- if(条件表达式, true取值, false取值)
select if(gender = 1, '男性员工', '女性员工') 性别, count(*) from tb_emp group by gender;



-- 案例2-2 : 根据需求,完成员工职位信息统计
-- case 表达式 when 值1 then 结果1 when 值2 then 结果2 ......
select (case job
         when 1 then '班主任'
         when 2 then '讲师'
         when 3 then '学工主管'
         when 4 then '教研主管'
         else '未分配职位' end )职位, count(*)
from tb_emp
group by job; https://i-blog.csdnimg.cn/direct/45a19704cbbf442582a94b1e532cb55f.png
MySQL-多表计划-一对多

https://i-blog.csdnimg.cn/direct/6277ab9aaa94414796b92a5d447fa9b7.png
https://i-blog.csdnimg.cn/direct/2eff708f532446c48dcd44cb15a48798.png
 MySQL-多表计划-一对多-外键束缚

https://i-blog.csdnimg.cn/direct/c77efb785f474bb2bdc45bc458a0b55d.png
https://i-blog.csdnimg.cn/direct/d786297b1f6c48929243ff4262839568.png
https://i-blog.csdnimg.cn/direct/7b3c1a7a17444f6b80119c68eaa4ddc2.png
 MySQL-多表计划-一对一&多对多

https://i-blog.csdnimg.cn/direct/55a05895b6c044d78cc9c523681f9dd4.png
https://i-blog.csdnimg.cn/direct/0f8db43f66114c63ad1067aecfc909ee.png
 MySQL-多表计划-案例-关系分析

https://i-blog.csdnimg.cn/direct/6497d2ac19424fb19f13e10113de3556.png
https://i-blog.csdnimg.cn/direct/f1fbe07fff0b4331a51c7453cd224ff2.png
 MySQL-多表计划-案例-表布局

https://i-blog.csdnimg.cn/direct/5e412aec49dd46baa3b5a7d2ee59bfc1.png
https://i-blog.csdnimg.cn/direct/b0069686a1ff4fdfa30f0b5dbe26f4de.png
https://i-blog.csdnimg.cn/direct/d6d65b56353246a6b29bb8a3196a0ac6.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【Day07】