一.视图的简介
1,视图是一种虚拟的表,是从数据库中一个或多个表中导出来的表
2,数据库中只存放了视图的定义,并没有存放数据,这些数据存放在原表。,所以基本表数据发生变化,视图也会发生变化
3,使用视图时数据库系统会从原来的表中取出数据
二.视图的作用
1,简化操作。特别是查询操作,减少复杂的SQL语句,增强可读性
2,增强数据的安全性。数据库授权命令不能限定到特定行和特定列,但是通过合理创建视图,可以把权限限定到行列级别
三.使用场合
权限控制的时候,不希望用户访问表中某些含敏感信息的列,比如salary…
关键信息来源于多个复杂关联表,可以创建视图提取我们需要的信息,简化操作;
四.创建视图
CREATE
[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
[DEFINER = { user | CURRENT_USER }]
[SQL SECURITY { DEFINER | INVOKER }]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
ALGORITHM 是可选参数,表示视图选择的算法;
view_name :创建的视图的名称;
column_list:视图中属性的名称,默认情况与select中的二属性相同;
select_statement:查询导入视图中的数据记录的sql语句;
WITH CHECK OPTION:表示视图更新是要在该视图的权限范围之内;
关键部分的基本语法如下:
CREATE VIEW view_name AS select_statement;
例如:
CREATE VIEW v1 AS SELECT * FROM t_book
SELECT * FROM v1
替换属性名称:
例如:
CREATE VIEW v3(bname,price) AS SELECT bookName,price FROM t_book
SELECT * FROM v3
五.查看视图
1,DESC view_name 查看视图基本信息
例如:DESC v2
2,SHOW TABLE STATUS LIKE view_name 查看视图基本信息
例如:SHOW TABLE STATUS LIKE ‘v2’
3,SHOW CREATE VIEW view_name 查看视图详细信息
例如:SHOW CREATE VIEW v2
4,在系统表中查看视图详细信息,查看view表。
六.修改视图
CREATE OR REPLACE VIEW view_name AS select_statement;
例如:
CREATE OR REPLACE VIEW v1 AS SELECT price FROM t_book
SELECT * FROM v1
七.修改视图
CREATE OR REPLACE VIEW view_name AS select_statement;
例如:
ALTER VIEW v1 AS SELECT * FROM t_book
SELECT * FROM v1
八.更新视图
更新视图同更新表一样,插入,删除,更新。
inser into view_name values()
例如:
INSERT INTO v1 VALUES(NULL,’java’,89,’刘爱民’,3)
SELECT * FROM v1