mysql DQL语言之高级查询语句

 


资料:

链接:https://pan.baidu.com/s/1gLPOrUlf4WyQzgPbFa5uAw
提取码:0ic7


mysql参考文档:

 

mysql文件:

 


内连接:

1.查询员工名和部门名

employees和departments表中的公有字段位department_id

mysql DQL语言之高级查询语句第1张

mysql DQL语言之高级查询语句第2张

mysql DQL语言之高级查询语句第3张


1.查询员工名和部门名,且员工名要包含a

mysql DQL语言之高级查询语句第4张


2 查询部门个数大于3的城市名和部门个数

关联关系

mysql DQL语言之高级查询语句第5张

mysql DQL语言之高级查询语句第6张

mysql DQL语言之高级查询语句第7张

mysql DQL语言之高级查询语句第8张


3.查询员工名,部门名,工种名,并按照部门名降序

关联关系

mysql DQL语言之高级查询语句第9张

mysql DQL语言之高级查询语句第10张

mysql DQL语言之高级查询语句第11张

mysql DQL语言之高级查询语句第12张


4.查询员工的工资级别

关联员工表和等级表

因为员工表和等级表没有相同的字段

mysql DQL语言之高级查询语句第13张

mysql DQL语言之高级查询语句第14张

因此只能通过条件进行连接(即:员工表的工资在等级表的最低工资和最高工资之间)

mysql DQL语言之高级查询语句第15张


自连接

4.查询员工的名字,上级的名字

mysql DQL语言之高级查询语句第16张

mysql DQL语言之高级查询语句第17张


6.查询哪个部门没有员工

左外连接,即以左边的表为基准,右边的表与左边的表进行对比

mysql DQL语言之高级查询语句第18张

右外连接 以右边的表为基准

mysql DQL语言之高级查询语句第19张


子查询

7.谁的工资比Abel高

mysql DQL语言之高级查询语句第20张


分页查询

从索引为0开始,查询5条数据

mysql DQL语言之高级查询语句第21张

从索引为2开始,查询3条数据

mysql DQL语言之高级查询语句第22张


 

数据库文件:

 

数据表结构:

mysql DQL语言之高级查询语句第23张

mysql DQL语言之高级查询语句第24张

mysql DQL语言之高级查询语句第25张

作业1:

mysql DQL语言之高级查询语句第26张

答案1:

mysql DQL语言之高级查询语句第27张

2:

mysql DQL语言之高级查询语句第28张

3:

mysql DQL语言之高级查询语句第29张

可能有用的信息:

mysql DQL语言之高级查询语句第30张


作业2:

mysql DQL语言之高级查询语句第31张

 

test_lession09,没有找到答案


其他练习:

#1.显示所有员工的姓名,部门号和部门名称。

USE myemployees;

 

SELECT last_name,d.department_id,department_name

FROM employees e,departments d

WHERE e.`department_id` = d.`department_id`;

 

 

#2.查询90号部门员工的job_id和90号部门的location_id

 

SELECT job_id,location_id

FROM employees e,departments d

WHERE e.`department_id`=d.`department_id`

AND e.`department_id`=90;

 

 

 

#3.   选择所有有奖金的员工的

last_name , department_name , location_id , city

 

 

SELECT last_name , department_name , l.location_id , city

FROM employees e,departments d,locations l

WHERE e.department_id = d.department_id

AND d.location_id=l.location_id

AND e.commission_pct IS NOT NULL;

 

 

#4.选择city在Toronto工作的员工的

last_name , job_id , department_id , department_name

 

SELECT last_name , job_id , d.department_id , department_name

FROM employees e,departments d ,locations l

WHERE e.department_id = d.department_id

AND d.location_id=l.location_id

AND city = ‘Toronto’;

 

 

 

#5.查询每个工种、每个部门的部门名、工种名和最低工资

 

 

SELECT department_name,job_title,MIN(salary) 最低工资

FROM employees e,departments d,jobs j

WHERE e.`department_id`=d.`department_id`

AND e.`job_id`=j.`job_id`

GROUP BY department_name,job_title;

 

 

 

#6.查询每个国家下的部门个数大于2的国家编号

 

SELECT country_id,COUNT(*) 部门个数

FROM departments d,locations l

WHERE d.`location_id`=l.`location_id`

GROUP BY country_id

HAVING 部门个数>2;

 

 

 

 

 

#7、选择指定员工的姓名,员工号,以及他的管理者的姓名和员工号,结果类似于下面的格式

employees        Emp#        manager  Mgr#

kochhar             101  king  100

 

 

SELECT e.last_name employees,e.employee_id “Emp#”,m.last_name manager,m.employee_id “Mgr#”

FROM employees e,employees m

WHERE e.manager_id = m.employee_id

AND e.last_name=’kochhar’;


++–++–