gogogo
管理员
管理员
  • UID25
  • 粉丝0
  • 关注0
  • 发帖数1384
阅读:762回复:1

三张表关联的SQL语句

楼主#
更多 发布于:2024-09-05 12:43
假设某教学管理数据库有以下三张表,请写出下列问题的SQL语句:   
学生(学号,姓名,年龄,性别)   
课程(课程号,课程名,任课教师)
成绩(学号,课程号,成绩)


(1)如何在SQL Server上创建这三张表;
(2)查询刘峰教师所授课程号,课程名;
(3)查询年龄大于20岁的所有男同学的学号、姓名;
(4)查询至少选修了两门课程(含两门)的学生学号;
(5)查询王文芳同学选修的所有课程的课程号;
(6)查询王文芳同学不学的课程的课程号;
(7)查询所有上刘峰老师课程的学生学号;
(8)查询所有选修“数据库原理”的学生的学号;
(9)向学生表中插入一条记录('2003001','吴红',
21,'女');(1表示女,0表示男)
(10)删除三张表中所有学号为20020001的学生信息;
(11)把学号为20030002的学生的年龄改为22岁。
gogogo
管理员
管理员
  • UID25
  • 粉丝0
  • 关注0
  • 发帖数1384
沙发#
发布于:2024-09-05 12:50
答案解析:
1.学生表:
Create table 学生表 (学号 char (8) primary Key, 姓名 char(8), 年龄 int, 性别 bit

课程表:
Create table 课程表 (课程号 char (7) primary Key, 课程名 char(20), 任课教师 char (8)

成绩表:
Create table 成绩表 (学号 char (8),课程号 char (7), 成绩 Numeric (4,2)


2.
查询刘峰教师所授课程号,课程名:
Select 课程号, 课程名 from 课程表 where 任课教师='刘峰'

3.
查询年龄大于20岁的所有男同学的学号、姓名;
Select 学号, 姓名 from 学生表 where 性别=1 and 年龄>20

4.
查询至少选修了两门课程(含两门)的学生学号;
select 学号 from 成绩 group by 学号  having count(学号)>=2

5.
查询王文芳同学选修的所有课程的课程号;
Select 课程号 from 成绩表, 学生表 Where学生表.姓名='王文芳' and 学生表.学号=成绩表.学号

6.查询王文芳同学不学的课程的课程号;
select 课程号 from 成绩表
where 课程号 not in (select 课程号 from 学生表,成绩表 where 学生表.姓名='王文芳' and 学生表.学号=成绩表.学号)

7.
查询所有上刘峰老师课程的学生学号;
Select 学号 from 成绩表,课程表,学生表
Where 课程表.任课教师='刘世峰' and 课程表.课程号=成绩表.课程号 and 课程表.学号=成绩表.学号

8.
查询所有选修'数据库技术'的学生的学号;
Select 学号 from 成绩表,课程表
where 课程表.课程名='数据库技术' and 课程表.课程号=成绩表.课程号

9.
向学生表中插入一条记录('2003001','吴红',21,'女');(1表示女,0表示男)
insert into 学生表 values ('2003001','吴红','21',1)

10.删除三张表中所有学号为20020001的学生信息;
  Delete from 学生表 where 学号='20020001'

11. 把学号为20030002的学生的年龄改为22岁。
Update 学生表 set 年龄='22' where 学号='20030002'
游客


返回顶部