数据库视图的基本操作(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)

以下出现的实验例子都基于表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)
  • 查看视图
    语句格式
    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 | 赵一枚    || 浙江宁波市         |
+----+-----------+-----+--------------------+
  • 修改视图
    语句格式
    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)
  • 更新视图
    更新视图包括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
  • 删除视图
    语句格式
    DROP VIEW [IF EXISTS] 视图名 [RESTRICT | CASCADE]
删除info_view视图:
mysql> drop view info_view;
Query OK, 0 rows affected (0.00 sec)
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值