sql多表查询的练习

一、练习一

 

 

 

 

1.

 

 2.

3.

 

4.

 

5.

 

6.

 

7.

 

8.

 

9.

 

 

10.

 

二、

 

 

 

 1.

2.

 

3.

 

4.

 

 

5.

 

6.

 

三、 

 

 

 

 1.

2. 

 

3.

 

四、

 

 

1. 

2.

 

3.

 

 

当涉及到多个表的查询时,可以使用 SQL 的 JOIN 操作来连接这些表。以下是一些多表查询练习题: 假设有两个表,一个名为 "employees",包含以下字段: - id: 员工ID (整数) - name: 员工姓名 (字符串) - department_id: 部门ID (整数) 另一个表名为 "departments",包含以下字段: - id: 部门ID (整数) - name: 部门名称 (字符串) - location: 部门所在地 (字符串) 请根据以下要求编写 SQL 查询语句: 1. 查询所有员工的姓名和所属部门的名称: ```sql SELECT employees.name, departments.name FROM employees JOIN departments ON employees.department_id = departments.id; ``` 2. 查询部门名称为 "IT" 的所有员工的姓名: ```sql SELECT employees.name FROM employees JOIN departments ON employees.department_id = departments.id WHERE departments.name = 'IT'; ``` 3. 查询每个部门的名称以及该部门下的员工数量: ```sql SELECT departments.name, COUNT(employees.id) AS employee_count FROM departments LEFT JOIN employees ON departments.id = employees.department_id GROUP BY departments.name; ``` 4. 查询没有分配部门的员工的姓名: ```sql SELECT employees.name FROM employees LEFT JOIN departments ON employees.department_id = departments.id WHERE departments.id IS NULL; ``` 5. 查询每个部门的名称以及该部门下的年龄最大的员工的姓名: ```sql SELECT departments.name, employees.name FROM departments JOIN employees ON departments.id = employees.department_id WHERE employees.age = ( SELECT MAX(age) FROM employees WHERE employees.department_id = departments.id ); ``` 这些是一些基础的多表查询练习题,希望能帮到你!如果你有其他的具体需求或更多问题,欢迎继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值