北大数据库上机练习题
现有一个学生选修课程的数据库,其中存放以下三个表:学生(学号,姓名,性别,年龄,系别)课程(课程号,课程名,任课教师)选修(学号,课程号,分数)试用SQL语言完成下列功能:
1 建表,在定义中要求声明:
(1)每个表的主外码;
(2)学生的年龄介于16到40之间;
(3)学生的姓名和课程名不能为空值;
(4)选课成绩要么为空值,要么取0到100之间的整数。
2 往表中插入数据
学生 (101,张三,男,18,计算机;
102,李四,男,16,数学;
103,王玲,女,17,中文;
105,李飞,男,19,计算机;
109,赵四,女,18,历史;
110,李平,男,20,化学)
课程 ( 203,操作系统,程羽;
279,高等数学,王备;
210,现代文学,王丹;
243,有机化学,沈同;
204,数据结构,张青;)
选修(101,203,82;
105,203,59;
102,279,90;
101,279,88;
105,279,82;
110,279,68;
109,210,72;
103,210,90;
110,243,92;
101,204,85;
105,204,91;
102,204,56)
3 用SQL语句完成下列查询:
(1)列出张三同学选修的所有课程的名称及其成绩。
(2)列出所有课程都及格了的同学的名字。
(3)列出在选修张青老师所教授课程的学生中,成绩更高的学生姓名及其成绩。
4 删除所有成绩不及格的选课记录。
5 将105号同学选修203号课程的成绩改为该门课程的平均成绩。