数据库原理-第3章:数据更新-视图
Posted 可能自洽
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库原理-第3章:数据更新-视图相关的知识,希望对你有一定的参考价值。
1.数据更新
1.1 插入数据
例1 对每一个系,求学生的平均年龄,并把结果存入数据库
CREATE TABLE Deptage
(
Sdept CHAR(15)
Avgage SMALLINT
);
INSERT INTO Deptage(Sdept, Avgage)
SELECT Sdept, AVG(Sage)
FROM Student
GROUP BY Sdept;
例2 向SC表中插入一个元组,学号是’95004’,课号是’1’, 成绩为空
INSERT INTO SC(Sno,Cno,Grade)
VALUES('95004 ,‘1’,NULL);
或
INSERT INTO SC(Sno,Cno)
VALUES( 95004 ,‘1’);
1.2 修改数据
例1 将信息系所有学生的年龄增加1岁
UPDATE Student
SET Sage= Sage+ 1
WHERE Sdept=‘IS’;
例2 将计算机科学系全体学生的成绩置零
UPDATE SC
SET Grade=0
WHERE ‘CS’=
(
SELETE Sdept
FROM Student
WHERE Student.Sno = SC.Sno
);
例3 将Student表中学号为’95004’的学生所属的系改为空值
UPDATE Student
SET Sdept=NULL
WHERE Sno=‘95004’;
1.3 删除数据
例1 删除计算机科学系所有学生的选课记录
DELETE
FROM SC
WHERE ‘CS’=
(
SELETE Sdept
FROM Student
WHERE Student.Sno= SC.Sno
);
2.视图
例1 建立信息系学生的视图
CREATE VIEW IS_ Student
AS
SELECT Sno,Sname, Sage
FROM Student
WHERE Sdept= ‘IS’;
从单个基本表导出,只是去掉了基本表的某些行和某些列,保留了码
例2 定义一个反映学生出生年份的视图
CREATE VIEW BT_S(Sno,Sname,Sbirth)
AS
SELECT Sno, Sname, 2000-Sage
FROM Student
Sbirth为设置的派生属性列,也称为虚拟列
带表达式的视图必须明确定义组成视图的各个属性列名
例3 将学生的学号及他的平均成绩定义为一个视图
CREAT VIEW S_G(Sno,Gavg)
AS
SELECT Sno, AVG(Grade)
FROM SC
GROUP BY Sno;
例4 删除视图IS_ S1
DROP VIEW IS_S1 CASCADE;
例5 在信息系学生的视图中找出年龄小于20岁的学生
SELECT Sno, Sage
FROM IS_ Student
WHERE Sage<20;
例6 查询信息系选修了1号课程的学生
SELECT IS_ Student. Sno, Sname
FROM IS_ Student, SC
WHERE IS_Student.Sno =SC.Sno
AND SC.Cno= ‘1’;
以上是关于数据库原理-第3章:数据更新-视图的主要内容,如果未能解决你的问题,请参考以下文章