MySQL高级查询习题

提示:

emp员工表(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/comm佣金/deptno所属部门编号)

dept部门表(deptno部门编号/dname部门名称/loc地点)

工资 = 薪金 + 佣金

首先先知道主外键的关系,从提示中不难看出 dept 部门表是主键,emp 员工表是外键

在Emp 表中完成如下练习:

– 创建部门表

CREATE TABLE dept(

teptno VARCHAR(20) PRIMARY KEY,

dname VARCHAR(20),

loc VARCHAR(20));1

2

3

4

– 创建员工表

CREATE TABLE emp(empno VARCHAR(20) PRIMARY KEY,

ename VARCHAR(20),

job VARCHAR(20),

mar VARCHAR(20),

hiredate DATE,

sal DOUBLE,

comm DOUBLE,

deptno VARCHAR(20) REFERENCES dept(deptno));1

2

3

4

5

6

7

8

– 给部门表添加数据

INSERT INTO dept(teptno,dname,loc) VALUES("1","研发部","六楼");

INSERT INTO dept(teptno,dname,loc) VALUES("2","测试部","五楼");

INSERT INTO dept(teptno,dname,loc) VALUES("3","销售部","四楼");

INSERT INTO dept(teptno,dname,loc) VALUES("4","推广部","三楼");

INSERT INTO dept(teptno,dname,loc) VALUES("5","生产部","二楼");

INSERT INTO dept(teptno,dname,loc) VALUES("6","咨询部","一楼");1

2

3

4

5

6

– 给员工表添加数据

INSERT INTO emp VALUES("001","小团团","java开发工程师","111","2020-01-15",10000,4000,"1");

INSERT INTO emp VALUES("002","韩冰","妲己","111","2019-02-14",20000,2000,"2");

INSERT INTO emp VALUES("003","呆妹","java咨询师","111","2019-03-14",10000,1000,"3");

INSERT INTO emp VALUES("004","Uzi","乌老师","111","2017-05-14",50000,5000,"4");

INSERT INTO emp VALUES("005","letme","理论大师","111","2017-04-14",20000,8000,"5");

INSERT INTO emp VALUES("006","七七饿了","金牌讲师","111","2019-08-14",10000,2000,"6");

INSERT INTO emp VALUES("007","小橙子","金牌讲师","111","2020-07-14",20000,5000,"6");

INSERT INTO emp VALUES("008","小橘子","java开发工程师","111","2020-09-25",50000,5000,"1");

INSERT INTO emp VALUES("010","小兔子","老师","111","2020-10-01",30000,000,"6");

INSERT INTO emp VALUES("011","达摩","峡谷艺术家","111","2017-09-14",10000,2000,"3");1

2

3

4

5

6

7

8

9

10

1、在emp表中查询出所有的记录。

-- 1、在emp表中查询出所有的记录。

SELECT * FROM emp;1

2

2、在emp表中查询出薪水大于1500的记录,并且按照薪水的降序排列。

-- 2、在emp表中查询出薪水大于1500的记录,并且按照薪水的降序排列。

SELECT * FROM emp ORDER BY sal+comm DESC;1

2

3、在emp表中查询出comm字段为空值的记录。

-- 3、在emp表中查询出comm字段为空值的记录。

-- 先添加一个comm为空的数据

INSERT INTO emp (empno,ename,job,mar,hiredate,sal,deptno)VALUES("011","猪八戒","峡谷艺术家","111","2015-12.12","9000","2");

SELECT * FROM emp WHERE comm IS NULL;1

2

3

4

4、查询出emp表中含有几个部门的记录。(用DISTINCT去除重复记录)

-- 4、查询出emp表中含有几个部门的记录。(用DISTINCT去除重复记录)

SELECT COUNT(DISTINCT deptno) FROM emp;1

2

5、在emp表中查询出部门编号为5或6的记录。(要求使用IN关键字)

-- 5、在emp表中查询出部门编号为5或6的记录(要求使用IN关键字)

SELECT* FROM emp WHERE deptno IN(5,6);1

2

6、在emp表中查询出姓名的第二个字母为A的记录。

-- 6、在emp表中查询出姓名的第二个字母为A的记录。

-- 先添加一条第二个字母为A的数据

INSERT INTO emp VALUES("012","AAA","峡谷艺术家","111","2017-09-18",10000,6000,"3");

SELECT * FROM emp WHERE ename LIKE "_A%";1

2

3

4

7、查询出emp表中总共有多少条记录。

-- 7、查询出emp表中总共有多少条记录。

SELECT COUNT(*) FROM emp;1

2

8、查询emp表中出每个部门的部门代码、薪水之和、平均薪水。

-- 8、查询emp表中出每个部门的部门代码、薪水之和、平均薪水

SELECT AVG(sal+IFNULL(comm,0))AS '平均薪水',SUM(sal+IFNULL(comm,0))AS '薪水之和',deptno AS '部门编号' FROM emp GROUP BY deptno;1

