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

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

逆怠偿贰牌圣灵同群集羞精沏


资料:

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


mysql参考文档:

 

mysql文件:

 


内连接:

1.查询员工名和部门名

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

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

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

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


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

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


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

关联关系

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

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

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

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


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

关联关系

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

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

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

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


4.查询员工的工资级别

关联员工表和等级表

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

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

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

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

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


自连接

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

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

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


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

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

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

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

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


子查询

7.谁的工资比Abel高

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


分页查询

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

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

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

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


 

数据库文件:

 

数据表结构:

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

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

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

作业1:

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

答案1:

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

2:

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

3:

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

可能有用的信息:

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


作业2:

15 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’;


++–++–

翻冠迫伦爸胸扒闹弥岗搂沦嗽