视图
视图是关系数据库系统提供给用户以多种角度观察数据库中数据的重要机制。他是使用SELECT FROM
语句从一个或多个基本表(或其他视图)中导出的表,它与基本表不同,是一个虚表。数据库中只存放视图的定义,而不存放视图相应的数据,这些数据仍存放在导出它的基本表中。
对视图的一切操作,将被转换为对其导出的基本表的操作
视图的创建
SQL
语言用CREATE VIEW
语句创建视图
CREATE VIEW view_name SELECT {col_names} FROM table_name [where {expressions}
视图支持虚拟列创建,即船舰列名在原基本表中不存在。
视图的删除
SQL
语句中视图的删除使用DROP
关键字
DROP VIEW view_name [CASCADE]
视图的查询
视图的查询方式和基本表的查询方式相同,即使用SELECT
执行查询操作。
视图的修改
视图的修改包括INSERT
、DELETE
、UPDATE
对视图的修改都会转换成对基本表的修改
INSERT INTO table_name({col_names}) VALUES({col_values})
- `DELETE FROM table_name WHERE {expressions}
- `UPDATE table_name SET {expressions} [WHERE {expressions}]
视图的作用:
- 视图能够简化结构和简化复杂查询操作
- 视图使用户能以多角度,更灵活观察和共享同一数据
- 试图有助于提高数据的逻辑独立性
- 视图能够提供安全保护
数据控制
SQL
语言的GRANT
语句分为授予特权语句和授予角色语句两种形式。角色通常由DBA使用CREATE ROLE
创建
- 授予角色语句
GRANT <{role}> TO | <{user}> |{PUBLIC}|
- 授予权限语句
GRANT |<{Authorities}> | ALL | [ON <object_name>] TO | <user> | [<{roles}>] | PUBLIC [WITH GRANT OPTION]
对象(object) | 操作权限(Authorities) |
---|---|
COLUMN | SELECT, INSERT, UPDATE, DELETE, ALL PRIVILEGES |
VIEW | SELECT, INSERT, UPDATE, DELETE, ALL PRIVILEGES |
TABLE | SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, ALL PRIVILEGES |
授予的权限可以由DBA或授权者用REVOKE
语句收回,其语法与授权相对应
- 收回角色
REVOKE <role> FROM {<users>}
- 收回特权
- `REVOKE <{Authorities}> [ON ] FROM {} [CASCADE | RESTRICT]