sql语句练习题或面试题
根据下面表的描述,创建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语句练习题或面试题相关推荐
- 计算机导论sql试题,数据库SQL语句练习题
一. 设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表( ...
- 50个SQL语句练习题
50个SQL语句练习题 –1.学生表 Student(SNO,Sname,Sage,Ssex) –SNO 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 –2.课程表 Cour ...
- 【MySQL】- 05 sql 语句练习题
sql 语句练习题 一 测试数据的准备 二.数据查询 1.`查询"01"课程比"02"课程成绩高的学生的信息及课程分数` 2.`查询"01" ...
- MySQL SQL语句练习题
MySQLSQL语句练习题 0 创建测试数据库 1 取得每个部门最高薪水的人员名称 2 哪些人的薪水在部门的平均薪水之上 3 取得部门中(所有人的)平均的薪水等级 4 不准用组函数(Max),求得最高 ...
- 学生选课系统数据库SQL语句练习题
设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表 ...
- 学生选课在MYSQL创建表_学生选课数据库SQL语句练习题
一. 设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表( ...
- sql语句练习题整理
一.现有数据库casemanage中表结构如下图 TABLENAME:afinfo Id name age birth sex memo 1 徐洪国 37 1979-03-23 男 高中 2 王芳芳 ...
- 基础的sql语句练习题+答案
sql: structured query language(结构化查询语言) 用户名和密码:root 创建一个名称为mydb1的数据库. create database mydb1; 查看所有数据库 ...
- SQL语句练习题(二)
题目 一.准备数据 创建表及插入记录 CREATE TABLE class ( cid int(11) NOT NULL AUTO_INCREMENT, caption varchar(32) NOT ...
最新文章
- html图片滚动红点_HTML中更换或添加网站背景图片的代码怎么写?(示例)
- __stdcall、__cdecl 、CALLBACK 几种函数修饰符
- YbtOJ#643-机器决斗【贪心,李超树】
- [Leetcode][第207题][JAVA][课程表][拓扑排序][DFS]
- 笔试c语言实现栈,栈的实现与操作(C语言实现)
- 用python实现文件加密功能
- Ubuntu20.04安装增强功能
- 运营商推无限流量卡:这是不是一记昏招?
- 酱香科技不在YYDS了,市盈率50倍的白酒,要回调到25倍的市盈率?泡沫要破灭了
- 和python哪个容易胖_碳水化合物,脂肪和蛋白质,到底吃哪个更容易胖?
- UICollectionView Header footer
- Vivado Block Design流程(MicroBlaze)
- Inventory 物料库存 mtl_transactions_interface 开发[转]
- 【树莓派不吃灰】基础篇① 半小时搭建树莓派3B可运行环境(不需要显示器,不需要网线)
- S​alesforce是怎么完成从0到1的?
- 学习表——受任于败军之际,奉命于危难之间(12.19-12.25)
- 事务Read Committed (读已提交)和Repeatable Read(可重复读)到底什么区别?
- ossec开源入侵检测系统安装配置
- Android兼容性小总结(一)
- apk软件管理——玩转alpine linux
热门文章
- ATF:Gicv源码文件系列-gicdv2_helpers.c
- 扫福得福背后,支付宝 AR 红包的技术创新与故事
- em表示什么长度单位_html 常见的长度单位”px em pt” 简介说
- 【C语言】五彩斑斓的颜色
- Fuchsia 的 Rust 代码占比超 50%
- 是非人生 — 一个菜鸟程序员的5年职场路 第8节
- matlab spline三次样条插值x,Spline(三次样条插值)
- hdoj6441(勾股数)(模板 重要)
- Word插入高亮格式化代码
- Python VUE3 + Django Ninja的后台管理系统