• 数据库视图的基本操作(sql语句)


    表视图的增删改查(sql语句)

    概念:视图是一张虚拟表,它是从数据库的一张或多张表中导出的表,其内容由查询语句定义。

    作用:

    • 简单性、安全性、逻辑数据独立性;
    • 如果应用建立在视图上,当表发生变化时,可以修改视图屏蔽表的变化,使应用程序保持不变;
    • 如果应用建立在视图上,当应用发生变化时,可以修改视图屏蔽应用的变化,使数据库程序保持不变。

    环境:centos7、mysql版本如下图:
    在这里插入图片描述
    注:创建视图需要CREATE VIEW权限,同时需要查询涉及的列的SELECT权限。
    查看创建视图的权限:
    select select_priv,create_view_priv from mysql.user where user=‘用户名’;

    mysql> select select_priv,create_view_priv from mysql.user where user='root';
    +-------------+------------------+
    | select_priv | create_view_priv |
    +-------------+------------------+
    | Y           | Y                |
    | Y           | Y                |
    | Y           | Y                |
    +-------------+------------------+
    3 rows in set (0.01 sec)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    以下出现的实验例子都基于表ployeelnfo,以下是该表结构和表内容:
    在这里插入图片描述

    • 创建视图
      基本语句格式:
      CREATE [ALGORITHM={UNDEFINED | MERGE | TEMPTABLE}]
      VIEW 视图名 [(属性清单)]
      AS SELECT 语句
      [WITH [CASCADED | LOCAL] CHECK OPTION];
    创建视图info_view,显示年龄大于20岁的聘任人员id,name,sex,address信息:
    mysql> create view info_view as select id,name,sex,address from employeelnfo where Age>20;
    Query OK, 0 rows affected (0.01 sec)
    
    • 1
    • 2
    • 3
    • 查看视图
      语句格式
      desc v_name;
      select 字段名(*)from 视图名;
    查看视图info_view的基本结构和详细结构:
    mysql> desc info_view;
    +---------+-------------+------+-----+---------+-------+
    | Field   | Type        | Null | Key | Default | Extra |
    +---------+-------------+------+-----+---------+-------+
    | id      | int(4)      | NO   |     | 0       |       |
    | name    | varchar(20) | NO   |     | NULL    |       |
    | sex     | varchar(4)  | NO   |     | NULL    |       |
    | address | varchar(20) | YES  |     | NULL    |       |
    +---------+-------------+------+-----+---------+-------+
    
    3.查看视图info_view的所有记录。
    mysql> select * from info_view;
    +----+-----------+-----+--------------------+
    | id | name      | sex | address            |
    +----+-----------+-----+--------------------+
    |  2 | 李广      || 北京市昌平区       |
    |  4 | 赵一枚    || 浙江宁波市         |
    +----+-----------+-----+--------------------+
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 修改视图
      语句格式
      ALTER VIEW [ALGORITHM={UNDEFINED | MERGE | TEMPTABLE}] 视图名 [(COLUMN_LIST)]
      AS SELECT_STATEMENT [WITH [CASCADED | LOCAL] CHECK OPTION];
    修改视图info_view,满足年龄小于20岁的聘任人员:id,name,sex,address信息。
    mysql> alter view info_view as
        -> select id,name,sex,address from employeelnfo where Age<20
        -> with check option;
    Query OK, 0 rows affected (0.00 sec)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 更新视图
      更新视图包括insert、update、delete三个语句。
      语句格式
      update 视图名 set 视图列名=‘更改内容’ where 视图列名=‘列的内容’;
    更新视图,将id号为3的聘任员的性别,由“男”改为“女”:
    mysql> update info_view set Sex='女' where Id=3;
    Query OK, 1 row affected (0.02 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
    
    • 1
    • 2
    • 3
    • 4
    • 删除视图
      语句格式
      DROP VIEW [IF EXISTS] 视图名 [RESTRICT | CASCADE]
    删除info_view视图:
    mysql> drop view info_view;
    Query OK, 0 rows affected (0.00 sec)
    
    • 1
    • 2
    • 3
  • 相关阅读:
    盛元广通开放实训室管理系统2.0
    跟我学制作javaEE网上书店销售管理系统(沙箱支付)springboot+vue
    unity打AB包,AssetBundle预制体与图集(一)
    mysql索引不生效
    图解哈希表及其原理
    【21天学习挑战赛—经典算法】LeetCode 1550. 存在连续三个奇数的数组
    韩顺平--多人在线通信系统
    跨境电商测评内幕及自养号技术教学
    今天的码农女孩做了关于生命周期的笔记以及动态时钟的练习
    【稳定性】秘密武器--功能开关技术
  • 原文地址:https://blog.csdn.net/HelloWorld_4396/article/details/127902255