ROM 珠宝信息
WHERE 珠宝售价>450
执行上述语句创建视图后,通过下属SELECT语句来查看视图中的信息:
SELECT *
FROM 珠宝信息_VIEW
执行后,便得到了我们珠宝售价大于450的珠宝相关信息。
然后对视图“珠宝信息_VIEW”的定义进行修改。将视图中返回的行限定为“珠宝售价”大于550的信息。则用下述的语句进行修改该视图的定义:
ALTER VIEW 珠宝信息_VIEW
AS
SELECT 珠宝商编号,珠宝商名称,珠宝售价
FROM 珠宝信息
WHERE 珠宝售价>550
成功执行上述语句后,使用SELECT语句查看修改后的视图中信息:
SELECT *
FROM 珠宝信息_VIEW
执行后,便得到了我们珠宝售价大于550的珠宝相关信息。
3.通过视图修改数据
在视图中对其中的数据进行修改,实际上就是对基表中的数据进行修改。这是由视图本身的性质决定的,因为视图是一个虚拟表, 它并不存在数据,数据只是存在于基表中。
如果创建视图时,在CREATE VIEW语句中,有下列内容,则该视图中的数据时不可修改的:
SELECT列表中含有DISTINCT;
SELECT列表中含有表达式,诸如计算列、函数等;
在FROM子句中引用多个表;
引用不可更新的视图;
GROUP BY或HAVING子句。
通过视图修改是通过INSERT、UPDATE和DELECT子句来完成的。
3.1 INSERT语句的使用
举例来说,在数据库”销售管理系统“中,基于”供应商信息“表创建一个名为”供应商_VIEW“的视图,该视图中包含列”供应商编号“、”供应商名称“、”联系人姓名“和”联系电话“。
CREATE VIEW 供应商信息-VIEW
AS
SELECT 供应商编号,供应商名称,联系人姓名,联系电话
FROM 供应商信息
成功运行上述语句后,打开视图”供应商_VIEW“,可以对其中的信息进行查看。如果要在视图中添加一行数据,则用INSERT 语句实现:
INSERT INTO 供应商信息_VIEW
VALUES(1010,'黄河科技','吴奎','13202204586')
然后利用下述SELECT语句对插入的数据行后的视图查询:
SELECT *
FROM 供应商信息_VIEW
查询结果,便是我们在视图的最后添加了一行数据,并且打开相应的基表,在基表的最后一行也添加了上述数据。
3.2 UPDATE语句的使用
更新视图中数据和更新基表中的数据的方式一样,但是当视图是基于多个基表的数据时,每次更新操作只能是更新来自一个基表中的数据列的值。
例如,将前面创建的视图”操作人员信息_VIEW“中,添加的姓名为”张蓉蓉“的操作人员的”联系电话“改为 13933456770:
UPDATE 操作人员信息_VIEW
SET 联系电话='13933456770'
WHERE 操作人员姓名='张蓉蓉'
打开视图”操作人员信息_VIEW“,对其中的数据进行查看,发现最后一行中的列”联系电话“中的数据变为13933456770。
3.3 DELETE语句的使用
通过视图删除数据的方法与通过基表删除数据的方法一样,最终还是体现为从基表中删除数据。当一个视图基于两个或者两个以上的基表时,不允许删除视图中的数据。
例如,删除上述”供应商信息_VIEW“视图中天剑的那一行数据。
DELETE FROM 供应商信息_VIEW
WHERE 供应商编号=1010
执行上述语句后,打开视图”供应商信息_VIEW“,则在最前面添加”供应商编号“为1010的一行数据被删除;同样,在基表中的着一行数据也被删除了。
4.学习小结
视图,无论是对于用户还是对于操作人员来说都是一个很重要的工具,简单来说,就是一个虚拟的表,而这个表是你想要的结果,从基表中查询出来的结果,就展现在这个虚拟表中,满足应用的情况下,随时更改你想要的结果,简单而实用。
通过本章节的学习,感觉数据库的知识,实用性很强,努力去实战一下,把知识融会一下。