加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 (https://www.pinziwang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql中,什么是视图,视图的作用是什么?

发布时间:2022-10-10 15:21:10 所属栏目:MySql教程 来源:
导读:  需求描述:

  在看mysql的视图,对于视图的定义,进行基本的了解,在此记录下.

  概念解释:

  视图:存储的查询语句,当调用的时候mysql作用,产生结果集,视图充当的是虚拟表的角色.

  测试过程
  需求描述:
 
  在看mysql的视图,对于视图的定义,进行基本的了解,在此记录下.
 
  概念解释:
 
  视图:存储的查询语句,当调用的时候mysql作用,产生结果集,视图充当的是虚拟表的角色.
 
  测试过程:
 
  说明:
 
  1.创建表,插入数据,并且执行查询
 
  mysql> CREATE TABLE t (qty INT, price INT);
  Query OK, 0 rows affected (0.09 sec)
  mysql> INSERT INTO t VALUES(3, 50), (5, 60);
 
  Query OK, 2 rows affected (0.01 sec)
 
  Records: 2 Duplicates: 0 Warnings: 0
 
  mysql> SELECT * FROM t;
 
  +–----±------+
 
  | qty | price |
 
  +–----±------+
 
  | 3 | 50 |
 
  | 5 | 60 |
 
  +–----±------+
 
  2 rows in set (0.00 sec)
 
  2.创建视图,视图中的查询根据具体的情况有相应的表达式
 
  mysql> CREATE VIEW v AS SELECT qty, price, qty*price AS value FROM t;
 
  Query OK, 0 rows affected (0.01 sec)
  3.查询视图v
 
  mysql> SELECT * FROM v;
  +------+-------+-------+
  | qty  | price | value |
  +------+-------+-------+
  |    3 |    50 |   150 |
  |    5 |    60 |   300 |
  +------+-------+-------+
  2 rows in set (0.00 sec)
 
  对于视图的查询也可以加上过滤条件:
 
  mysql> SELECT * FROM v WHERE qty = 5;
  +------+-------+-------+
  | qty? | price | value |
  +------+-------+-------+
  |??? 5 |??? 60 |?? 300 |
  +------+-------+-------+
  1 row in set (0.00 sec)
  备注:所以仅仅查询这个视图,和执行定义语句中的SQL语句的效果相同.即就相当于查询了一张表.同时,视图也就等同于后面的查询语句,视图是存储在数据库中的,所以就理解了开头说的存储的查询.
 
  4.查看当前库下所有的视图
 
  mysql> show full tables where table_type like 'VIEW';
  +----------------+------------+
  | Tables_in_test | Table_type |
  +----------------+------------+
  | v              | VIEW       |
  | vw_01          | VIEW       |
  +----------------+------------+
  2 rows in set (0.00 sec)
  5.基于其他的视图来创建视图
 
  mysql 优化表的作用_mysql default作用_mysql作用
 
  mysql> select * from vw_01;  #vw_01是一个视图.
  +---+------+
  | a | b    |
  +---+------+
  | 1 | NULL |
  | 2 | NULL |
  | 3 | NULL |
  | 4 | NULL |
  +---+------+
  4 rows in set (0.00 sec)
  mysql> create view v01 as select a,b from vw_01; #基于视图来创建视图,也就是说,视图定义中的SELECT查询的是另外的视图.
 
  Query OK, 0 rows affected (0.02 sec)
 
  mysql> select * from v01;
 
  +–-±-----+
 
  | a | b |
 
  +–-±-----+
 
  | 1 | NULL |
 
  | 2 | NULL |
 
  | 3 | NULL |
 
  | 4 | NULL |
 
  +–-±-----+
 
  4 rows in set (0.00 sec)
 

(编辑:拼字网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!