admin 管理员组

文章数量: 887021


2024年1月18日发(作者:直方图适用于什么数据)

数据库中有如下三个表:

学生表(学号id,姓名name,性别sex,系部depart,年龄age)8个学生记录

选课表(学号id,课程号cid,成绩grade) 12门课程

课程表(课程号cid,课程名cname,学分Ccredit) 6门课程

学生-课程模式 S-T :

学生表:Student(Sno,Sname,Ssex,Sage,Sdept)

课程表:Course(Cno,Cname,Cpno,Ccredit)

学生选课表:SC(Sno,Cno,Grade)

1. 从学生表中查询所有同学的所有信息

select * from 学生表

2. 从学生表中查询所有学生的信息,并分别赋予一个别名

select 学号as xuehao,姓名as xingming,性别as xingbie,系部as xibu,年龄as nianling from 学生表

3. 从学生表中查询姓名是Allen的学生的信息

select * from 学生表

where 姓名='Allen'

4.

从学生表中查询

学号在1101到1199之间的所有学生的信息

select * from 学生表

where 学号between 1101 and 1199

5.

从学生表中查询年龄小于18和大于20的所有学生的学号和姓名

select 学号,姓名from 学生表

where 年龄<18 or 年龄>20

6.

从学生表中查询计算机系年龄小于20的所有学生的信息

select * from 学生表

where 系部='computer' and 年龄<20

7.

从学生表中查询姓名以A开头的学生的信息

select * from 学生表

where 姓名LIKE'A%'

8.

从学生表中查询姓名的第三个字符是A的学生的学号和姓名

select 学号,姓名from 学生表

where 姓名LIKE'__A%'

9.

从学生表中查询姓名中包含“llen”的学生的学号和姓名

select 学号,姓名from 学生表

where 姓名LIKE'%llen%'

10.

从学生表中查询姓名中包含“llen”且姓名只有5个字符的学生的学号和姓名

select 学号,姓名from 学生表

where 姓名LIKE'%llen%' and len(姓名)=5

11.

从学生表中查询有年龄信息的学生的学号和姓名

select 学号,姓名from 学生表

where 年龄is not null

12.

从学生表中查询最大年龄和最小年龄

select max(年龄)最大年龄,min(年龄)最小年龄from 学生表

13.

从学生表中查询所有学生的平均年龄

select avg(年龄)平均年龄from 学生表

14.

从学生表中查询学校所有系的名字

select distinct 系部from 学生表

15.

从学生表中查询学校共有多少个系

select count(distinct 系部)系部总和from 学生表

16. 从选课表中查询所有学生的选课情况

select distinct 课程号 from 选课表

17. 从选课表中查询选修课程号为C01课程的学生的学号

select 学号 from 选课表

where 课程号='C01'

18. 从选课表中查询所有没有选C02课程的学生的学号

select distinct 学号 from 选课表

where 课程号!='C02'

19. 从选课表中查询有选修C01或C02课程的学生的学号

select distinct 学号 from 选课表

where 课程号='C01' or 课程号='C02'

20. 从选课表中查询学号为1101的学生的选课情况

select 课程号from 选课表

where 学号='1101'

21. 从选课表中查询所有选课信息,即学号、课程号、成绩,并给成绩加8分

select 学号,课程号,成绩=成绩+8 from 选课表

22. 从选课表中查询学号为1101的学生的所有选修课程成绩的总和

select sum(成绩)成绩总和from 选课表

where 学号='1101'

23. 从选课表中查询选修课程好为C02所有学生的成绩平均值并赋予“平均成绩

”列名

select avg(成绩)平均成绩from 选课表

where 课程号='C02'

24. 从选课表中查询选修课程号C02且该门课程考试及格的学生的学号

select 学号from 选课表

where 课程号='C02' and 成绩>=60

25. 从选课表中查询所有无考试成绩的学生的学号和课程的课程号

select 学号,课程号from 选课表

where 成绩is null

26. 从选课表中查询选修了课程号以C开头的学生的学号和所选课程的课程号

select 学号,课程号from 选课表

where 课程号LIKE'C%'

27. 从选课表中查询选修了课程号以C、D或E开头学生的学号和所选课程的课程号

select 学号,课程号from 选课表

where 课程号LIKE'[CDE]%'

28. 从选课表中查询选修了课程号中包含DB的学生的学号和课程号

select 学号,课程号from 选课表

where 课程号LIKE'%DB%'

29. 从选课表中查询选修了课程的学生的学号

select distinct 学号from 选课表

where 课程号is not null

30. 从选课表中查询选修了课程的学生的人数

select count(distinct 学号)总人数from 选课表

31. 找出姓名以D开头的学生姓名和所有成绩

select 学生表.姓名,选课表.成绩

from 学生表join 选课表on 学生表.学号=选课表.学号

where 学生表.姓名LIKE'D%'

32. 查找的所有学生姓名与学号,结果按学号降序排序

select 学号,姓名

from 学生表

order BY 学号 DESC

33. 查找成绩介于80和90之间的学生姓名,结果按成绩和姓名升序排序

select 学生表.姓名

from 选课表join 学生表on 学生表.学号=选课表.学号

where 选课表.成绩 between 80 and 90

order BY 选课表.成绩,学生表.姓名

34. 查找english系的所有学生姓名,结果按成绩和姓名升序排序

select 学生表.姓名,学生表.学号,选课表.成绩

from 选课表join 学生表on 学生表.学号=选课表.学号

where 学生表.系部='english'

35. 查找同时选修了C01及C02两门课程的学生姓名及学号

select 学生表.姓名,A.学号

from 选课表as A join 选课表as B on A.学号=B.学号

join 学生表on 学生表.学号=A.学号

where A.课程号='C01' and B.课程号='C02'

36. 查找所有选修了课程的学生姓名及所在系别

select distinct 学生表.姓名,学生表.系部

from 学生表join 选课表on 学生表.学号=选课表.学号

where 选课表.课程号is not null

37. 查找成绩高于90分的学生姓名、学号及系别

select 学生表.姓名,学生表.学号,学生表.系部

from 学生表join 选课表on 学生表.学号=选课表.学号

where 选课表.成绩>=90

38. 找出选修了C01课程的学生姓名

select 学生表.姓名

from 学生表join 选课表on 学生表.学号=选课表.学号

where 选课表.课程号='C01'

39.查询English系学生人数

select count(*) English 系总人数

from 学生表

where 系部='English'

40.分别查询各系的学生人数

select 系部,count (*) 人数

from 学生表

group by 系部

41.创建一个角色uus.

CREATE ROLE uus;

42.给uus授权SELECT,UPDATE,INSERT .

GRANT SELECT,UPDATE,INSERT

ON Stu

TO uus

43.44.

增加一个登录,登录名为tp,密码为123,默认的数据库为stu

将登录tp增加为test库的一个用户,并连接到test库。

exec sp_adduser 'tp'

EXEC sp_addlogin 'tp', '123', 'stu'

45.

授权SELECT.

use stu

46.

删除用户与登录.

GRANT SELECT ON stu to tp

exec sp_dropuser 'tp'

47.

uus角色的select权限的收回

REVOKE select

ON stu

FROM uus;

exec sp_droplogin 'tp'

48.打开学生表

Use stu


本文标签: 学生 查询 表中 课程 选课