根据下面表的描述,创建DEPT和EMP表,并运行下列SQL,最终完成后面的练习

1、   部门表:DEPT

No.

字段名称

类型

描述

1

DEPTNO

BIGINT

部门编号,由两位数字所组成(主键)

2

DNAME

VARCHAR(20)

部门名称,由14位字符所组成

3

LOC

VARCHAR(20)

部门位置

2、   雇员表:EMP

No.

字段名称

类型

描述

1

EMPNO

BIGINT

雇员编号,由四位数字所组成(主键)

2

ENAME

VARCHAR(20)

雇员姓名

3

JOB

VARCHAR(20)

职位

4

MGR

BIGINT

一个雇员对应的领导编号(雇员编号)

5

HIREDATE

DATE

雇员的雇佣日期

6

SAL

DOUBLE(7,2)

基本工资,由两位小数和五位整数所组成

7

COMM

DOUBLE(7,2)

奖金/奖金

8

DEPTNO

BIGINT

一个雇员所在的部门编号,与dept表的对应

DEPT表数据:

INSERT INTO `DEPT` VALUES (10, 'ACCOUNTING', 'NEW YORK');

INSERT INTO `DEPT` VALUES (20, 'RESEARCH', 'DALLAS');

INSERT INTO `DEPT` VALUES (30, 'SALES', 'CHICAGO');

INSERT INTO `DEPT` VALUES (40, 'OPERATIONS', 'BOSTON');

EMP表数据:

INSERT INTO `EMP` VALUES (7369, 'SMITH', 'CLERK', 7902, '1980-12-17', 800, NULL, 20);

INSERT INTO `EMP` VALUES (7499, 'ALLEN', 'SALESMAN', 7698, '1981-02-20', 1600, 300, 30);

INSERT INTO `EMP` VALUES (7521, 'WARD', 'SALESMAN', 7698, '1981-02-22', 1250, 500, 30);

INSERT INTO `EMP` VALUES (7566, 'JONES', 'MANAGER', 7839, '1981-04-02', 2975, NULL, 20);

INSERT INTO `EMP` VALUES (7654, 'MARTIN', 'SALESMAN', 7698, '1981-09-28', 1250, 1400, 30);

INSERT INTO `EMP` VALUES (7698, 'BLAKE', 'MANAGER', 7839, '1981-05-01', 2850, NULL, 30);

INSERT INTO `EMP` VALUES (7782, 'CLARK', 'MANAGER', 7839, '1981-06-09', 2450, NULL, 10);

INSERT INTO `EMP` VALUES (7788, 'SCOTT', 'ANALYST', 7566, '1987-04-19', 3000, NULL, 20);

INSERT INTO `EMP` VALUES (7839, 'KING', 'PRESIDENT', NULL, '1981-11-17', 5000, NULL, 10);

INSERT INTO `EMP` VALUES (7844, 'TURNER', 'SALESMAN', 7698, '1981-09-08', 1500, 0, 30);

INSERT INTO `EMP` VALUES (7876, 'ADAMS', 'CLERK', 7788, '1987-05-23', 1100, NULL, 20);

INSERT INTO `EMP` VALUES (7900, 'JAMES', 'CLERK', 7698, '1981-12-03', 950, NULL, 30);

INSERT INTO `EMP` VALUES (7902, 'FORD', 'ANALYST', 7566, '1981-12-03', 3000, NULL, 20);

INSERT INTO `EMP` VALUES (7934, 'MILLER', 'CLERK', 7782, '1982-01-23', 1300, NULL, 10);

练习题:

01.查询每个雇员的编号、姓名、职位。

02.查询每个雇员的职位,职位。

03.查询每个雇员的职位,使用DISTINCT消除掉显示的重复记录。

04.计算出每个雇员的基本年薪,同时查询出雇员的编号、姓名。

05.每个雇员每个月公司会补贴饭食200元,交通补助300元,计算年薪(年薪=(工资+奖金)*12)。

06.查询基本工资高于2000的全部雇员信息。

07.查询出smith的信息。

08.查询出所有不是CLERK的详细信息。

09.查询出所有销售人员(SALESMAN)的基本信息,并且要求销售人员的工资高于1300。

10.查询出工资范围在1500~3000之间的全部雇员信息(包含1500和3000)。

10.1查询出工资范围不在1500~3000之间的全部雇员信息(不包含1500和3000)。

11.查询出所有经理或者是销售人员的信息,并且要求这些人的基本工资高于1500。

12.要求查询出所有在1981年雇佣的雇员信息。

13.查询所有领取奖金的雇员信息(comm不为空)。

14.查询所有领取奖金高于100的雇员信息。

15.查询出雇员编号是7369、7566、9999的雇员信息。

16.查询出所有雇员姓名是以A开头的全部雇员信息。

17.查询出雇员姓名第二个字母是M的全部雇员信息。

