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

黑马2024AI+JavaWeb开发入门Day05-数据库DDL、DML、DQL飞书作业

视频地址:哔哩哔哩

讲义作业飞书地址:day05作业(MySQL)

Day05的SQL挺简单的,固定格式多敲敲就好。

1、作业1

第一个作业是上课老师讲过的代码:

--  =================== DQL: 基本查询 ======================
-- 1. 查询指定字段 name,entry_date 并返回
select name, entry_date from emp;

-- 2. 查询返回所有字段
# 快捷方式,项目开发中不推荐
select * from emp;

-- 3. 查询所有员工的 name,entry_date, 并起别名(姓名、入职日期)
-- 别名中间有空格时需要加引号。
select name as 姓名, entry_date as ee from emp;

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

--  =================== DQL: 条件查询 ======================
-- 1. 查询 姓名 为 柴进 的员工
select * from emp where name='柴进';

-- 2. 查询 薪资小于等于5000 的员工信息
select * from emp where salary <= 5000;

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

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

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

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

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

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

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

-- 10. 查询 姓 '李' 的员工信息
select * from emp where name like '阮%';

-- 11. 查询 姓名中包含 '二' 的员工信息
select * from emp where name like '%二%';

--  =================== DQL: 分组查询 ======================
-- 聚合函数

-- 1. 统计该企业员工数量
-- 所有的聚合函数不参与null值的统计
-- 最好是count主键,或者是*,或者是count常量也可以
select count(id) from emp;
select count(username) from emp;
select count(job) from emp;
select count(*) from emp;
select count(1) from emp;

-- 2. 统计该企业员工的平均薪资
select avg(emp.salary) from emp;

-- 3. 统计该企业员工的最低薪资
select min(emp.salary) from emp;

-- 4. 统计该企业员工的最高薪资
select max(emp.salary) from emp;

-- 5. 统计该企业每月要给员工发放的薪资总额(薪资之和)
select sum(emp.salary) from emp;


-- 分组
-- 注意:分组之后,select后的字段列表不能随意书写,能写的一般是分组字段 + 聚合函数;
    -- where 后面不能写聚合函数,只能写在having里
-- 1. 根据性别分组 , 统计男性和女性员工的数量
select gender, count(*) from emp group by gender;

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

--  =================== 排序查询 ======================
-- 1. 根据入职时间, 对员工进行升序排序
select * from emp order by entry_date asc;

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

-- 3. 根据 入职时间 对公司的员工进行 升序排序 , 入职时间相同 , 再按照 更新时间 进行降序排序
select * from emp order by entry_date,update_time desc ;

select emp.job,count(job) from emp where entry_date <= '2015-01-01' group by job having count(job) >= 2 order by count(job) desc;


--  =================== 分页查询 ======================
-- 1. 从起始索引0开始查询员工数据, 每页展示5条记录
select * from emp limit 5;

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

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


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

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

2、作业2

create table clazz(
    id int unsigned primary key auto_increment comment 'ID,主键',
    class_name varchar(30) not null unique comment '班级名称',
    classroom varchar(20) comment '班级教室',
    class_start date not null comment '开课时间',
    class_end date not null comment '结课时间',
    class_status int not null comment '开课状态',
    subject int not null comment '学科',
    create_time datetime comment '创建时间',
    update_time datetime comment '修改时间'
) comment '班级表';


create table dept(
    id int unsigned primary key auto_increment comment 'ID,主键',
    dept_name varchar(10) not null unique comment '部门名称',
    create_time datetime comment '创建时间',
    update_time datetime comment '修改时间'
) comment '部门表';


http://www.kler.cn/a/418914.html

相关文章:

  • 【NLP 4、数学基础】
  • 多线程篇-8--线程安全(死锁,常用保障安全的方法,安全容器,原子类,Fork/Join框架等)
  • 基于Matlab实现三维点坐标生成点云(源码+数据)
  • CENet及多模态情感计算实战
  • 【接口封装】——11、Qt 的单例模式
  • 实习冲刺第三十六天
  • windows电脑上安装树莓派操作系统
  • Ubuntu问题 -- 使用scp将本机文件传输至ubuntu服务器中
  • Linux 链接概念
  • antd table 自定义表头过滤表格内容
  • flutter 解决webview加载重定向h5页面 返回重复加载问题
  • 电脑cpu带的字母代表啥
  • 牛客面经学习【2024/12/1】
  • 剪映自动批量替换视频、图片素材教程,视频批量复刻、混剪裂变等功能介绍
  • PDF版地形图矢量出现的问题
  • Linux下的root密码重置
  • Dockerfile打包部署
  • MYSQL 什么是内连接 外连接 左连接 右连接?及适用场景
  • C++11新增特性2
  • vue3typescript,shims-vue.d.ts中declare module的vue声明
  • C-操作符
  • Linux虚拟机安装nginx踩坑记录
  • 《UDS协议从入门到精通(UDS速查手册)》(完结撒花版)
  • Java之链表1
  • vue3+elPlus 选择框select 下拉数据过千条,页面卡顿,分页解决
  • Java中 HttpURLConnection 和 HttpClient 详解(初学者友好)