一、dept和emp表结构:

create table dept

(

deptno int(100) not null,

dname varchar(255),

loc    varchar(255),

);

alter table dept add constraint PK_DEPT primary key (deptno);

create table emp

(

empno    int(100) not null,

ename    varchar(255),

job varchar(255),,

mgr       int(100),

hiredate date,

sal       int(100),

comm      int(100),

deptno    int(100)

);

alter table EMP add constraint PK_EMP primary key (empno);

二、初始化数据:

insert into DEPT (DEPTNO, DNAME, LOC)

values (10, 'ACCOUNTING', 'NEW YORK');

insert into DEPT (DEPTNO, DNAME, LOC)

values (20, 'RESEARCH', 'DALLAS');

insert into DEPT (DEPTNO, DNAME, LOC)

values (30, 'SALES', 'CHICAGO');

insert into DEPT (DEPTNO, DNAME, LOC)

values (40, 'OPERATIONS', 'BOSTON');

commit;

insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)

values (7369, 'SMITH', 'CLERK', 7902, str_to_date('1980-12-17', '%Y-%m-%d'), 800, null, 20);

insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)

values (7499, 'ALLEN', 'SALESMAN', 7698, str_to_date('1981-02-20', '%Y-%m-%d'), 1600, 300, 30);

insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)

values (7521, 'WARD', 'SALESMAN', 7698, str_to_date('1981-02-22', '%Y-%m-%d'), 1250, 500, 30);

insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)

values (7566, 'JONES', 'MANAGER', 7839, str_to_date('1981-04-02', '%Y-%m-%d'), 2975, null, 20);

insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)

values (7654, 'MARTIN', 'SALESMAN', 7698, str_to_date('1981-09-28', '%Y-%m-%d'), 1250, 1400, 30);

insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)

values (7698, 'BLAKE', 'MANAGER', 7839, str_to_date('1981-05-01', '%Y-%m-%d'), 2850, null, 30);

insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)

values (7782, 'CLARK', 'MANAGER', 7839, str_to_date('1981-06-09', '%Y-%m-%d'), 2450, null, 10);

insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)

values (7788, 'SCOTT', 'ANALYST', 7566, str_to_date('1987-04-19', '%Y-%m-%d'), 3000, null, 20);

insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)

values (7839, 'KING', 'PRESIDENT', null, str_to_date('1981-11-17', '%Y-%m-%d'), 5000, null, 10);

insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)

values (7844, 'TURNER', 'SALESMAN', 7698, str_to_date('1981-09-08', '%Y-%m-%d'), 1500, 0, 30);

insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)

values (7876, 'ADAMS', 'CLERK', 7788, str_to_date('1987-05-23', '%Y-%m-%d'), 1100, null, 20);

insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)

values (7900, 'JAMES', 'CLERK', 7698, str_to_date('1981-12-03', '%Y-%m-%d'), 950, null, 30);

insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)

values (7902, 'FORD', 'ANALYST', 7566, str_to_date('1981-12-03', '%Y-%m-%d'), 3000, null, 20);

insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)

values (7934, 'MILLER', 'CLERK', 7782, str_to_date('1982-01-23', '%Y-%m-%d'), 1300, null, 10);

insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)

values (7978, 'MILLER', 'CLERK', 7782, str_to_date('1982-01-23', '%Y-%m-%d'), 1300, null, 40);

insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)

values (7972, 'MIKER', 'CLERK', 7792, str_to_date('1982-07-23', '%Y-%m-%d'), 3300, null, 40);

commit;

三、题目练习

1.列出至少有三个员工的所有部门。

select deptno from emp group by deptno having count(*)>3;

解析:该语句主要学习分组函数group by,以及对分组后过滤的条件函数having。需要注意的是使用了分组函数语句的select字段中不能包含group by后没有的字段,原因是如果显示非分组的字段就可能显示多条记录,就达不到按某字段分组的目的。Having只能用在分组函数group by后,相当于对分组后的记录做where条件过滤。

2.列出薪金比“SMITH”多的所有员工。

select * from emp where sal>(select sal from emp where ename='SMITH');

解析:该语句主要学习子查询,且子查询在where条件的后面。注意和3的区别。

3.列出所有员工的姓名及其直接上级的姓名。

select ename ,(select ename  from emp  where empno=a.mgr ) from emp a;

解析:该语句主要学习子查询,且子查询在select 和 from的中间,同时内部语句使用了外部语句的字段。注意和2的区别。

4.列出受雇日期早于其直接上级的所有员工。

select ename from emp a where hiredate>(select hiredate from emp where empno=a.mgr)

解析:该语句主要学习子查询,且子查询在where条件的后面。同时内部语句使用了外部语句的字段。注意和2的区别。注意和2的区别。

5.列出最低薪金大于1500的各种工作。

select job,min(sal) minsal from emp group by job having minsal >1500

解析:该语句主要学习分组函数,功能同1。

6.列出在每个部门工作的员工数量、平均工资和平均服务期限。

