摘要:在本教程中,您将学习如何使用SHOW FULL TABLE
语句或从数据字典查询信息来显示 MySQL 数据库中的所有视图。
MySQL 显示视图 – 使用SHOW FULL TABLES
语句
MySQL 将视图视为类型为'VIEW'
的表。因此,要显示当前数据库中的所有视图,请使用SHOW FULL TABLES
语句,如下所示:
SHOW FULL TABLES
WHERE table_type = 'VIEW';
Code language: SQL (Structured Query Language) (sql)
由于SHOW FULL TABLES
语句同时返回表和视图,因此您需要添加WHERE
子句以仅获取视图。
如果要显示另一个数据库的所有视图,可以使用FROM
或IN
子句,如下所示:
SHOW FULL TABLES
[{FROM | IN } database_name]
WHERE table_type = 'VIEW';
Code language: SQL (Structured Query Language) (sql)
在此语法中,您可以在FROM
或IN
子句之后指定要从中获取视图的数据库名称。
例如,以下语句显示sys
数据库中的所有视图:
SHOW FULL TABLES IN sys
WHERE table_type='VIEW';
Code language: SQL (Structured Query Language) (sql)
如果要获取与模式匹配的视图,可以使用LIKE
子句,如下所示:
SHOW FULL TABLES
[{FROM | IN } database_name]
LIKE pattern;
Code language: SQL (Structured Query Language) (sql)
以下语句使用LIKE
子句从sys
数据库中查找名称以waits
开头的所有视图:
SHOW FULL TABLES
FROM sys
LIKE 'waits%';
Code language: SQL (Structured Query Language) (sql)
这是输出:
请注意, SHOW TABLES
语句仅返回您有权访问的视图。
MySQL Show View – 使用INFORMATION_SCHEMA
数据库
INFORMATION_SCHEMA
数据库提供对 MySQL 数据库元数据的访问,例如数据库、表、列的数据类型或权限。
INFORMATION_SCHEMA
有时称为数据库字典或系统目录。
要显示数据库的视图,您可以使用INFORMATION_SCHEMA
中的tables 表。
SELECT *
FROM information_schema.tables;
Code language: SQL (Structured Query Language) (sql)
这是部分输出:
与视图相关的列是:
table_schema
列存储视图(或表)的架构或数据库。-
table_name
列存储视图(或表)的名称。 -
table_type
列存储表的类型:表的BASE TABLE
、视图的VIEW
或INFORMATION_SCHEMA
表的SYSTEM VIEW
。
例如,此查询返回classicmodels
数据库中的所有视图:
SELECT
table_name view_name
FROM
information_schema.tables
WHERE
table_type = 'VIEW' AND
table_schema = 'classicmodels';
Code language: SQL (Structured Query Language) (sql)
要查找与模式匹配的视图,请使用table_name
列。例如,此查询查找名称以customer
开头的所有视图:
SELECT
table_name view_name
FROM
information_schema.tables
WHERE
table_type = 'VIEW' AND
table_schema = 'classicmodels' AND
table_name LIKE 'customer%';
Code language: SQL (Structured Query Language) (sql)
概括
- 将
SHOW FULL TABLE
与type_type
VIEW
结合使用可返回当前数据库中的所有视图。 - 使用
SHOW FULL TABLE FROM
(或IN
)语句获取指定数据库中的所有视图。 - 将
LIKE
子句添加到SHOW FULL TABLE
语句中以获取与模式匹配的视图。 - 从表
information_schema.tables
中查询数据以获取数据库中的视图。
本教程有帮助吗?