MySQL查看视图

打印 上一主题 下一主题

主题 894|帖子 894|积分 2682

【图书推荐】《MySQL 9从入门到性能优化(视频教学版)》-CSDN博客

《MySQL 9从入门到性能优化(视频教学版)(数据库技能丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com)
MySQL9数据库技能_夏天又到了的博客-CSDN博客
查看视图是查看数据库中已存在的视图的定义。查看视图必须要有SHOW VIEW权限,MySQL数据库下的user表中保存着这个信息。查看视图的方法包括DESCRIBE、SHOW TABLE STATUS和SHOW CREATE VIEW,本节将先容查看视图的各种方法。
9.3.1  利用DESCRIBE语句查看视图基本信息

DESCRIBE可以用来查看视图,具体的语法如下:
  1. DESCRIBE 视图名;
复制代码
【例9.4】通过DESCRIBE语句查看视图view_t的定义,SQL语句如下:
  1. DESCRIBE view_t;
复制代码
语句实行结果如下:
  1. mysql> DESCRIBE view_t;
  2. +-----------------+------------+------+-----+---------+-------+
  3. | Field           | Type       | Null | Key | Default | Extra |
  4. +-----------------+------------+------+-----+---------+-------+
  5. | quantity        | int        | YES  |     | NULL    |       |
  6. | price           | int        | YES  |     | NULL    |       |
  7. | quantity *price | bigint(21) | YES  |     | NULL    |       |
  8. +-----------------+------------+------+-----+---------+-------+
复制代码
结果表现出了视图的字段定义、字段的数据类型、是否为空、是否为主/外键、默认值和额外信息。
DESCRIBE一样平常环境下都简写成DESC,DESC命令的实行结果和DESCRIBE命令的实行结果是一样的。
9.3.2  利用SHOW TABLE STATUS语句查看视图基本信息

查看视图的信息也可以通过SHOW TABLE STATUS语句完成,具体的语法如下:
  1. SHOW TABLE STATUS LIKE '视图名';
复制代码
【例9.5】利用SHOW TABLE STATUS命令查看视图信息,SQL语句如下:
  1. SHOW TABLE STATUS LIKE 'view_t' \G
复制代码
语句实行结果如下:
  1. mysql> SHOW TABLE STATUS LIKE 'view_t' \G
  2. *************************** 1. row ***************************
  3.            Name: view_t
  4.          Engine: NULL
  5.         Version: NULL
  6.      Row_format: NULL
  7.            Rows: NULL
  8. Avg_row_length: NULL
  9.     Data_length: NULL
  10. Max_data_length: NULL
  11.    Index_length: NULL
  12.       Data_free: NULL
  13. Auto_increment: NULL
  14.     Create_time: 2027-07-25 09:06:24
  15.     Update_time: NULL
  16.      Check_time: NULL
  17.       Collation: NULL
  18.        Checksum: NULL
  19. Create_options: NULL
  20.         Comment: VIEW
复制代码
实行结果表现,表的Comment的值为VIEW,阐明该表为视图;其他的信息为NULL,阐明这是一张虚表。
用同样的语句来查看一下数据表tv的信息,实行结果如下:
  1. mysql> SHOW TABLE STATUS LIKE 'tv' \G
  2. *************************** 1. row ***************************
  3.            Name: tv
  4.          Engine: InnoDB
  5.         Version: 10
  6.      Row_format: Dynamic
  7.            Rows: 1
  8. Avg_row_length: 16384
  9.     Data_length: 16384
  10. Max_data_length: 0
  11.    Index_length: 0
  12.       Data_free: 0
  13. Auto_increment: NULL
  14.     Create_time: 2024-03-17 09:05:49
  15.     Update_time: 2024-03-17 09:05:56
  16.      Check_time: NULL
  17.       Collation: utf8mb4_0900_ai_ci
  18.        Checksum: NULL
  19. Create_options:
  20.         Comment:
复制代码
从查询的结果来看,这里的信息包含了存储引擎、创建时间等,并且Comment信息为空。这就是视图和表的区别。
9.3.3  利用SHOW CREATE VIEW语句查看视图详细信息

