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

DQL-案例

一.题目:

1)分析:

1.有 姓名 ,性别,入职时间(需要开始时间和结束时间-->范围查询);

2.右下角有分页条-->需要分页展示

2)创建表的代码:

-- 员工管理
create table emp
(id          int unsigned primary key auto_increment comment 'ID',username    varchar(20)      not null unique comment '用户名',password    varchar(32) default '123456' comment '密码',name        varchar(10)      not null comment '姓名',gender      tinyint unsigned not null comment '性别, 说明: 1 男, 2 女',image       varchar(300) comment '图像',job         tinyint unsigned comment '职位, 说明: 1 班主任,2 讲师, 3 学工主管, 4 教研主管',entrydate   date comment '入职时间',create_time datetime         not null comment '创建时间',update_time datetime         not null comment '修改时间'
) comment '员工表';
​
INSERT INTO emp
(id, username, password, name, gender, image, job, entrydate, create_time, update_time)
VALUES (1, 'jinyong', '123456', '金庸', 1, '1.jpg', 4, '2000-01-01', now(), now()),(2, 'zhangwuji', '123456', '张无忌', 1, '2.jpg', 2, '2015-01-01', now(), now()),(3, 'yangxiao', '123456', '杨逍', 1, '3.jpg', 2, '2008-05-01', now(), now()),(4, 'weiyixiao', '123456', '韦一笑', 1, '4.jpg', 2, '2007-01-01', now(), now()),(5, 'changyuchun', '123456', '常遇春', 1, '5.jpg', 2, '2012-12-05', now(), now()),(6, 'xiaozhao', '123456', '小昭', 2, '6.jpg', 3, '2013-09-05', now(), now()),(7, 'jixiaofu', '123456', '纪晓芙', 2, '7.jpg', 1, '2005-08-01', now(), now()),(8, 'zhouzhiruo', '123456', '周芷若', 2, '8.jpg', 1, '2014-11-09', now(), now()),(9, 'dingminjun', '123456', '丁敏君', 2, '9.jpg', 1, '2011-03-11', now(), now()),(10, 'zhaomin', '123456', '赵敏', 2, '10.jpg', 1, '2013-09-05', now(), now()),(11, 'luzhangke', '123456', '鹿杖客', 1, '11.jpg', 2, '2007-02-01', now(), now()),(12, 'hebiweng', '123456', '鹤笔翁', 1, '12.jpg', 2, '2008-08-18', now(), now()),(13, 'fangdongbai', '123456', '方东白', 1, '13.jpg', 1, '2012-11-01', now(), now()),(14, 'zhangsanfeng', '123456', '张三丰', 1, '14.jpg', 2, '2002-08-01', now(), now()),(15, 'yulianzhou', '123456', '俞莲舟', 1, '15.jpg', 2, '2011-05-01', now(), now()),(16, 'songyuanqiao', '123456', '宋远桥', 1, '16.jpg', 2, '2010-01-01', now(), now()),(17, 'chenyouliang', '12345678', '陈友谅', 1, '17.jpg', NULL, '2015-03-21', now(), now()),(18, 'zhang1', '123456', '张一', 1, '2.jpg', 2, '2015-01-01', now(), now()),(19, 'zhang2', '123456', '张二', 1, '2.jpg', 2, '2012-01-01', now(), now()),(20, 'zhang3', '123456', '张三', 1, '2.jpg', 2, '2018-01-01', now(), now()),(21, 'zhang4', '123456', '张四', 1, '2.jpg', 2, '2015-01-01', now(), now()),(22, 'zhang5', '123456', '张五', 1, '2.jpg', 2, '2016-01-01', now(), now()),(23, 'zhang6', '123456', '张六', 1, '2.jpg', 2, '2012-01-01', now(), now()),(24, 'zhang7', '123456', '张七', 1, '2.jpg', 2, '2006-01-01', now(), now()),(25, 'zhang8', '123456', '张八', 1, '2.jpg', 2, '2002-01-01', now(), now()),(26, 'zhang9', '123456', '张九', 1, '2.jpg', 2, '2011-01-01', now(), now()),(27, 'zhang10', '123456', '张十', 1, '2.jpg', 2, '2004-01-01', now(), now()),(28, 'zhang11', '123456', '张十一', 1, '2.jpg', 2, '2007-01-01', now(), now()),(29, 'zhang12', '123456', '张十二', 1, '2.jpg', 2, '2020-01-01', now(), now());

二.书写条件语句:

条件如下:

案例1:按需求完成员工管理的条件分页查询 - 根据输入条件,查询第一页数据,每页展示10条记录

