数据库 操作题

假设有一个学生-课程数据库S-T,该数据库中有三个表,它们的定义如下:
学生表:Sudent(Sno,Sname,Ssex,Sage,Sdept)
各属性分别表示学生的学号、姓名、性别、年龄和系别。
课程表:Course(Cno,Cname,Cpno,Ccredit)
各属性分别表示课程号、课程名、先行课号和学分。
学生选课表:SC(Sno,Cno,Grade)
各属性分别表示学号、课程号和成绩。
用SQL语言完成以下各操作:

  1. 创建SC表,并分别定义主键约束、外键约束,并在Grade列上定义核查约束,限定成绩的取值只能为0-100。
create table SC (
Sno char(9) foreign key reference Student(Sno),
Cno char(4) foreign key reference Course(Cno), 
Grade int check(Grade between 0 and 100),
primary key (Sno, Cno)
)
  1. 查询“CS”系所有年龄在20岁以下的学生的学号、姓名及年龄。
select Sno,Sname,Sage
from student
where Sage<20 and Sdept='CS'
  1. 查询姓“张”的学生的学号、姓名、性别、年龄。
select Sno,Sname,Ssex,Sage
from student
where Sname like '[张%]'
  1. 求每门课程的最高成绩和平均成绩,要求显示出课程号、最高成绩和平均成绩。
select Cno, MAX Grade, AVG Grade
from SC
group by Cno
  1. 查询既选修了1号课程又选修了2号课程的学生学号。
select Sno
from SC
where Cno='1' and Sno in (
select Sno from SC where Cno='2'
)
  1. 查询选修了“数学”这门课程的学生学号、姓名及成绩。
select a.Sno,Sname,Grade
from Student a, Course b, SC c
where a.Sno=c.Sno and b.Cno=c.Cno
and b.Cname='数学' 
  1. 给所有“IS”系学生的选课成绩增加5分。
update SC,Student 
set SC.Grade += 5 
where SC.Sno=Student.Sno 
and Student.Sdept='IS'
update SC
set Grade+=5
where Sno in (
    select Sno from Student
    where Sdept='IS'
)
  1. 建立一视图,该视图包含CS系中选修了2号课程的学生的学号,姓名及成绩。
create view CS_S1
as
select a.Sno, a.Sname, Grade
from Student a, SC b
where s.Sno=b.Sno and b.cno=2 and a.Sdept='CS'
全部评论

相关推荐

叶扰云倾:进度更新,现在阿里云面完3面了,感觉3面答得还行,基本都答上了,自己熟悉的地方也说的比较细致,但感觉面试官有点心不在焉不知道是不是不想要我了,求阿里收留,我直接秒到岗当阿里孝子,学校那边的房子都退租了,下学期都不回学校,全职猛猛实习半年。这种条件还不诱人吗难道 然后现在约到了字节的一面和淘天的复活赛,外加猿辅导。华为笔试完没动静。 美团那边之前投了个base广州的,把我流程卡麻了,应该是不怎么招人,我直接简历挂了,现在进了一个正常的后端流程,还在筛选,不知道还有没有hc。
点赞 评论 收藏
分享
06-14 19:09
门头沟学院 Java
darius_:给制造业搞的,什么物料管理生产管理,设备管理点检,最最关键的就是一堆报表看板。个人觉得没啥技术含量都是些基本的crud,但是业务很繁琐那种
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务