18.查询出雇员姓名任意位置上包含字母A的全部雇员信息。

19.查询出所有雇员的信息,要求按照工资排序。

SELECT * FROM emp WHERE ENAME LIKE '%A%'

20.要求查询所有雇员的信息,按照雇佣日期由先后排序。

SELECT * FROM emp ORDER BY HIREDATE

21.查询全部雇员信息,按照工资由高到低排序,如果工资相同,则按照雇佣日期由先后排序。

SELECT * FROM emp ORDER BY SAL DESC,HIREDATE ASC

22.查询部门30中的所有员工。

SELECT * FROM emp WHERE DEPTNO='30'

23.查询出所有办事员(CLERK)的姓名,编号和部门编号。

SELECT ENAME,EMPNO,DEPTNO FROM emp WHERE JOB ='CLERK'

24.查询出奖金高于薪金的员工。

SELECT * FROM emp WHERE IFNULL(COMM,0)>SAL

25.查询出奖金高于薪金的60%的员工。

SELECT * FROM emp WHERE IFNULL(COMM,0)>SAL*0.6

26.查询出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料。

SELECT * FROM emp WHERE (DEPTNO='10' AND JOB='MANAGER') OR (DEPTNO='20' AND JOB='CLERK')

27.查询出部门10中所有经理,部门20中所有办事员,既不是经理又不是办事员但其薪金大于或等于2000的所有员工的信息。

SELECT * FROM emp WHERE (DEPTNO='10' AND JOB='MANAGER') OR (DEPTNO='20' AND JOB='CLERK') OR (JOB<>'MANAGER' AND JOB<>'CLERK' AND SAL>=2000)

28.查询出收取奖金的员工的不同工作。

SELECT DISTINCT JOB FROM emp WHERE IFNULL(COMM,0)>0

39.查询出不收取奖金或收取的奖金低于100的员工。

SELECT * FROM emp WHERE IFNULL(COMM,0)=0 OR IFNULL(COMM,0)<100

40.查询出不带有“R”的员工的姓名。

SELECT * FROM emp WHERE ENAME NOT LIKE '%R%'

41.查询出每个雇员的姓名、职位、领导姓名。

SELECT e.ENAME 雇员姓名,e.JOB 职位,m.ENAME 经理姓名 FROM emp e,emp m WHERE e.MGR=m.EMPNO

42.查询出所有员工的编号、姓名及其直接上级的编号、姓名,显示的结果按领导年工资的降序排列。

SELECT e.EMPNO 员工编号,e.ENAME 员工姓名,m.EMPNO 上级编号,m.ENAME 上级姓名,(m.SAL+IFNULL(m.COMM,0))*12

FROM emp e,emp m

ORDER BY (m.SAL+IFNULL(m.COMM,0))*12 DESC

43.查询出在销售部(SALES)工作的员工姓名、基本工资、雇佣日期、部门名称。(不知道销售部编号)。

SELECT e.ENAME 员工姓名,e.SAL 基本工资,e.HIREDATE 雇用日期,d.DNAME 部门名称

FROM emp e,dept d

WHERE d.DNAME='SALES' AND d.DEPTNO=e.DEPTNO

44.查询出所有员工的姓名、部门名称和工资。

SELECT e.ENAME 员工姓名,d.DNAME 部门名称,e.SAL 工资

FROM emp e,dept d

WHERE e.DEPTNO=d.DEPTNO

45.查询出所有员工的年工资,所在部门名称,按年薪从低到高排序。

SELECT e.ENAME 姓名,(e.SAL+IFNULL(e.COMM,0))*12 年工资,d.DNAME 部门

FROM emp e,dept d

WHERE e.DEPTNO=d.DEPTNO

ORDER BY (e.SAL+IFNULL(e.COMM,0))*12 ASC

46.查询出某个员工的上级主管及所在部门名称,并要求出这些主管中的薪水超过3000。

SELECT e.ENAME 主管姓名,e.JOB 职位,d.DNAME 部门,e.SAL 工资

FROM emp e,dept d

WHERE e.DEPTNO=d.DEPTNO AND e.JOB='MANAGER' AND e.SAL>3000

47.查询出公司的最高和最低工资。

SELECT MAX(e.SAL) 最高工资,MIN(e.SAL) 最低工资 FROM emp e

48.查询出每个部门的人数、平均工资,只显示部门编号。

SELECT COUNT(e.ENAME) 部门人数,AVG(e.SAL) 平均工资,d.DEPTNO 部门编号

FROM emp e,dept d

WHERE e.DEPTNO=d.DEPTNO

GROUP BY d.DEPTNO

49.查询出每种职位的最高和最低工资。

SELECT MAX(e.SAL) 最高工资,MIN(e.SAL) 最低工资,e.JOB 职位

FROM emp e

GROUP BY e.JOB

