mysql练习

练习
使用简单查询语句完成
1.显示所有部门名称
2.显示所有雇员及其全年收入13薪(工作+补助)

SELECT * FROM dept
SELECT * FROM emp

1.显示所有部门名称
SELECT dname FROM dept
2.显示所有雇员名及年收入13薪
SELECT ename , (sal + comm)*13 AS `money`
	FROM emp
SELECT ename , (sal + IFNULL(comm,0))*13 AS `money` FROM emp
3.显示工资超过2850的雇员及工资
SELECT ename, sal
	FROM emp
	WHERE sal > 2850
4.显示工资不在1500到2850之间
SELECT ename, sal
	FROM emp
	WHERE sal <1500 OR sal >2850 
SELECT ename, sal
	FROM emp
	WHERE NOT (sal >=1500 AND sal <=2850) 
5.显示编号为。。。
SELECT ename, sal
	FROM emp
	WHERE empno = 7566
6.显示部门编号为10和30并且薪水大于
SELECT ename,sal
	FROM emp
	WHERE 
	(deptno = 10 OR deptno = 30) AND
	sal > 1500
7.没有管理者的人
SELECT ename,job
	FROM emp
	WHERE mgr IS NULL 
8.这个时间段入职,并按时间排序
SELECT ename,job,hiredate
	FROM emp
	WHERE hiredate >= '1991-02-01' AND 
	hiredate <= '1991-05-01'
	ORDER BY hiredate
9.降序排序
SELECT ename,sal,comm
	FROM emp
	ORDER BY sal DESC
SELECT * FROM emp
1.部门号为30
SELECT *
	FROM emp
	WHERE deptno = 30 
2.工作为clerk
SELECT ename,empno,deptno
	FROM emp
	WHERE job = 'clerk'
3.奖金高于工资
SELECT *
	FROM emp 
	WHERE comm > sal
4.奖金大于工资的60%
SELECT *
	FROM emp
	WHERE comm > sal*0.6
5.	部门号为10且是manager,部门号为30且clerk
SELECT * 
	FROM emp
	WHERE 
	(deptno = 10 AND job = 'manager')
	OR
	(deptno = 30 AND job = 'clerk')
6.asdf
SELECT * 
	FROM emp
	WHERE 
	(deptno = 10 AND job = 'manager')
	OR
	(deptno = 20 AND job = 'clerk')
	OR
	(job != 'manager' AND job != 'clerk' AND sal >= 2000)
7.有奖金的工作岗位
SELECT DISTINCT job
	FROM emp
	WHERE comm IS NOT NULL
8.没有奖金或奖金小于1000
SELECT *
	FROM emp
	WHERE comm IS NULL OR IFNULL(comm,0) < 1000
9.干了12年以上的
SELECT *
	FROM emp
	WHERE DATE_ADD(hiredate,INTERVAL 12 YEAR) <NOW()
10.首字母小写
SELECT CONCAT(LCASE(SUBSTRING(ename,1,1)),SUBSTRING(ename,2))
	FROM emp
11.名字字符数为5
SELECT *
	FROM emp
	WHERE LENGTH(ename)=5
SELECT * FROM emp
1.显示不带r的名字
SELECT *
	FROM emp
	WHERE ename NOT LIKE '%r%'
2.显示名字前三个字符
SELECT LEFT(ename,3)
	FROM emp	
3.代替
SELECT REPLACE(ename,'A','a')
	FROM emp
4.工龄大于10
SELECT ename,hiredate
	FROM emp
	WHERE DATE_ADD(hiredate,INTERVAL 10 YEAR) <= NOW()
5.按名字排序
SELECT *
	FROM emp
	ORDER BY ename
6.按工资排序
SELECT ename,hiredate
	FROM emp
	ORDER BY hiredate
7.先按照工作排序,在按照薪水
SELECT ename,job,sal
	FROM emp
	ORDER BY job DESC ,sal
8.日薪
SELECT ename,FLOOR(sal/30),sal/30
	FROM emp
9.2月雇佣
SELECT *
	FROM emp
	WHERE MONTH(hiredate) = 2
10.显示加入公司到现在的日数
SELECT ename,DATEDIFF(NOW(),hiredate)
	FROM emp
11.干了多少年多少月多少日
SELECT ename,
	FLOOR(DATEDIFF(NOW(),hiredate)/365),
	FLOOR((DATEDIFF(NOW(),hiredate) %365)/31),
	DATEDIFF(NOW(),hiredate)%31
	FROM emp
1.至少有一个员工的所有部门
SELECT COUNT(*) AS a , deptno
	FROM emp
	GROUP BY deptno
	HAVING a > 1
2.薪水比他高的员工
SELECT sal
	FROM emp
	WHERE `ename` = 'smith'

SELECT *
	FROM emp
	WHERE sal > (
		SELECT sal
		FROM emp
		WHERE `ename` = 'smith' )
3.下级比上级来的晚
SELECT *
	FROM emp worker , emp leader 
	WHERE 
	worker.hiredate>leader.hiredate 
	AND
	worker.mgr=leader.empno
4.列出部门名及员工的所有信息
SELECT dname,emp.*
	FROM dept 
	LEFT JOIN emp ON dept.deptno = emp.deptno
5.所有‘clerk’的名字及其员工名
SELECT ename,dname,job
	FROM emp,dept
	WHERE job = 'clerk' AND emp.deptno = dept.deptno
6.工资大于1500的工作
SELECT MIN(sal) AS min_sal ,job
	FROM emp
	GROUP BY job
	HAVING min_sal>1500
7.列出在‘sales’部门工作的所有员工
SELECT deptno
	FROM dept
	WHERE dname = 'sales'

SELECT *
	FROM emp
	WHERE deptno = (
		SELECT deptno
		FROM dept
		WHERE dname = 'sales')

SELECT ename , dname
	FROM emp,dept
	WHERE emp.deptno = dept.deptno AND dname = 'sales'
8.列出工资高于平均工资
SELECT *
	FROM emp
	WHERE sal > (
		SELECT  AVG(sal)
		FROM emp
		)
1.和这个人工作内容相同的所有员工
SELECT job
	FROM emp
	WHERE ename = 'scott'
	
SELECT *
	FROM emp
	WHERE job = (
		SELECT job
		FROM emp
		WHERE ename = 'scott'
		)
2.工资高于30号部门的人
SELECT MAX(sal)
	FROM emp
	WHERE deptno =30

SELECT *
	FROM emp
	WHERE sal>(
		SELECT MAX(sal)
		FROM emp
		WHERE deptno =30
		)
3.每个部门工作人员数量,平均工资,平均服务时间
SELECT COUNT(*),AVG(sal),
	AVG(DATEDIFF(NOW(),hiredate)),
	deptno
	FROM emp
	GROUP BY deptno
4.查看所有
SELECT *
	FROM emp,dept
	WHERE emp.deptno=dept.deptno
5.每种岗位,最少钱
SELECT MIN(sal) ,job
	FROM emp
	GROUP BY job
6.最少钱的经理
SELECT MIN(sal),job
	FROM emp
	WHERE job = 'manager'
7.年工资,排序
SELECT ename,(sal+IFNULL(comm,0))*12 AS year_sal
	FROM emp
	ORDER BY year_sal
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值