/*将一个新学生元组
(学号:201215128,姓名:陈冬,性别:男,所在系:IS,年龄:18岁)插入到Student表中
*/
insert
into Student(Sno,Sname,Ssex,Sdept,Sage)
values('201215128','陈冬','男','IS',18)
/*将学生张成民的信息插入到Student表中*/
insert
into Student
values('201215126','张成民','男',18,'CS')
/*插入一条选课记录('201215128','1')(01)*/
insert
into SC(Sno,Cno)
values(201215128,1)
/*插入一条选课记录('201215128','1')(02)*/
insert
into SC
values(201215128,1,null)
/*对每个系,求学生的平均年龄,并把结果存入数据库(01)*/
create table Dept_age
(Sdept char(15),
Avg_age smallint
)
insert
into Dept_age
select Sdept,AVG(Sage)
from Student
group by Sdept
/*对每个系,求学生的平均年龄,并把结果存入数据库(02)*/
select Sdept,AVG(Sage) 平均年龄 into Dept_age
from Student
group by Sdept
/*将学生201215121的年龄改为22岁。*/
update Student
set Sage=22
where Sno=201215121
/*将所有学生的年龄增加1岁*/
update Student
set Sage=Sage+1
/*将计算机科学系全体学生的成绩置0*/
update SC
set Grade=0
where sno in(select Sno
from Student
where Sdept='cs'
)
/*删除学号为201215128的学生记录*/
delete
from Student --from为可选项,此行可直接写Student
where Sno='201215128'
/*删除所有的学生选课记录(delete清空表数据)*/
delete
SC --from SC
/*注意区分删掉sc表*/
drop table SC
/*删掉计算机科学系所有学生的选课记录*/
delete
from Sc
where Sno in(select Sno
from Student
where Sdept='cs'
)
--3.6空值的产生
/*向SC表中插入一个元组,学生号是'201215126',课程号是'1',成绩为空*/
insert
into SC
values(201215126,1,null)
--或者
insert
into SC(Sno,Cno)
values(201215126,1)
/*将Student表中学号为'201215200'的学生所属的系改为空值*/
update Student
set Sdept=null
where Sno=201215200
/*从Student表中找出漏填了数据的学生信息*/
select*
from Student
where Sname is null or Ssex is null or Sage is null or Sdept is null
/*选出选修1号课程的不及格学生的学号*/
select Sno
from SC
where Grade<60 and Cno='1'
/*选出选修1号课程的不及格的学生以及缺考的学生的学号*/
select Sno
from SC
where Grade<60 and Cno=1
union
select Sno
from SC
where Grade is null and Cno=1
--或者
select Sno
from SC
where Cno='1' and(Grade<60 or Grade is null)
--3.7视图
/*建立信息系学生的视图*/
create view IS_Student
as
select Sno,Sname,Sage
from Student
where Sdept='IS'
/*建立信息系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有信息系的学生*/
create view IS_Student
as
select Sno,Sname,Sage
from Student
where Sdept='IS'
with check option
/*
试图进行的插入或更新已失败,原因是目标视图或者目标视图所跨越的某一视图指定了
WITH CHECK OPTION,
而该操作的一个或多个结果行又不符合 CHECK OPTION 约束。
insert
into IS_Student
values(201215128,'李涛',20)
*/
/*建立信息系选修了1号课程的学生的视图(包括学号、姓名、成绩)*/
create view IS_S1
as
select SC.Cno,Sname,Grade
from Student,SC
where Student.Sno=SC.Sno and Sdept='IS' and Cno=1
————————————————————————————————————————————————————————————————————————--2021.4.13