MySQL基础练习题:习题31-End

这部分主要是为了帮助大家回忆回忆MySQL的基本语法,数据库来自于MySQL的官方简化版,题目也是网上非常流行的35题。这些基础习题基本可以涵盖面试中需要现场写SQL的问题。

列出薪水等于部门30中员工的薪水的其他员工的姓名和薪水

复制代码
(root@localhost) [employees]>select ename,sal from emp where sal in (select sal from emp where deptno=30) and deptno<>30;
Empty set (0.05 sec)

(root@localhost) [employees]>

求出员工领导的薪水超过3000的员工姓名和领导姓名

复制代码
select a.ename as emname,e.ename as leader,e.sal from emp e join emp a on e.empno = a.mgr and e.sal>3000;
+--------+--------+---------+
| emname | leader | sal     |
+--------+--------+---------+
| JONES  | KING   | 5000.00 |
| BLAKE  | KING   | 5000.00 |
| CLARK  | KING   | 5000.00 |
+--------+--------+---------+

求出部门名称中,带有's'字符的部门员工的工资合计,部门人数

复制代码
mysql> select 
        d.deptno, d.dname, ifnull(sum(e.sal),0) as sumsal, ifnull(count(e.ename),0) as totalemp 
        from 
        dept d 
        left join 
        emp e 
        on 
        d.deptno=e.deptno 
        where 
        d.dname like '%s%' 
        group by 
        d.deptno;
+--------+-------------+----------+----------+
| deptno | dname       | sumsal   | totalemp |
+--------+-------------+----------+----------+
|     20 | RESEARCHING | 10875.00 |        5 |
|     30 | SALES       |  9400.00 |        6 |
|     40 | OPERATIONS  |     0.00 |        0 |
+--------+-------------+----------+----------+

给任职时间超过30年的员工加薪10%

复制代码
update emp set sal=sal*1.1 where (to_days(now())-to_days(hiredate))/365>30;

总结

其实MySQL的基础面试题真的不是很复杂,基本思想就是大化小。有的时候更像是脑筋急转弯。之前还遇到过一个面试题,是学生成绩表,要求查出每门成绩都高于90的同学。直接查就会相当麻烦,所以我们逆向思考,查出哪些有成绩低于90的,然后再查询not in

复制代码
select distinct name from score where name not in (select distinct name from score where
score<=90)
相关推荐
.Shu.31 分钟前
Mysql InnoDB 底层架构设计、功能、原理、源码系列合集【四、事务引擎核心 - MVCC与锁机制】
数据库·mysql
多工坊37 分钟前
【DataGrip】连接达梦数据库后,能查询数据但是看不到表的几种情况分析,达梦数据库驱动包下载DmJdbcDriver18.jar
java·数据库·jar
何中应1 小时前
如何用Redis作为消息队列
数据库·redis·缓存
liulilittle2 小时前
.NET反射与IL反编译核心技术
开发语言·数据库·c#·.net·反射·反编译·il
老纪的技术唠嗑局2 小时前
向量数据库在 UGC 社区个性化推荐的落地指南
数据库
张鱼小丸子2 小时前
MySQL企业级部署与高可用实战
运维·数据库·mysql·云原生·高可用·mha·组从复制
GalaxyPokemon2 小时前
MYSQL的默认隔离级别都有什么
数据库·mysql
DONG9132 小时前
《三驾马车:MySQL、MongoDB、Redis对比与融合实战》
数据库·redis·sql·mysql·mongodb·database
程序边界3 小时前
从 Oracle 到 KingbaseES:企业信创改造的“抄作业”模板,直接套用!
数据库·oracle
funfan05173 小时前
奇怪的“bug”--数据库的“隐式转换”行为
数据库·bug