SQL语句查询(二)

相信点滴积累,终会厚积薄发。

(1) 查询选修了课程1或者选修了课程2的学生。(写出2种形式的查询语句)
select Sno from SC where Cno=‘1’ UNION select Sno from SC where Cno=‘2’;
select distinct Sno from SC where Cno in (‘1’,‘2’)
(2) 查询没有选修2号课程的学生姓名。
select Sname from Student where not exists(selectfrom SC where Sno=Student.Sno AND Cno=‘2’);
(3) 查询选修课程1的学生集合与选修课程2的学生集合的交集。
select Sno from SC where Cno=‘1’ intersect select Sno from SC where Cno=‘2’;
(4) 查询信息系的学生与年龄不大于19岁的学生的差集。
select
from Student where Sdept=‘IS’ except select* from Student where Sage<=19;
(5) 检索选修了三门课及以上的学生的姓名。
select Sname from Student where Sno in(select sc.Sno from SC group by sc.sno having COUNT(*) >= 3)
(6) 删除信息系(IS)所有学生的选课记录。
delete from SC where Sno in(select Sno from Student where Sdept=‘IS’);
(7) 修改Cno为“1”的记录的课程名为“数据库原理及应用”。
update Course set Cname='数据库原理与应用’where Cno=‘1’;
(8) 将信息系全体学生的成绩改为80。
update SC set Grade=80 where Sno in(select Sno from Student where Sdept=‘IS’)
(9) 删除姓名为张立的学生记录。
delete from Student where Sname in(select Sname from Student where Sname=‘张立’)
(10) 使用SQL增加一条记录到course表中,增加的记录内容如下:
(’9’,’数据挖掘’,’1’,5)
insert INTO Course(Cno,Cname,Cpno,Ccredit) values (‘9’,‘数据挖掘’,‘1’,‘5’)
(11) 往学生表里添加一个学号为“s9”,姓名为“赵丹”的学生
insert into Student(Sno,Sname) values(‘s9’,‘赵丹’)
(12) 删除添加的(7)中的学生。
delete from Student Where Sno=‘s9’
(13) 查询出学号为 “201215121”的学生和学号为“201215122”的学生共同选修的课程 的课程号。
select Cno from SC where Sno=‘201215121’ intersect select Cno from SC where Sno=‘201215122’
用SQL语句建立视图并对视图做相应的操作:
(1)建立计算机系学生的视图CS_View,要求视图中包含学生表中的所有属性,并要求进行修改和插入操作时仍须保证该视图只有计算机系的学生。
create view CS_Student as select * from Student where Sdept=‘CS’
with check option
(2)建立计算机系选修了’3’号课程且成绩在90分以下的学生视图CS_SC_View,并对此视图进行查询。
create view CS_S3(Sno,Sname,Grade) as select Student.Sno,Sname,Grade from Student,SC
where Sdept=‘CS’ AND Student.Sno=SC.Sno and SC.Cno=‘3’
create view CS_s4 as select Sno,Sname,Grade from CS_S3 where Grade<90;
(3)将学生的学号和平均成绩定义为一个视图。
create view S_G(Sno,Gavg) as select Sno,AVG(Grade) From SC Group BY Sno;
(4)利用所建立的视图,查询选修了2号课程的计算机系的学生。
select CS_Student.Sno,Sname from CS_Student,SC where CS_Student.Sno=SC.Sno and SC.Cno =‘2’
(5)将视图CS_View中学号为201215122的学生姓名改为“刘留”,并查看Student表中此学生姓名是否有变化,如有变化请说明原因。
update CS_Student set Sname='刘留’where Sno=‘201215122’
(6)向视图CS_View中插入一条新的学生记录,其中学号为201215126,姓名为李三,年龄为20岁,院系为IS,若未能执行成功,则分析下执行结果。
insert into CS_Student values(‘201215126’,‘李三’,20)
未能执行成功原因:因为规定的CS_Student 视图只能有计算机系,这个修改插入的不是计算机系,所以无法操作。
(7)将视图CS_View中学号为201215121的学生院系改为IS,查看Student表中此学生院系是否发生变化。
update CS_Student set Sdept=‘IS’ where Sno=‘201215121’;


猜你喜欢

转载自blog.csdn.net/qq_43254543/article/details/89360204
今日推荐