【MySQL 视图的操作二-查看视图】
目录一级目录二级目录一级目录二级目录一级目录二级目录生词表一级目录二级目录一级目录二级目录一级目录二级目录生词表单词读音译文MySQL如有错误敬请高人指点,书写的易读性可否,希望大家多提意见。...
目录
查看视图
查看视图的语句有很多,例如,SHOW TABLES、SHOW TABLE STATUS、SHOW CREATE VIEW等。
SHOW TABLES 语句查看视图名
从MySQL 5.1 版本开始,实行 SHOW TABLES 语句时不仅会显示表的名字,同时也会显示视图的名字。
使用 SHOW TABLES 语句前必须指定数据库名称,即进入数据库 (USE 数据库名)
例: 首先选择进入数据库 view ,然后查看该数据库中所有表名和视图名。
注: 数据库 view 是我们在上一篇【视图的操作一】建立的
mysql> #选择数据库#
mysql> USE view;
Database changed
mysql> #查看数据库中视图及表的列表#
mysql> SHOW TABLES;
+--------------------+
| Tables_in_view |
+--------------------+
| select_price |
| t_group |
| t_product |
| t_student |
| view_selectproduct |
| view_test1 |
| view_test2 |
| view_test3 |
| view_test4 |
| view_test6 |
| view_test7 |
+--------------------+
11 rows in set (0.00 sec)
SHOW TABLE STATUS 语句查看视图的详细信息
该语句同样不仅会显示表的详细信息,同时也会显示视图的详细信息。
语法形式:
SHOW TABLE STATUS 【FROM 数据库名】【LIKE 'pattern'】
【FROM 数据库名】:指定数据库名 如果没有该参数,需用 USE 语句进入需要查看的数据库
【LIKE ‘pattern’】:指定表或者视图 如果没有该参数 则查看的是指定数据库(FROM 数据库名)或当前使用的数据库(USE 数据库名)中所有表和视图的详细信息
注: 因为该语句存在指定数据库名的参数,所以使用前可以不用 ‘use 数据库名’ 语句。
例1: 查看数据库 view 中所有表和视图的详细信息
mysql> #查看数据库中视图及表的详细信息#
mysql> SHOW TABLE STATUS
-> FROM view \G
*************************** 1. row ***************************
Name: select_price
Engine: NULL
Version: NULL
Row_format: NULL
Rows: NULL
Avg_row_length: NULL
Data_length: NULL
Max_data_length: NULL
Index_length: NULL
Data_free: NULL
Auto_increment: NULL
Create_time: 2022-05-03 22:45:35
Update_time: NULL
Check_time: NULL
Collation: NULL
Checksum: NULL
Create_options: NULL
Comment: VIEW
*************************** 2. row ***************************
Name: t_group
Engine: InnoDB
Version: 10
Row_format: Dynamic
Rows: 5
Avg_row_length: 3276
Data_length: 16384
Max_data_length: 0
Index_length: 0
Data_free: 0
Auto_increment: NULL
Create_time: 2022-05-12 19:28:36
Update_time: 2022-05-12 19:33:15
Check_time: NULL
Collation: gbk_chinese_ci
Checksum: NULL
Create_options:
Comment:
*************************** 3. row ***************************
实际上执行以上语句后,结果中还有其他表和视图的详细信息,这里只截取前两个。
学过上一篇的,应该知道,第一个 select_price 是视图,第二个 t_goup 是个表
详细信息字段含义如下
字段名 | 含义 |
---|---|
Name | 表和视图的名 |
Engine | 表的仔储引擎(在 MysQL4.1.2 之前,用Type 表示) |
Version | 表的.frm 文件的版本号 |
Row_format | 表的行存储格式 |
Rows | 表中行的数 |
Avg row _length | 表中行平均行长度 |
Data_length | 表数据文件的长度 |
Max_data_ length | 表数据文件的最大长度 |
Index_length | 表索引文件的长度 |
Data_free | 表被整序后,但是未使用的字节的数目 |
Auto_increment | 表中下一个AUTO_INCREMENT 值 |
Create_time | 表的创建时间 |
Update_time | 表的最后一次更新时间 |
Check_time | 表的最后一次检查时间 |
Collation | 表的字符集 |
Checksum | 表的活性校验 |
Create_options | 表的额外选项 |
Comment | 表的注解 |
例2: 显示数据库中某一个视图的详细信息
mysql> #查看 view 数据库中view_selectproduct视图的详细信息#
mysql> SHOW TABLE STATUS
-> FROM view
-> LIKE "view_selectproduct" \G
*************************** 1. row ***************************
Name: view_selectproduct
Engine: NULL
Version: NULL
Row_format: NULL
Rows: NULL
Avg_row_length: NULL
Data_length: NULL
Max_data_length: NULL
Index_length: NULL
Data_free: NULL
Auto_increment: NULL
Create_time: 2022-04-28 18:19:49
Update_time: NULL
Check_time: NULL
Collation: NULL
Checksum: NULL
Create_options: NULL
Comment: VIEW
1 row in set (0.00 sec)
数据库用 FROM 来指定,表或者视图用 LIKE 来指定
注: LIKE 后面所指定的视图或者表应该用英文的单引号 ‘’ 或双引号 ""来修饰
SHOW CREATE VIEW 语句查看视图定义信息
语法形式
SHOW CREATE VIEW 视图名称
例1 查看视图 select_price 的定义信息
mysql> #首先进入数据库 view 中#
mysql> USE view;
Database changed
mysql> #查看 view 数据库中 select_price 视图的定义信息#
mysql> SHOW CREATE VIEW select_price \G
*************************** 1. row ***************************
View: select_price
Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL
SECURITY DEFINER VIEW `select_price` AS select `t_product`.`name` AS `name`,`t_p
roduct`.`price` AS `price` from `t_product`
character_set_client: utf8
collation_connection: utf8_general_ci
1 row in set (0.01 sec)
从结果中可以发现 SHOW CREATE VIEW 语句返回两个字段,分别表示视图名的 View 字段和关于视图定义的“Create view ”字段。
例2 看到这里我们可以再延伸一下,用 SHOW CREATE TABLE 语句查看表的定义信息
查看表 t_group 的定义信息
mysql> #首先进入数据库 view 中#
mysql> USE view;
Database changed
mysql> # 查看表 t_group 的定义信息#
mysql> SHOW CREATE TABLE t_group \G
*************************** 1. row ***************************
Table: t_group
Create Table: CREATE TABLE `t_group` (
`id` int DEFAULT NULL,
`name` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=gbk
1 row in set (0.00 sec)
从结果中可以发现 SHOW CREATE TABLE 语句返回两个字段,分别表示表名的 View 字段和关于表定义的“Create Table ”字段。
DESCRIBE | DESC 语句查看视图设计信息
语法形式
DESCRIBE | DESC 视图名称
例1: 查看视图的设计信息
mysql> #首先进入数据库 view 中#
mysql> USE view;
Database changed
mysql> #查看视图 select_price 设计信息#
mysql> DESCRIBE select_price;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| price | float | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
例2 查看表的设计信息
用同样的语句,可以查看表的设计信息
mysql> #首先进入数据库 view 中#
mysql> USE view;
Database changed
mysql> #查看表 t_group 设计信息#
mysql> DESC t_group;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
DESC 语句是 DESCRIBE 语句的缩写,从上面两个例子的运行效果中可以看出,关键字 DESCRIBE 与 DESC 的执行效果是一样的。
通过系统表查看视图信息
当 MySQL 数据库安装成功后,会自动创建系统数据库 information_schema。在该数据库中存在一个包含视图信息的表格 views,可以通过查看表格 views 来查看所有视图的相关信息。
如下图所示:
mysql> #查看所有数据库名录#
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| company |
| information_schema |
| mysql |
| performance_schema |
| sys |
| view |
+--------------------+
6 rows in set (0.00 sec)
mysql> #进入 information_schema 数据库中#
mysql> USE information_schema;
Database changed
mysql> #查看其包含的所有表#
mysql> SHOW TABLES;
+---------------------------------------+
| Tables_in_information_schema |
+---------------------------------------+
| ADMINISTRABLE_ROLE_AUTHORIZATIONS |
| APPLICABLE_ROLES |
| CHARACTER_SETS |
| CHECK_CONSTRAINTS |
| ………… 略 |
| VIEWS |
+---------------------------------------+
79 rows in set (0.01 sec)
在数据库 information_schema 中存在名为 VIEWS 的表。
例: 通过查看系统表 information_schema 来查看视图对象 view_selectproduct 相关信息。
mysql> #进入 information_schema 数据库中#
mysql> USE information_schema;
Database changed
mysql> #查看表数据#
mysql> SELECT *
-> FROM views
-> WHERE table_name='view_selectproduct' \G
*************************** 1. row ***************************
TABLE_CATALOG: def
TABLE_SCHEMA: view
TABLE_NAME: view_selectproduct
VIEW_DEFINITION: select `view`.`t_product`.`id` AS `id`,`view`.`t_product`.
`name` AS `name` from `view`.`t_product`
CHECK_OPTION: NONE
IS_UPDATABLE: YES
DEFINER: root@localhost
SECURITY_TYPE: DEFINER
CHARACTER_SET_CLIENT: utf8
COLLATION_CONNECTION: utf8_general_ci
1 row in set (0.01 sec)
生词表
单词 | 读音 | 译文 | MySQL |
---|---|---|---|
status | 英 [ˈsteɪtəs] | n.地位;状态;身份;职位;…… | 详细信息 |
pattern | 英 [ˈpætn] | n.图案;模式;方式; …… | 指定具体的某一个部分 |
describe | 英[dɪˈskraɪb] | vt. 描述; 形容; | 描述 |
如有错误敬请高人指点,书写的易读性可否,希望大家多提意见。
更多推荐
所有评论(0)