写出dept 和emp的笛卡尔积 写出dept和emp的内连接(查找有部门的所有员工信息) 查看各个部门内员工的信息 查找所有员工的部门信息 合并dept和emp两张表格
时间: 2023-12-14 19:37:30 浏览: 46
假设dept表的结构如下:
| dept_id | dept_name |
|---------|-----------|
| 1 | HR |
| 2 | IT |
| 3 | Finance |
emp表的结构如下:
| emp_id | emp_name | dept_id |
|--------|----------|---------|
| 101 | Alice | 1 |
| 102 | Bob | 1 |
| 103 | Charlie | 2 |
| 104 | Dave | null |
则dept和emp的笛卡尔积可以表示为:
```
SELECT * FROM dept, emp
```
dept和emp的内连接(查找有部门的所有员工信息)可以表示为:
```
SELECT emp.emp_id, emp.emp_name, dept.dept_name
FROM emp
INNER JOIN dept
ON emp.dept_id = dept.dept_id
```
查看各个部门内员工的信息可以表示为:
```
SELECT emp.emp_id, emp.emp_name, dept.dept_name
FROM emp
INNER JOIN dept
ON emp.dept_id = dept.dept_id
ORDER BY dept.dept_name
```
查找所有员工的部门信息可以表示为:
```
SELECT emp.emp_id, emp.emp_name, dept.dept_name
FROM emp
LEFT JOIN dept
ON emp.dept_id = dept.dept_id
```
合并dept和emp两张表格可以表示为:
```
SELECT emp.emp_id, emp.emp_name, dept.dept_id, dept.dept_name
FROM emp, dept
WHERE emp.dept_id = dept.dept_id
UNION
SELECT emp_id, emp_name, dept_id, null
FROM emp
WHERE dept_id IS NULL;
```