【Day07】

打印 上一主题 下一主题

主题 595|帖子 595|积分 1785

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



MySQL-DQL- 基本查询



  1. -- DQL : 基本查询 --
  2. -- 1.查询指定字段name,entrydate
  3. select name,entrydate from tb_emp;
  4. -- 2.查询返回所有字段
  5. select id, username, password, name, gender, image, job, entrydate, create_time, update_time from tb_emp;
  6. -- 不推荐(不直观、性能低)
  7. select * from tb_emp;
  8. -- 3.查询所有员工的name, entrydate,并起别名(姓名、入职时间)
  9. select name '姓 名', entrydate 入职日期 from tb_emp;
  10. -- 4.查询已有的员工关联了几种职位(不要重复)
  11. select distinct job from tb_emp;
复制代码
MySQL-DQL- 条件查询


  1. -- DQL : 条件查询 --
  2. -- 1.查询 姓名 为 杨逍 的员工
  3. select * from tb_emp where name = '杨逍' ;
  4. -- 2.查询 id小于等于5 的员工信息
  5. select * from tb_emp where id <= 5;
  6. -- 3.查询 没有分配职位 的员工信息
  7. select * from tb_emp where job is null;
  8. -- 4.查询 有职位 的员工信息
  9. select * from tb_emp where job is not null;
  10. -- 5.查询密码不等于‘123456’ 的员工信息
  11. select * from tb_emp where password != '123456';
  12. -- 6.查询 入职日期 在‘2000-01-01’(包含)到‘2010-01-01’(包含)之间的员工信息
  13. select * from tb_emp where entrydate between '2000-01-01' and '2010-01-01';
  14. -- 7.查询 入职时间  在‘2000-01-01’(包含)到‘2010-01-01’(包含)之间 且 性别为女 的员工信息
  15. select * from tb_emp where entrydate between '2000-01-01' and '2010-01-01' && gender = 1;
  16. -- 8.查询 职位是2(讲师),3(学工主管),4(教研主管) 的员工信息
  17. select  * from tb_emp where job = 2 || job = 3 || job =4;
  18. select  * from tb_emp where job in(2,3,4);
  19. -- 9.查询 姓名 为两个字的员工
  20. select * from tb_emp where name like '__';
  21. -- 10.查询 姓‘张’ 的员工信息
  22. select * from tb_emp where name like '张%';
复制代码
 MySQL-DQL- 聚合函数



  1. -- DQL : 分组查询 --
  2. -- 聚合函数 : 不对null值进行运算的
  3. -- 1.统计该企业员工数量 -- count
  4. -- A.count(字段)
  5. select count(name) from tb_emp;
  6. select count(job) from tb_emp;
  7. -- B.count(常量)
  8. select count(1) from tb_emp;
  9. -- C.count(*) -- 推荐
  10. select count(*) from tb_emp;
  11. -- 2.统计该企业最早入职的员工
  12. select min(entrydate) from tb_emp;
  13. -- 3.统计该企业最迟入职的员工
  14. select max(entrydate) from tb_emp;
  15. -- 4.统计该企业员工 ID 的平均值
  16. select avg(id) from tb_emp;
  17. -- 5.统计该企业员工的 ID 之和
  18. select sum(id) from tb_emp;
复制代码
 MySQL-DQL- 分组查询


  1. -- 分组
  2. -- 1.根据性别分组 , 统计男性和女性员工的数量
  3. select gender, count(*) from tb_emp group by gender;
  4. -- 2.先查询入职时间在‘2015-01-01’(包含)以前的员工 , 并对结果根据职位分组 , 获取员工数量大于等于2的职位
  5. select job, count(*) from tb_emp where entrydate <= '2015-01-01' group by job having count(*) >= 2;
复制代码
 MySQL-DQL- 排序查询


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


  1. -- 分页查询 --
  2. -- 1.从 起始索引0 开始查询员工数据,每页展示5条数据
  3. select * from tb_emp limit 0, 5;
  4. -- 2.查询 第1页 员工数据,每页展示5条记录
  5. select * from tb_emp limit 0, 5;
  6. -- 3.查询 第2页 员工数据,每页展示5条记录
  7. select * from tb_emp limit 5, 5;
  8. -- 4.查询 第3页 员工数据,每页展示5条记录
  9. select * from tb_emp limit 10, 5;
  10. -- 起始索引 = (页码-1)*每页展示记录数
复制代码
 MySQL-DQL- 案例


  1. -- 案例1 : 按需求完成对员工管理的条件分页查询 - 根据输入条件 , 查询第一页数据,每页展示10条记录
  2. -- 输入条件 :
  3.    -- 姓名 : 张
  4.    -- 性别 : 男
  5.    -- 入职时间 : 2000-01-01  2015-12-31
  6. select *
  7. from tb_emp
  8. where name like '张%'
  9.   and gender = 1
  10.   and entrydate between '2000-01-01' and '2015-12-31'
  11. order by update_time desc limit 0, 10;
复制代码

 
  1. -- 案例2-1 : 根据需求,完成对员工性别信息的统计【统计出男性和女性员工各自多少人】 -- count(*)
  2. -- if(条件表达式, true取值, false取值)
  3. select if(gender = 1, '男性员工', '女性员工') 性别, count(*) from tb_emp group by gender;
  4. -- 案例2-2 : 根据需求,完成员工职位信息统计
  5. -- case 表达式 when 值1 then 结果1 when 值2 then 结果2 ......
  6. select (case job
  7.            when 1 then '班主任'
  8.            when 2 then '讲师'
  9.            when 3 then '学工主管'
  10.            when 4 then '教研主管'
  11.            else '未分配职位' end )职位, count(*)
  12. from tb_emp
  13. group by job;
复制代码

MySQL-多表计划-一对多



 MySQL-多表计划-一对多-外键束缚




 MySQL-多表计划-一对一&多对多



 MySQL-多表计划-案例-关系分析



 MySQL-多表计划-案例-表布局





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

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

自由的羽毛

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表