SQL进阶用法

视图

视图是关系数据库系统提供给用户以多种角度观察数据库中数据的重要机制。他是使用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执行查询操作。

视图的修改

视图的修改包括INSERTDELETEUPDATE
对视图的修改都会转换成对基本表的修改

  1. INSERT INTO table_name({col_names}) VALUES({col_values})
  2. `DELETE FROM table_name WHERE {expressions}
  3. `UPDATE table_name SET {expressions} [WHERE {expressions}]

视图的作用:

  1. 视图能够简化结构和简化复杂查询操作
  2. 视图使用户能以多角度,更灵活观察和共享同一数据
  3. 试图有助于提高数据的逻辑独立性
  4. 视图能够提供安全保护

数据控制

SQL语言的GRANT语句分为授予特权语句和授予角色语句两种形式。角色通常由DBA使用CREATE ROLE创建

  1. 授予角色语句
    1. GRANT <{role}> TO | <{user}> |{PUBLIC}|
  2. 授予权限语句
    1. 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语句收回,其语法与授权相对应

  1. 收回角色
    1. REVOKE <role> FROM {<users>}
  2. 收回特权
    1. REVOKE <{Authorities}> [ON <object_type> <object_name>] FROM {<user>} [CASCADE | RESTRICT]

本文作者: 吃白饭
本文地址: https://eatrice.top/post/SQL进阶用法/
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!