学生(学号,姓名,性别,出生年月,系名,班级号,宿舍楼)。班级(班级号,班级名,学生人数,入校年份) 社团(社团名,成立年份,地点,人数)、 加入社团(社团名,学号,参加社团年份,职务)。 用SQL语句写出下列查询: (1)查询学校里面所有的宿舍楼。 (2)查询计算机系的学生姓名以及所住的宿舍楼。 (3)查询计算机系的班级名及每个班的学生人数。 (4)统计各个宿舍楼的学生人数。。 (5)查询姓“刘”的学生信息。。 (6)社团中担任团长职务的学生姓名。 (7)查询和“刘莉”在同一个班级的学生学号和姓名。。 (8)查询没有参加“动漫社团”的学生姓名。 (9)授予宿舍管理员“张兰”查看“明德楼”所住的学生姓名,性别,系名及班级号。
时间: 2024-02-20 09:59:25 浏览: 273
(1)查询学校里面所有的宿舍楼:
```
SELECT DISTINCT 宿舍楼
FROM 学生;
```
(2)查询计算机系的学生姓名以及所住的宿舍楼:
```
SELECT 学生.姓名, 学生.宿舍楼
FROM 学生, 班级
WHERE 学生.系名 = '计算机系'
AND 学生.班级号 = 班级.班级号;
```
(3)查询计算机系的班级名及每个班的学生人数:
```
SELECT 班级.班级名, COUNT(学生.学号) AS 学生人数
FROM 学生, 班级
WHERE 学生.系名 = '计算机系'
AND 学生.班级号 = 班级.班级号
GROUP BY 班级.班级名;
```
(4)统计各个宿舍楼的学生人数:
```
SELECT 宿舍楼, COUNT(学号) AS 学生人数
FROM 学生
GROUP BY 宿舍楼;
```
(5)查询姓“刘”的学生信息:
```
SELECT *
FROM 学生
WHERE 姓名 LIKE '刘%';
```
(6)社团中担任团长职务的学生姓名:
```
SELECT 学生.姓名
FROM 学生, 加入社团
WHERE 学生.学号 = 加入社团.学号
AND 加入社团.职务 = '团长';
```
(7)查询和“刘莉”在同一个班级的学生学号和姓名:
```
SELECT 学生.学号, 学生.姓名
FROM 学生, 班级
WHERE 学生.班级号 = 班级.班级号
AND 学生.姓名 <> '刘莉'
AND 班级.班级名 = (
SELECT 班级.班级名
FROM 学生, 班级
WHERE 学生.班级号 = 班级.班级号
AND 学生.姓名 = '刘莉'
);
```
(8)查询没有参加“动漫社团”的学生姓名:
```
SELECT 学生.姓名
FROM 学生
WHERE NOT EXISTS (
SELECT *
FROM 加入社团
WHERE 学生.学号 = 加入社团.学号
AND 加入社团.社团名 = '动漫社团'
);
```
(9)授予宿舍管理员“张兰”查看“明德楼”所住的学生姓名,性别,系名及班级号:
```
GRANT SELECT ON 学生(姓名, 性别, 系名, 班级号)
TO '张兰'@'%' IDENTIFIED BY 'password';
```
其中,'张兰'是授权的用户名,'%'表示所有IP都可以访问,'password'是用户的密码。授权语句可以根据实际情况进行修改。
阅读全文