当前位置: 首页 > news >正文

【Day07】

目录

MySQL-DQL- 基本查询

MySQL-DQL- 条件查询

MySQL-DQL- 聚合函数

MySQL-DQL- 分组查询

MySQL-DQL- 排序查询

MySQL-DQL- 分页查询

MySQL-DQL- 案例

MySQL-多表设计-一对多

MySQL-多表设计-一对多-外键约束

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

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

MySQL-多表设计-案例-表结构


MySQL-DQL- 基本查询

-- 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- 条件查询

-- 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- 聚合函数

-- 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- 分组查询

-- 分组
-- 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- 排序查询

-- 排序查询 --
-- 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- 分页查询

-- 分页查询 --
-- 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- 案例

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

 

-- 案例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 jobwhen 1 then '班主任'when 2 then '讲师'when 3 then '学工主管'when 4 then '教研主管'else '未分配职位' end )职位, count(*)
from tb_emp
group by job;

MySQL-多表设计-一对多

 MySQL-多表设计-一对多-外键约束

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

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

 MySQL-多表设计-案例-表结构

http://www.lryc.cn/news/430842.html

相关文章:

  • shell 控制台显示彩色文字的方法
  • Nginx: 缓存, 不缓存特定内容和缓存失效降低上游压力策略及其配置示例
  • Python 全栈系列266 Kafka服务的Docker搭建
  • 集合框架,List常用API,栈和队列初识
  • 构建全景式智慧文旅生态:EasyCVR视频汇聚平台与AR/VR技术的深度融合实践
  • C++结构体声明时初始化
  • 基于微信的热门景点推荐小程序的设计与实现(论文+源码)_kaic
  • 9、设计模式
  • 数学专题.
  • 如何提升网站的收录率?
  • HALCON根据需要创建自定义函数
  • 力扣SQL仅数据库(196~569)
  • 网络基础:理解IP地址、默认网关与网段(IP地址是什么,默认网关是什么,网段是什么,IP地址、默认网关与网段)
  • windows安装php7.4
  • 【代码随想录|图论part03之后】
  • 【项目一】基于pytest的自动化测试框架day1
  • 如何下载和安装 Notepad++
  • 笔记:如何使用Process Explorer分析句柄泄露溢出问题
  • HTTP/2
  • 如何在算家云搭建ComfyUI(AI绘画)
  • 公司的企业画册如何制作?
  • 13、Django Admin创建两个独立的管理站点
  • 使用docker compose一键部署 Openldap
  • 网站代运维与建设:HTTP虚拟专线的优势
  • 奇异递归模板模式(Curiously Recurring Template Pattern)
  • 【ArcGIS Pro实操第一期】最小成本路径(Least-cost path)原理及实操案例
  • 探索C++编程技巧:计算两个字符串的最长公共子串
  • 等保2.0--安全计算环境--TiDB数据库
  • 【unity实战】使用新版输入系统Input System+Rigidbody实现第三人称人物控制器(附项目源码)
  • 代码随想录算法训练营Day03 | 链表理论基础、203.移除链表元素 、707.设计链表、206.反转链表