drop table class create table class ( classId nchar(6) primary key not null, cName nvarchar(20) ) insert into class values('09033','自动化1班') insert into class values('09031','计算机1班'), ('09032','计算机2班'), ('09034','自动化2班') select * from class delete class where classId='09033' delete class where classId='09031' delete class where classId='09032' delete class where classId='09034' update class set cName='自动化3班' where classId=09034 alter table student alter column classId nchar(6)not null alter table student --给student的classId属性增加一个外键 add constraint classId foreign key(classId) references class(classId) alter table student --删掉该外键约束 drop constraint classId --然后才能删掉class drop table class select * from course select * from score select * from student select * from teacher --检查学号为107的学生的课程名,任课老师 select ci.cName,ti.teaName from student as si inner join score as sco on sco.stuId=si.stuId inner join course as ci on ci.cId=sco.cId inner join teacher as ti on ti.teaId=ci.teaId where si.stuId=107 --检索王同学不学习且不助教的任课老师和课程名 select ti.teaName,ci.cName from course as ci inner join teacher as ti on ti.teaId=ci.teaId except ( --王同学学习的课程及任课老师 select ti.teaName,ci.cName from student as si inner join score as sco on sco.stuId=si.stuId inner join course as ci on ci.cId=sco.cId inner join teacher as ti on ci.teaId=ti.teaId where si.stuName like '王%' union --王同学助教的任课老师的课 select ti.teaName,ci.cName from course as ci inner join teacher as ti on ci.teaId=ti.teaId where ti.teaWork='助教' and ti.teaName like '王%' ) --检索至少选修两门课程的学生学号 select sco.stuId,COUNT(*) from score as sco group by sco.stuId having COUNT(*)>1
--子查询 --按学号列出每个学生所选修课程中最高分的课程名称及其分数 select si.stuId,ci.cName,sco.score from student as si inner join score as sco on sco.stuId=si.stuId inner join course as ci on ci.cId=sco.cId inner join teacher as ti on ci.teaId=ti.teaId where sco.score>= ( select MAX(ssco.score) from student as ssi inner join score as ssco on ssco.stuId=ssi.stuId inner join course as cci on cci.cId=ssco.cId inner join teacher as tti on cci.teaId=tti.teaId where ssi.stuName=si.stuName ) order by si.stuId asc