视图的查询,再这里我们必须要明确一个东西,那就是视图他就是命名的导出表,什么是导出表
SELECT *
FROM SE_Students
WHERE Sex = '男';
这里我们使用的之前定义的软件工程的视图SE_Students的命名
然后他等价于
SELECT *
FROM (SELECT Sno,Sname,Sex,Brithday,Dno
FROM Students
WHERE Speciality = '软件工程')
AS SE_Students(Sno,Sname,Sex,Brithday,Dno)
WHERE Sex = '男';
没错,这就是一个导出表,他就是把一些属性聚集了起来,其实这些属性还是别人基本表里面的,
你想要更新(增加,删除,修改)那就是该基本表中的数据
比如
INSERT INTO SE_Students(Sno,Sname,Birthday,Sex,Dno)
VALUES('20170809','舞厅',1997-09-09,'女','EI');
那这不就等于
INSERT INTO Students(Sno,Sname,Birthday,Sex,Dno)
VALUES('20170809','舞厅',1997-09-09,'女','EI');
这里隐藏了Specialty是'软件工程'的查询,因为,SE_Students。。
删除
DELETE FROM SE_Students
WHERE Sno = '20170909';
等于
DELETE FROM SE_Students
WHERE Sno = '20170909'AND Speciality = '软件工程';
修改
UPDATE SE_Students
SET Sname = 'liyan'
WHERE Sno = '20170909'AND Speciality = '软件工程';
还有聚集视图改不了这很明显,别人平均值你改不了,
视图的作用:
①是一些查询表达更加简洁
②提供了一定程度的逻辑独立性
③安全保护作用
④使用户能够以不同角度看待相同数据