数据库原理-第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章:数据更新-视图的主要内容,如果未能解决你的问题,请参考以下文章

数据库原理与设计第六章知识点总结

数据库原理-第3章:数据查询

SQL语言数据库原理与设计

数据库原理与设计第一章知识点总结

计算机组成原理 之 计算题总结(考前持续更新)

数据库工程师学习笔记-第1章-数据库原理概述