利用SHOW CREATE VIEW语句可以查看视图详细定义,语法如下:
  1. SHOW CREATE VIEW 视图名;
复制代码
【例9.6】利用SHOW CREATE VIEW查看视图的详细定义,SQL语句如下:
  1. SHOW CREATE VIEW view_t \G
复制代码
语句实行结果如下:
  1. mysql> SHOW CREATE VIEW view_t \G
  2. *************************** 1. row ***************************
  3.                 View: view_t
  4.          Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `view_t` AS select `tv`.`quantity` AS `quantity`,`tv`.`price` AS `price`,(`tv`.`quantity` * `tv`.`price`) AS `quantity *price` from `tv`
  5. character_set_client: utf8mb4
  6. collation_connection: utf8mb4_0900_ai_ci
复制代码
实行结果中表现了视图的名称、创建视图的语句等信息。
9.3.4  在views表中查看视图详细信息

在MySQL中,information_schema数据库下的views表中存储了全部视图的定义。通过对views表举行查询,可以查看数据库中全部视图的详细信息,查询语句如下:
  1. SELECT * FROM information_schema.views;
复制代码
【例9.7】在views表中查看视图的详细定义,SQL语句如下:
  1. mysql> SELECT * FROM information_schema.views\G
  2. *** 1. row ***
  3.        TABLE_CATALOG: def
  4.         TABLE_SCHEMA: chapter11db
  5.           TABLE_NAME: stu_glass
  6.      VIEW_DEFINITION: select `chapter11db`.`student`.`s_id` AS `id`,`chapter11db`.`student`.`name` AS `name`,`
  7. chapter11db`.`stu_info`.`glass` AS `glass` from `chapter11db`.`student` join `chapter11db`.`stu_info` where (`
  8. chapter11db`.`student`.`s_id` = `chapter11db`.`stu_info`.`s_id`)
  9.         CHECK_OPTION: NONE
  10.         IS_UPDATABLE: YES
  11.              DEFINER: root@localhost
  12.        SECURITY_TYPE: DEFINER
  13. CHARACTER_SET_CLIENT: gbk
  14. COLLATION_CONNECTION: gbk_chinese_ci
  15. *** 2. row ***
  16.        TABLE_CATALOG: def
  17.         TABLE_SCHEMA: chapter11db
  18.           TABLE_NAME: view_t
  19.      VIEW_DEFINITION: select `chapter11db`.`t`.`quantity` AS `quantity`,`chapter11db`.`t`.`price` AS `price`,(
  20. `chapter11db`.`t`.`quantity` * `chapter11db`.`t`.`price`) AS `quantity *price` from `chapter11db`.`t`
  21.         CHECK_OPTION: NONE
  22.         IS_UPDATABLE: YES
  23.              DEFINER: root@localhost
  24.        SECURITY_TYPE: DEFINER
  25. CHARACTER_SET_CLIENT: gbk
  26. COLLATION_CONNECTION: gbk_chinese_ci
  27. *** 3. row ***
  28.        TABLE_CATALOG: def
  29.         TABLE_SCHEMA: chapter11db
  30.           TABLE_NAME: view_t2
  31.      VIEW_DEFINITION: select `chapter11db`.`t`.`quantity` AS `qty`,`chapter11db`.`t`.`price` AS `price`,(`chap
  32. ter11db`.`t`.`quantity` * `chapter11db`.`t`.`price`) AS `total` from `chapter11db`.`t`
  33.         CHECK_OPTION: NONE
  34.         IS_UPDATABLE: YES
  35.              DEFINER: root@localhost
  36.        SECURITY_TYPE: DEFINER
  37. CHARACTER_SET_CLIENT: gbk
  38. COLLATION_CONNECTION: gbk_chinese_ci
  39. 3 rows in set (0.03 sec)
复制代码
查询的结果中表现了当前已经定义的全部视图的详细信息,包括前面定义的3个名称为“stu_glass”“view_t”和“view_t2”的视图的详细信息。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

三尺非寒

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表