2

不忘初心,砥砺前行

文章来源: blog.csdn.net,作者:小小小芒果,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_45686583/article/details/110550183

mysql高级查询练习题_MySQL高级查询习题相关推荐

  1. MySQL第九章索引_MySQL高级(索引优化+慢查询定位)

    一.先谈谈事务 1. ACID特性 1.1 原子性: 事务是最小的执行单位,不允许分割.事务的原子性确保动作要么全部完成,要么完全不起作用: 1.2 一致性: 执行事务前后,数据库从一个一致性状态转换 ...

  2. mysql 高级查询总结_MySQL高级查询总结

    (一)模糊查询 - 1.-like: mysql> select name as "姓名" from score where name like '张%'; +------- ...

  3. mysql高级查询 二_MySQL高级查询(二)

    EXISTS 和NOT EXISTS子查询 EXISTS子查询 语法: SELECT --- FROM 表名 WHERE EXISTS (子查询); 例: SELECT `studentNo` AS ...

  4. mysql 高级查询词_Mysql高级查询语句

    Exists子查询 Exists的特点 1.在执行create或drop语句前,可以使用exists语句来判断数据库对象是否存在,返回值是true或false drop table if exists ...

  5. mysql 慢日志 作用_MySQL慢查询日志的作用和开启

    前言 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中.lon ...

  6. mysql 查询重写_mysql 学习 - 查询重写规则

    条件化简 我们编写的查询语句的搜索条件本质上是一个表达式,这些表达式可能比较繁杂,或者不能高效的执行,MySQL的查询优化器会为我们简化这些表达式. 移除不必要的括号 有时候表达式里有许多无用的括号, ...

  7. mysql 前30秒_mysql – 简单查询需要15-30秒

    以下查询非常简单.它从消息表中选择最后20条记录,以便在分页方案中使用.第一次运行此查询时,需要15到30秒.后续运行只需不到一秒钟(我预计会涉及一些缓存).我试图确定为什么第一次这么长时间. 这是查 ...

  8. mysql慢查询单位_MySQL慢查询

    MySQL的慢查询,全名是慢查询日志,是MySQL提供的一种日志记录,用来记录在MySQL中响应时间超过阀值的语句.具体环境中,运行时间超过long_query_time值的SQL语句,则会被记录到慢 ...

  9. mysql or中有空查询慢_MySQL 慢查询日志

    1.定义 2.相关参数 2.开启 3.原因 4.慢查询日志工具mysqldumpslow 1.定义 作用:用来记录在MySQL中响应时间超过阀值的语句. 2.相关参数 mysql> show v ...

最新文章

  1. Linux控制Bash输出的格式与颜色
  2. Input.GetAxis
  3. 哈佛最新成果:温度高于25℃可降低新冠病毒传染率,但不足以完全控制疫情...
  4. java网络编程(六)
  5. linux复制和剪切命令,Linux命令 复制粘贴剪切
  6. C++ semi implicit euler半隐式向后欧拉法解算常微分方程(附完整源码)
  7. 一个开源工作者对开源与赚钱的一些想法
  8. day8 java的静态与实例
  9. Sphinx 文档例子
  10. 【cf-edu-round72: C 】The Number Of Good Substrings(思维)
  11. 【论文解读】MmWave Radar and Vision Fusion for Object Detection in Autonomous Driving: A Review
  12. 计算机无线网络设备有哪些,电脑无线上网设备有哪几种
  13. No qualifying bean of type报错问题处理
  14. Linux安装mariaDB以及修改Mariadb存储路径
  15. Win10 安装 PySC2 环境 -- DeepMind联合战网开发的《星际争霸 II》强化学习环境
  16. 【华为ICT大赛】华为云激活设备的方法以及数据上下行
  17. vue3动态组件警告提示
  18. linux红外遥控进程,46.Linux-分析rc红外遥控平台驱动框架,修改内核的NEC解码函数BUG(1)...
  19. IPHONE视频软件测试,工具|6款视频剪辑APP测评
  20. 二叉树的中序遍历 递归与非递归

热门文章

  1. Latex 字母上方箭头
  2. 域名怎么解析到服务器上
  3. MySQL导入mdx_一个简单的MDX案例及说明 (转)
  4. 曲线积分、曲面积分、二重积分、三重积分、定积分之间的转换
  5. viterbi译码算法简介
  6. 树莓派安装RTL-SDR驱动(编译安装)
  7. 国外知名网站Stackoverflow 历时两年评选出11本对程序员最有影响力的书籍
  8. 安卓pdf阅读器_一文看懂|Kindle和其他安卓电子书阅读器,该选哪个?图+视频一目了然...
  9. 抗锯齿下采样(Anti-aliasing/down-sampling)-python-numpy 实现
  10. 拦截器是干嘛用的java_拦截器、过滤器做什么的?