50.查询平均工资高于2000的职位信息,以及从事此职位的雇员人数、平均工资。

SELECT e.JOB 职位,COUNT(e.ENAME) 员工人数,AVG(e.SAL) 平均工资

FROM emp e

WHERE (SELECT AVG(m.SAL) FROM emp m WHERE e.JOB=m.JOB)>2000

GROUP BY e.JOB

51查询出至少有一个员工的所有部门编号、名称,并统计出这些部门的平均工资、最低工资、最高工资。

SELECT d.DEPTNO 部门编号,d.DNAME 部门名称,AVG(e.SAL) 平均工资,MIN(e.SAL) 最低工资,MAX(e.SAL) 最高工资

FROM emp e,dept d

WHERE (SELECT COUNT(e.ENAME) FROM emp)>0 AND e.DEPTNO=d.DEPTNO

GROUP BY d.DEPTNO

52.查询出部门名称和这些部门的员工信息(数量、平均工资),同时列出那些没有员工的部门。

sql语句练习题或面试题相关推荐

  1. 计算机导论sql试题,数据库SQL语句练习题

    一.            设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表( ...

  2. 50个SQL语句练习题

    50个SQL语句练习题 –1.学生表 Student(SNO,Sname,Sage,Ssex) –SNO 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 –2.课程表 Cour ...

  3. 【MySQL】- 05 sql 语句练习题

    sql 语句练习题 一 测试数据的准备 二.数据查询 1.`查询"01"课程比"02"课程成绩高的学生的信息及课程分数` 2.`查询"01" ...

  4. MySQL SQL语句练习题

    MySQLSQL语句练习题 0 创建测试数据库 1 取得每个部门最高薪水的人员名称 2 哪些人的薪水在部门的平均薪水之上 3 取得部门中(所有人的)平均的薪水等级 4 不准用组函数(Max),求得最高 ...

  5. 学生选课系统数据库SQL语句练习题

    设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表 ...

  6. 学生选课在MYSQL创建表_学生选课数据库SQL语句练习题

    一.            设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表( ...

  7. sql语句练习题整理

    一.现有数据库casemanage中表结构如下图 TABLENAME:afinfo Id name age birth sex memo 1 徐洪国 37 1979-03-23 男 高中 2 王芳芳 ...

  8. 基础的sql语句练习题+答案

    sql: structured query language(结构化查询语言) 用户名和密码:root 创建一个名称为mydb1的数据库. create database mydb1; 查看所有数据库 ...

  9. SQL语句练习题(二)

    题目 一.准备数据 创建表及插入记录 CREATE TABLE class ( cid int(11) NOT NULL AUTO_INCREMENT, caption varchar(32) NOT ...

最新文章

  1. html图片滚动红点_HTML中更换或添加网站背景图片的代码怎么写?(示例)
  2. __stdcall、__cdecl 、CALLBACK 几种函数修饰符
  3. YbtOJ#643-机器决斗【贪心,李超树】
  4. [Leetcode][第207题][JAVA][课程表][拓扑排序][DFS]
  5. 笔试c语言实现栈,栈的实现与操作(C语言实现)
  6. 用python实现文件加密功能
  7. Ubuntu20.04安装增强功能
  8. 运营商推无限流量卡:这是不是一记昏招?
  9. 酱香科技不在YYDS了,市盈率50倍的白酒,要回调到25倍的市盈率?泡沫要破灭了
  10. 和python哪个容易胖_碳水化合物,脂肪和蛋白质,到底吃哪个更容易胖?
  11. UICollectionView Header footer
  12. Vivado Block Design流程(MicroBlaze)
  13. Inventory 物料库存 mtl_transactions_interface 开发[转]
  14. 【树莓派不吃灰】基础篇① 半小时搭建树莓派3B可运行环境(不需要显示器,不需要网线)
  15. S​alesforce是怎么完成从0到1的?
  16. 学习表——受任于败军之际,奉命于危难之间(12.19-12.25)
  17. 事务Read Committed (读已提交)和Repeatable Read(可重复读)到底什么区别?
  18. ossec开源入侵检测系统安装配置
  19. Android兼容性小总结(一)
  20. apk软件管理——玩转alpine linux

热门文章

  1. ATF:Gicv源码文件系列-gicdv2_helpers.c
  2. 扫福得福背后,支付宝 AR 红包的技术创新与故事
  3. em表示什么长度单位_html 常见的长度单位”px em pt” 简介说
  4. 【C语言】五彩斑斓的颜色
  5. Fuchsia 的 Rust 代码占比超 50%
  6. 是非人生 — 一个菜鸟程序员的5年职场路 第8节
  7. matlab spline三次样条插值x,Spline(三次样条插值)
  8. hdoj6441(勾股数)(模板 重要)
  9. Word插入高亮格式化代码
  10. Python VUE3 + Django Ninja的后台管理系统