尚硅谷多表查询章节练习
DB
—— 链接:https://pan.baidu.com/s/1Z6qCAQrZY2kgTEE5w2a7Fg?pwd=wr8i
—— 提取码:wr8i
DBMS —— SQLyog
涉及的内容 —— 内连接、外连接
背景简单介绍:
SQL有两个主要的标准SQL92和SQL99
MySQL不支持SQL92外连接(左外连接、右外连接、满外连接)的语法
我们以下使用的是SQL99的语法,它一共有七种连接方式如下图所示,非常的重要
DESCRIBE employees;
DESCRIBE departments;
DESCRIBE locations;
SELECT * FROM employees;
SELECT * FROM departments;
SELECT * FROM locations;
SELECT e.last_name,d.department_id,d.department_name
FROM employees e
LEFT JOIN departments d
ON e.department_id = d.department_id;
SELECT e.job_id,d.location_id
FROM employees e
JOIN departments d
ON e.department_id = d.department_id
AND e.department_id = 90;
SELECT e.last_name,d.department_name,l.location_id,l.city
FROM employees e
LEFT JOIN departments d
ON e.department_id = d.department_id
LEFT JOIN locations l
ON d.location_id = l.location_id
WHERE e.commission_pct IS NOT NULL;
SELECT e.last_name,e.job_id,d.department_id,d.department_name
FROM employees e
JOIN departments d
ON e.department_id = d.department_id
JOIN locations l
ON d.location_id = l.location_id
WHERE l.city = 'Toronto';
SELECT d.department_name,l.street_address,e.last_name,e.job_id,e.salary
FROM employees e
JOIN departments d
ON e.department_id = d.department_id
JOIN locations l
ON d.location_id = l.location_id
WHERE d.department_name = 'Executive';
SELECT emp.last_name "employees",emp.employee_id "Emp",mgr.last_name "manager",mgr.employee_id "Mgr"
FROM employees emp
JOIN employees mgr
ON emp.manager_id = mgr.employee_id;
SELECT d.department_id,d.department_name
FROM employees e
RIGHT JOIN departments d
ON e.department_id = d.department_id
WHERE e.department_id IS NULL;
SELECT l.city
FROM departments d
RIGHT JOIN locations l
ON d.location_id = l.location_id
WHERE d.location_id IS NULL;
SELECT *
FROM employees e
JOIN departments d
ON e.department_id = d.department_id
WHERE d.department_name IN ('Sales','IT');