输入条件: ​ 姓名:张 ​ 性别:男 ​ 入职时间:2000-01-01 到 2015-12-31

  • 规则:

  • 代码实现:

    select *
    from 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:根据需求,完成员工信息的统计

  • 案例2-1:根据需求,完成员工性别信息的统计

    代码实现:

    先查询出男性员工和女性员工的数量:

    select gender, count(*)
    from emp
    group by gender;

运行结果为:

但题目要求的是男性员工和女性员工的数量,所以要把gender下面的信息中1改为男性员工,2改为女性员工

此时需要用到流程控制函数if 即

if(条件表达式,条件表达式结果为true取该值,条件表达式结果为false取该值)

代码实现:

select if(gender = 1, '男性员工', '女性员工'), count(*) -- gender为1时1改为男性员工,不为1时改为女性员工
from emp
group by gender;

运行结果为:

简化if(gender = 1, '男性员工', '女性员工'):

代码实现:

select if(gender = 1, '男性员工', '女性员工') 性别, count(*) -- gender为1时1改为男性员工,不为1时改为女性员工
from emp
group by gender;

运行结果为:

  • 案例2-2:根据需求,完成员工职位信息的统计

代码实现:

先查询职位数量:

select job, count(*)
from emp
group by job;

运行结果为:

根据题目需求,需要把job下面的1改为班主任,2改为讲师,3改为学工主管,4改为教研主管

(创建表时1代表班主任,2代表讲师,3代表学工主管,4代表教研主管)

由于此时需要修改的数据大于2,因此无法用if语句,要用到

另外一个流程控制函数 case

case 表达式 when 值1 then 结果1 when 值2 then 结果2 ...(后面可加多个修改方案) else ... end

(case 表达式 when 值1 then 结果1 when 值2 then 结果2 ...(后面可加多个修改方案) else ... end) 别名 即把case整个语句用括号括住后再在后面加一个别名即可把case后面的表达式改为别名

代码实现:

select (case jobwhen 1 then '班主任'when 2 then '讲师'when 3 then '学工主管'when 4 then '教研主管'else '未分配职位' end) 职位, count(*)
from emp
group by job;

运行结果为:


三.总结:

1.流程控制函数:

2.DQL:


相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 第10章 无持久存储的文件系统 (3)
  • 【hot100篇-python刷题记录】【和为 K 的子数组】
  • 写一个githubDemo
  • docker 安装minio并配置https域名访问
  • 4款AI 生成 PPT的工具,帮你赶上演示文稿的新趋势!
  • RabbitMQ的核心概念
  • 《九歌· 程序员》
  • 【stm32项目】多功能智能家居室内灯光控制系统设计与实现(完整工程资料源码)
  • kafka运维常用命令
  • 存储实验:华为异构存储在线接管与在线数据迁移(Smart Virtualization Smart Migration 特性)
  • C++ //练习 17.12 使用前一题中的数据结构,编写一个函数,它接受一个问题编号和一个表示真/假解答的值,函数根据这两个参数更新测验的解答。
  • 【轻松拿捏】什么是多态?如何在 Java 中实现多态?
  • 30. 串联所有单词的子串【 力扣(LeetCode) 】
  • 暑假算法刷题日记 Day 10
  • 记录jenkins的一个错误
  • .pyc 想到的一些问题
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • es6--symbol
  • java小心机(3)| 浅析finalize()
  • passportjs 源码分析
  • PAT A1017 优先队列
  • 码农张的Bug人生 - 初来乍到
  • 七牛云假注销小指南
  • 前端存储 - localStorage
  • 前端临床手札——文件上传
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • puppet连载22:define用法
  • 关于Android全面屏虚拟导航栏的适配总结
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #{}和${}的区别?
  • (31)对象的克隆
  • (day18) leetcode 204.计数质数
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (算法二)滑动窗口
  • (图)IntelliTrace Tools 跟踪云端程序
  • (转) ns2/nam与nam实现相关的文件
  • (转)fock函数详解
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • .Net - 类的介绍
  • .net 提取注释生成API文档 帮助文档
  • .NET 中 GetProcess 相关方法的性能
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • @ConfigurationProperties注解对数据的自动封装
  • @EnableWebMvc介绍和使用详细demo
  • @JsonFormat与@DateTimeFormat注解的使用
  • @vueup/vue-quill使用quill-better-table报moduleClass is not a constructor
  • [ 云计算 | AWS ] 对比分析:Amazon SNS 与 SQS 消息服务的异同与选择
  • [2023年]-hadoop面试真题(一)
  • [240727] Qt Creator 14 发布 | AMD 推迟 Ryzen 9000芯片发布
  • [BZOJ]4817: [Sdoi2017]树点涂色