【MySQL】数据库命令练习题及答案
mysql数据库命令练习题及答案
1、查询emp中最高薪水人的名字
2、查询每个部门中的最高薪水人的名字和所在的部门编号
3、查询薪水在平均薪水之上的雇员的名字
4、查询雇员的名字和所在部门的名字
5、查询薪水在在本部门平均薪水之上的雇员的名字
6、查询每个员工的薪水的等级,员工的姓名
7、查询每个部门的平均薪水的等级,部门的编号
8、查询雇员的名字,所在部门的名字,工资的等级
9、查询雇员的名字和其经理的名字
10、查询雇员中是经理人的名字
11、查询平均薪水最高的部门的编号和名称
12、查询薪水最高的前5名雇员编号,名称,薪水
13、查询薪水最高的第6名到第10名雇员编号,名称,薪水
14、查询部门的名字和部门的人数(如果部门里没有人数,显示0个)
15、查询员工的编号,工资和所在部门的平均工资
三个表的结构介绍:
三个表的创建语句:
/********************************部门表dept********************************/
/*创建表*/
DROP TABLE IF EXISTS DEPT;
CREATE TABLE DEPT(DEPTNO INT PRIMARY KEY, DNAME VARCHAR(14) , LOC VARCHAR(13)
);
/*插入数据*/
INSERT INTO DEPT VALUES
(10,'ACCOUNTING','NEW YORK'),
(20,'RESEARCH','DALLAS'),
(30,'SALES','CHICAGO'),
(40,'OPERATIONS','BOSTON');
/*查询数据*/
SELECT * FROM DEPT;/********************************员工表emp********************************/
/*创建表*/
DROP TABLE IF EXISTS EMP;
CREATE TABLE EMP(EMPNO INT PRIMARY KEY, ENAME VARCHAR(14) , JOB VARCHAR(9), MGR INT, HIREDATE DATE, SAL DECIMAL(7,2), COMM DECIMAL(7,2), DEPTNO int REFERENCES DEPT
);/*插入数据*/
INSERT INTO EMP VALUES
(7369,'SMITH','CLERK',7902,'1980-12-17',800,NULL,20),
(7499,'ALLEN','SALESMAN',7698,'1981-2-20',1600,300,30),
(7521,'WARD','SALESMAN',7698,'1981-2-22',1250,500,30),
(7566,'JONES','MANAGER',7839,'1981-4-2',2975,NULL,20),
(7654,'MARTIN','SALESMAN',7698,'1981-9-28',1250,1400,30),
(7698,'BLAKE','MANAGER',7839,'1981-5-1',2850,NULL,30),
(7782,'CLARK','MANAGER',7839,'1981-6-9',2450,NULL,10),
(7788,'SCOTT','ANALYST',7566,'1987-7-13',3000,NULL,20),
(7839,'KING','PRESIDENT',NULL,'1981-11-17',5000,NULL,10),
(7844,'TURNER','SALESMAN',7698,'1981-9-8',1500,0,30),
(7876,'ADAMS','CLERK',7788,'1987-7-13',1100,NULL,20),
(7900,'JAMES','CLERK',7698,'1981-12-3',950,NULL,30),
(7902,'FORD','ANALYST',7566,'1981-12-3',3000,NULL,20),
(7934,'MILLER','CLERK',7782,'1982-1-23',1300,NULL,10);
/*查询数据*/
SELECT * FROM EMP;/********************************工资等级表salgrade********************************/
/*创建表*/
DROP TABLE IF EXISTS SALGRADE;
CREATE TABLE SALGRADE(GRADE INT PRIMARY KEY, LOSAL INT, HISAL INT
);
/*插入数据*/
INSERT INTO SALGRADE VALUES
(1,700,1200),
(2,1201,1400),
(3,1401,2000),
(4,2001,3000),
(5,3001,9999); /*查询数据*/
SELECT * FROM SALGRADE;
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
答案:
/*1、查询emp中最高薪水人的名字*/#1、查询最高的薪水select max(sal) from EMP;#2、将1作为条件select ename from EMPwhere sal = (select max(sal) from EMP);
123456789101112
/*2、查询每个部门中的最高薪水人的名字和所在的部门编号*/#1、各个部门的最高薪水select max(sal),deptno from EMPgroup by deptno;#2、将1的结果作为一个新的表,联表查询select t1.ename,t1.deptnofrom EMP t1inner join (select max(sal) max_sal,deptno from EMP group by deptno) t2on t1.deptno = t2.deptno and sal = t2.max_sal;
12345678910111213141516
/*3、查询薪水在平均薪水之上的雇员的名字*/select ename from EMP where sal >(select avg(sal) from EMP);
12
/*4、查询雇员的名字和所在部门的名字*/select t1.ename,t2.dnamefrom EMP t1,DEPT t2where t1.deptno = t2.deptno;
1234567
/*5、查询薪水在在本部门平均薪水之上的雇员的名字*/select t1.ename,t1.deptnofrom EMP t1inner join (select avg(sal) avg_sal,deptno from EMP group by deptno) t2on t1.deptno = t2.deptno and sal > t2.avg_sal;
12345678
/*6、查询每个员工的薪水的等级,员工的姓名*/select * from EMP;select * from SALGRADE;select t1.ename,t2.gradefrom EMP t1,SALGRADE t2where t1.sal between t2.losal and t2.hisal;
1234567
/*7、查询每个部门的平均薪水的等级,部门的编号*/#1、各个部门的平均薪水select avg(sal),deptno from EMP group by deptno;#2、将1的结果当作一个表selectt1.grade,t2.deptnofrom SALGRADE t1,(select avg(sal) avg_sal,deptno from EMP group by deptno) t2where t2.avg_sal between t1.losal and t1.hisal
12345678910
/*8、查询雇员的名字,所在部门的名字,工资的等级*/select t1.ename,t2.dname,t3.gradefrom EMP t1,DEPT t2,SALGRADE t3where t1.deptno = t2.deptnoandt1.sal between t3.losal and t3.hisal;select t1.ename,t2.dname,t3.gradefrom EMP t1inner joinDEPT t2 on t1.deptno = t2.deptnoinner joinSALGRADE t3ont1.sal between t3.losal and t3.hisal;
1234567891011121314151617181920
/*9、查询雇员的名字和其经理的名字*/select employee.ename,employer.enamefrom EMP employer,EMP employeewhere employee.mgr = employer.empno;
1234
/*10、查询雇员中是经理人的名字*/#1、经理上的编号select distinct mgr from EMP;#2、将1当作条件select enamefrom EMPwhere empno in(select distinct mgr from EMP);
12345678910
/*11、查询平均薪水最高的部门的编号和名称*/#1、每个部门的平均薪水select avg(sal) avg_sal,deptno from EMP group by deptno;#2、求1表中的最高平均薪水select max(t.avg_sal) from (select avg(sal) avg_sal,deptno from EMP group by deptno) t#3、将2的结果当作条件select t1.deptnofrom (select avg(sal) avg_sal,deptno from EMP group by deptno) t1where t1.avg_sal = (select max(t2.avg_sal) from (select avg(sal) avg_sal,deptno from EMP group by deptno) t2)#4、将3作为条件select t.deptno,t.dnamefrom DEPT twhere deptno in (select t1.deptnofrom (select avg(sal) avg_sal,deptno from EMP group by deptno) t1where t1.avg_sal = (select max(t2.avg_sal) from (select avg(sal) avg_sal,deptno from EMP group by deptno) t2));
1234567891011121314151617
/*12、查询薪水最高的前5名雇员编号,名称,薪水*/select empno,ename,salfrom EMP order by sal desclimit 5;
12345
/*13、查询薪水最高的第6名到第10名雇员编号,名称,薪水*/select empno,ename,salfrom EMP order by sal desclimit 5,5;
12345
/*14、查询部门的名字和部门的人数(如果部门里没有人数,显示0个)*/select t1.dname,ifnull(t2.num,0)from DEPT t1left join(select count(*) num,deptno from EMP group by deptno) t2on t1.deptno = t2.deptno;
123456789
/*15、查询员工的编号,工资和所在部门的平均工资*/select empno,ename,sal,t2.deptno,(select avg(sal) from EMP t1 where t1.deptno = t2.deptno)from EMP t2;select empno,ename,sal,t2.deptno,t2.avg_sal from EMP t1inner join (select avg(sal) avg_sal,deptno from EMP group by deptno) t2on t1.deptno = t2.deptno;
【MySQL】数据库命令练习题及答案相关推荐
- mysql数据库入门第二张试卷_2016计算机二级《MySQL数据库》练习题与答案
2016计算机二级<MySQL数据库>练习题与答案 一.选择题 下列语句中,________不是表数据的基本操作语句. A)CREATE语句 B)INSERT语句 C)DELETE语句 D ...
- linux下导入、导出mysql数据库命令 下载文件到本地
一.下载到本地 yum install lrzsz sz filename 下载 rz filename 上传 linux下导入.导出mysql数据库命令 一.导出数据库用mysqldump命令( ...
- MySQL数据库命令(第二节)
MySQL数据库命令(第二节) 文章目录 前言 1.常用函数 2.order by 子句 3.limit子句 4.模糊查询 5.多表连接查询 总结 前言 常用函数 1.聚合函数: (1)AVG (平均 ...
- mysql数据库命令导入命令
在开发或运维中很多小伙伴经常用phpmyadmin,管理自己的mysql数据库.当随着数据库越来越大,我们用phpmyadmin导入数据库经常会失败.下面我就介绍一下 在Linux操作系统下,用原生m ...
- linux重启下mysql数据库命令_linux重启mysql数据库命令
Linux中难免会对数据库进行操作,下面由学习啦小编为大家整理了linux重启mysql数据库命令的相关知识,希望对大家有帮助! linux重启mysql数据库命令1.使用 service 启动 se ...
- mysql数据库命令 单选_mysql中创建数据库命令是?_学小易找答案
[单选题]NH4NO2分解得氮气和水,在23°C,95549.5 Pa 条件下,用排水集气法收集到57.5 cm3氮气.已知水的饱和蒸气压为2813.1 Pa,则干燥后氮气的体积为() [填空题]在相 ...
- mysql数据库命令_新手入门MYSQL数据库命令大全
一.命令行连接数据库 Windows操作系统进入CMD命令行,进入mysql.exe所在目录,运行命令 mysql.exe -h主机名 -u用户名 -p密码 注意:参数名与值之间没有空格 , 如:-h ...
- 导入导出mysql数据库命令
还原或者导入数据库命令: mysql -u root --password=root 备份数据库命令: mysqldump -u root --password=root --database hel ...
- 运行MYSQL数据库命令时connetion Timeout expired异常问题
SqlConnection string 的connect timeout是建立连接的超时尝试时间,而运行数据库命令的超时尝试时间是Sqlcommand.conntiontimeout,缺省值也是30 ...
- csdn入门测试教程------mysql数据库命令大全以及常用命令 安装教程 基础知识 附【练习题】
前言: mysql数据库是每一个测试小白入行必学的一个知识,学会这些命令呢也能让你在玩转数据库的时候给你提供很多的便利也是很不错的,最后希望各位小伙伴学有所成,心想事成咯, 废话不多说直接上正文. [ ...
最新文章
- 不盲目依赖人工智能,海信帮欧尚开了近 300 家无人便利店
- 计算机图像抠图有什么作用,图像处理 抠图|傲软抠图 v1.1.13.1电脑版 - 系统天堂...
- Waymo无人出租车加州上线一个月,日均156单,还有真·自动驾驶服务
- Algorithm Master Road:算法的时间/空间复杂度
- Vlan中Trunk接口配置
- hdu2066一个人的旅行(多源点多汇点的最短路径问题)
- Python基础——1基础
- Q91:真实地模拟透明材质(Realistic Transparency)(2)——Triangle Meshes
- xapian_binaries
- 最常用的8款windows字体推荐
- Java开发手册归纳知识点
- 用户调研的操作步骤与过程模板
- 面向对象需求分析方法实践
- 10 个用于网络管理员进行高级扫描的端口扫描工具
- 国家基本比例尺地图图式
- 前嗅教你大数据——史上最全代理IP服务商对比
- 利用JS模拟排队系统
- 鲁大师4月安卓新机性能/流畅榜:ROG游戏手机7摘得性能桂冠 vivo登顶流畅榜
- Genymotion Booting 安卓虚拟机 一直加载问题
- Hibernate复杂查询——多参数分页 in()查询(多参数、分页、in())