MySQL查看视图

时间:2019-11-20 08:52:14  来源:igfitidea点击:

简介:在本教程中,您将学习如何使用SHOW FULL TABLE语句或从数据字典中查询信息来显示MySQL数据库中的所有视图。

MySQL Show View –使用SHOW FULL TABLES语句

要显示当前数据库中的所有视图,请使用SHOW FULL TABLES语句,如下所示:

SHOW FULL TABLES 
WHERE table_type = 'VIEW';

由于SHOW FULL TABLES语句返回表和视图,因此您需要添加WHERE子句以仅获取视图。

如果要显示另一个数据库的所有视图,请使用以下语法:

SHOW FULL TABLES
[{FROM | IN } database_name]
WHERE table_type = 'VIEW';

在此语句中,在FROM或IN子句之后,指定要从中显示视图的数据库的名称。

以下示例显示了sys数据库中的所有视图:

SHOW FULL TABLES IN sys 
WHERE table_type='VIEW';

如果要基于模式获取视图,则可以使用LIKE子句,如下所示:

SHOW FULL TABLES
[{FROM | IN } database_name]
LIKE pattern;

本示例使用LIKE子句从sys数据库中查找所有视图,其名称以waits开头:

SHOW FULL TABLES 
FROM sys
LIKE 'waits%';

这是输出:

请注意,如果您没有视图的特权,则该视图将不会显示在SHOW TABLES语句的输出中。

MySQL Show View –使用INFORMATION_SCHEMA数据库

INFORMATION_SCHEMA数据库提供对MySQL数据库元数据的访问,例如数据库名称,表名称,列的数据类型或特权。

INFORMATION_SCHEMA有时称为数据库字典或系统目录。

要显示数据库的视图,请使用INFORMATION_SCHEMA中的表表。

SELECT * 
FROM information_schema.tables;

这是部分输出:

在此输出中,我们仅对table_schema,table_name,table_type的三列感兴趣:

  • table_schema列存储视图(或表)的架构或数据库。

  • table_name列存储视图(或表)的名称。

  • table_type列存储表的类型:表的基本表,视图的VIEW或信息表的SYSTEM VIEW。

该查询从classicmodels数据库返回所有视图:

SELECT 
    table_name view_name
FROM 
    information_schema.tables 
WHERE 
    table_type   = 'VIEW' AND 
    table_schema = 'classicmodels';

要基于模式查找特定视图,请使用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%';

在本教程中,您学习了如何在MySQL数据库服务器中显示数据库视图。