阅读:754回复:1
三张表关联的SQL语句
假设某教学管理数据库有以下三张表,请写出下列问题的SQL语句:
学生(学号,姓名,年龄,性别) 课程(课程号,课程名,任课教师) 成绩(学号,课程号,成绩) (1)如何在SQL Server上创建这三张表; (2)查询刘峰教师所授课程号,课程名; (3)查询年龄大于20岁的所有男同学的学号、姓名; (4)查询至少选修了两门课程(含两门)的学生学号; (5)查询王文芳同学选修的所有课程的课程号; (6)查询王文芳同学不学的课程的课程号; (7)查询所有上刘峰老师课程的学生学号; (8)查询所有选修“数据库原理”的学生的学号; (9)向学生表中插入一条记录('2003001','吴红', 21,'女');(1表示女,0表示男) (10)删除三张表中所有学号为20020001的学生信息; (11)把学号为20030002的学生的年龄改为22岁。 |
|
沙发#
发布于: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' |
|