按下列要求创建“学生选课数据库XX”数据库(XX为学生的学号),并为数据库创建三个基本表结构

已知学生选课数据库的三个基本表,其结构如下:
学生表Student(学号,姓名,性别,年龄,系别);
课程表Course(课程号,课程名,任课老师);
选修表SC(学号,课程号,分数)
建表,在定义中要求声明:
(1)每个学生的主外码;
(2)学生的年龄介于16到30之间;
(3)学生的姓名和课程名称不能为空值;
(4)选课成绩要么为空值,要么取0到100之间的整数.

2. 按下表所示的内容用insert语句或企业管理器向三张表中插入记录。(10分)
Student
学号 姓名 性别 年龄 系别
101 张三 男 18 计算机
102 李四 女 16 数学
103 王玲 女 17 中文
105 李飞 男 19 计算机
109 赵四 女 18 历史
110 李平 男 20 化学
Course
课程号 课程名 任课老师
279 高等数学 王备
210 现代文学 王丹
243 有机化学 沈同
204 数据结构 张青
SC
学号 课程号 分数
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语句完成下列查询: (每小题10分,共80分)
(1)检索年龄大于18岁的男学生的学号、姓名和年龄,并按年龄降序排列
(2)检索张三同学选修的所有课程的名称及其成绩;
(3) 检索所有课程都及格了的同学的名字;
(4)检索选修了101课程的女学生的平均年龄
(5) 检索在选修张青老师所教授课程的学生中,成绩最高的学生姓名及其成绩;
(6)删除所有成绩不及格的的选课记录.
(7)将105号同学选修203号课程的成绩改为该门课程的平均成绩.
(8) 建立一个分数在80分以上的选修视图(此视图包括学号、姓名、课程号、课程名、任课老师和分数)

(1)、select 学号,姓名,年龄 from Student order by 年龄 desc
(2)、select (select 课程名 from Course c where c.课程号=s.课程号) 课程名称, s.分数 from sc s
where s.学号=(select st.学号 from Student where 姓名='张三')
(3)、select 姓名 from Student where 学号 in ( select distinct 学号 from SC where 分数>=60 )
(4)、select Avg(年龄) from Student st where st.学号 in( select sc.学号 from sc sc where sc.课程号 in (select 课程号 from Course c where 课程名='101'))
and 性别='女'
(5)、select (select 姓名 from Student st where st.学号=sc1.学号) 学生姓名,sc1.分数 from SC sc1
where sc1.分数 in (select max(分数) from sc sc where sc.课程号 in (select 课程号 from Course c where c. 任课老师='张青'))
and sc.课程号 in (select 课程号 from Course c where c. 任课老师='张青')
(6)delete from SC s where s.分数<60
(7)update SC set 分数=avg(select 分数 from sc where 课程号='203') where 学号='105' and 课程号='203'
(8)create view over80 as
select sc1.学号,(select 姓名 from Student st where st. 学号=sc1.学号) 姓名,
sc1.课程号,(select 课程名 from Course c where c. 课程号=sc1.课程号) 课程名,(select 任课老师 from Course c where c. 课程号=sc1.课程号) 任课老师,
sc1.分数
from sc sc1 where sc1.分数>80追问

还有上面两个问题如何解答 ?

温馨提示:答案为网友推荐,仅供参考
相似回答