select deptno,count(*)people ,avg(sal),avg(DATEDIFF(CURDATE(),hiredate))avgdays from emp group by deptno

解析:该语句主要学习分组函数,同时学习其相关的统计函数count, avg等。

本人技术小白,如有错误或需改进之处,请各位大佬帮忙指出!谢谢!

MySQL员工表题目_MySql的sql语法练习【员工、部门】相关推荐

  1. 10-222 在员工表中查询每年入职的员工人数

    分数 3 全屏浏览题目 切换布局 作者 刘冬霞 单位 山东理工大学 在员工表中查询每年入职的员工人数,结果按入职年份升序排列. 表结构: 员工(员工编号 文本型,姓名 文本型,性别 文本型,出生日期 ...

  2. mysql数据库员工表创建_mysql数据库简单练习(创建表格,增删改查数据)

    1.创建一个员工表 字段     属性 id        整形(int) name     字符串(varchar)(长度为20) gender    字符串(长度为2) birthday  日期型 ...

  3. golang mysql多表查询_MySQL多表查询

    一 多表连接查询 #重点:外链接语法 SELECT 字段列表 FROM 表1 INNER|LEFT|RIGHT JOIN 表2 ON 表1.字段= 表2.字段; #建表 create table de ...

  4. mysql创建表参数_MySQL创建数据表(CREATE TABLE语句)

    在创建数据库之后,接下来就要在数据库中创建数据表.所谓创建数据表,指的是在已经创建的数据库中建立新表. 创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性.引用完整性和域 ...

  5. 修改mysql注册表在_mysql服务如何修改注册表

    我就废话不多说了,大家还是直接看代码吧~create or replace function aa1(a1 integer[],a2 bigint) returns void AS $$declare ...

  6. groovy怎样从sql语句中截取表名_Mysql和SQL

    基本概念 1.数据库DataBase简称:DB 2.什么数据库?--用于存储和管理数据的仓库.存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次 ...

  7. mysql 大表 驱动_MySql 小表驱动大表

    在了解之前要先了解对应语法 in 与 exist. in后的括号的表达式结果要求之输出一列字段.与之前的搜索字段匹配,匹配到相同则返回对应行. mysql的执行顺序是先执行子查询,然后执行主查询,用子 ...

  8. mysql数据表操作_MySQL数据表基本操作实例详解

    本文实例讲述了MySQL数据表基本操作.分享给大家供大家参考,具体如下: 数据表的基本操作 1.主键约束要求主键列的数据唯一,并且不允许为空.主键能够唯一地识别表中的一条记录,可以结合外键来定义不同数 ...

  9. mysql myisam表分区_MySQL分区表的局限和限制详解

    禁止构建 分区表达式不支持以下几种构建: 存储过程,存储函数,UDFS或者插件 声明变量或者用户变量 可以参考分区不支持的SQL函数 算术和逻辑运算符 分区表达式支持+,-,*算术运算,但是不支持DI ...

最新文章

  1. phpstudy集成环境安装redis扩展
  2. 上海大学计算机技术 a股,这所上海大学短时间就成为211,实力强劲却不为人知,适合捡漏...
  3. Kubernetes集群安全概述
  4. C语言课后习题(24)
  5. iis服务器怎么限制运行asp文件,Win2008 r2 IIS7.5制定目录禁止执行脚本的方法
  6. PHP配置问题(找不到指定模块)解决办法
  7. tcp 11种状态转换图
  8. 局域网计算机维护工具,局域网共享工具,教您局域网共享工具
  9. Java - 生成健康证图片,各种模板图片
  10. Node.js七天搞定微信公众号(又名:Koa2实现电影微信公众号前后端开发)- 问题汇总
  11. 以太坊 2.0 中的验证者经济模型,Part-1
  12. HTML5响应式手机软件下载网站源码 APP应用软件下载站pbootcms模板
  13. 华为Mate 20 Pro拆解、iPhone XR 拆解、iPhone XS/XS Max拆解
  14. 个保法下个人信息委托处理活动合规要点
  15. 论文精读|VRCNet:变分关联点云补全网络(CVPR2021)
  16. conda,anaconda,miniconda的区别
  17. Qt error: /usr/bin/ld: cannot find -lGL: No such file or directory
  18. 第一次作业:幻想科技
  19. 本科科研经历(技术干货篇-论文发表流程)
  20. Awakening Your Senses【唤醒你的感觉官能】

热门文章

  1. 车机2个TDM8和1个TDM16对于外置功放设计的影响
  2. Quick3D 学习文档
  3. setsockopt函数
  4. 基于PSoC4的矢量控制方案 :电流采样
  5. 利用广度策略解决迷宫问题
  6. qt QGraphicsScene 简单例子
  7. 各银行ATM(自动柜员机) 取款费用+信用卡收费标准+网上银行收费标准
  8. Swagger 测试(个人备份)
  9. VS2015 对Excel读写操作
  10. SQL 常用语句书写格式以及示例