MySQL——视图(二)视图管理(4)查看视图

2024-09-06 14:52

本文主要是介绍MySQL——视图(二)视图管理(4)查看视图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        查看视图,是指查看数据库中已经存在的视图的定义。查看视图必须要有 SHOWVIEW 的权限。查看视图的方式有三种,具体如下。

1.使用 DESCRIBE 语句查看视图

        在 MySQL 中,使用 DESCRIBE 语句可以查看视图的字段信息,其中包括字段名、字段类型等信息。DESCRIBE语句的基本语法格式如下所示:

DESCRIBE 视图名;

        或简写为:

DESC 视图名;

        例如,使用 DESCRIBE 语句查看 stu_class 视图,SQL 语句如下所示DESCRIBE stu_ class;
上述 SQL 语句的执行结果如下所示:

mysql> DESCRIBE stu_class;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int         | YES  |     | NULL    |       |
| name  | varchar(20) | YES  |     | NULL    |       |
| glass | varchar(50) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.03 sec)

        上述执行结果显示出了 stu_class 视图的字段信息,接下来,针对执行结果中的不同字段进行详细讲解,具体如下。

(1)NULL:表示该列是否可以存储 NULL值。

(2)Key;表示该列是否已经编制索引。

(3)Default:表示该列是否有默认值。

(4)Extra:表示获取到的与给定列相关的附加信息。

2.使用 SHOW TABLE STATUS 语句查看视图

        在 MySQL 中,使用 SHOW TABLE STATUS 语句可以查看视图的基本信息。SHOW TABLE STATUS 语句的基本语法格式如下所示:

SHOW TABLE STATUS LIKE '视图名';

        在上述格式中,“LIKE”表示后面匹配的是字符串,“视图名”表示要查看的视图的名,视图名称需要使用单引号括起来。

        例如,使用 SHOW TABLE STATUS 语句查看 stu_class 视图,SQL 语句如下示:

SHOW TABLE STATUS LIKE 'stu_class'\G

        上述 SQL 语句的执行结果如下所示:

mysql> SHOW TABLE STATUS LIKE 'stu_class'\G
*************************** 1. row ***************************Name: stu_classEngine: NULLVersion: NULLRow_format: NULLRows: NULLAvg_row_length: NULLData_length: NULL
Max_data_length: NULLIndex_length: NULLData_free: NULLAuto_increment: NULLCreate_time: 2024-09-04 11:29:15Update_time: NULLCheck_time: NULLCollation: NULLChecksum: NULLCreate_options: NULLComment: VIEW
1 row in set (0.01 sec)

        上述执行结果显示了 stu_class 视图的基本信息,从表中可以看出,表的说明(Comment)项的值为 VIEW,说明所查的 stu_class 是一个视图,存储引擎、数据长度等信息都显示为 NULL,说明视图是虚拟表。接下来,同样使用 SHOW TABLE STATUS语句查看 student 表的信息,执行结果如下所示:

mysql> SHOW TABLE STATUS LIKE 'student'\G
*************************** 1. row ***************************Name: studentEngine: InnoDBVersion: 10Row_format: DynamicRows: 3Avg_row_length: 5461Data_length: 16384
Max_data_length: 0Index_length: 0Data_free: 0Auto_increment: NULLCreate_time: 2024-09-04 11:18:03Update_time: 2024-09-04 11:18:10Check_time: NULLCollation: utf8mb4_0900_ai_ciChecksum: NULLCreate_options:Comment:
1 row in set (0.01 sec)

        上述执行结果显示出了 student 表的基本信息,包括存储引擎、创建时间等,但是 Comment 项没有信息,说明这个表不是视图,这就是视图和普通表最直接的区别。

3.使用 SHOW CREATE VIEW 查看视图

        在 MySQL 中,使用 SHOW CREATE VIEW 语句不仅可以查看创建视图时的定义语句,还可以查看视图的字符编码。SHOW CREATE VIEW 语句的基本语法格式如下所示:

SHOW CREATE VIEW 视图名;

        在上述格式中,“视图名”指的是要查看的视图的名称。

        例如,使用 SHOW CREATE VIEW 语句查看 stu_class 视图,SQL 语句如下所示:

SHOW CREATE VIEW stu_class\G

        上述 SQL语句的执行结果如下所示:

mysql> SHOW CREATE VIEW stu_class\G
*************************** 1. row ***************************View: stu_ciassCreate View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `stu_ciass` (`id`,`name`,`glass`) AS select `student`.`s_id` AS `s_id`,`student`.`name` AS `name`,`stu_info`.`class` AS `class` from (`student` join `stu_info`) where (`student`.`s_id` = `stu_info`.`s_id`)
character_set_client: utf8mb4
collation_connection: utf8mb4_0900_ai_ci
1 row in set (0.00 sec)

        从上述执行结果可以看出,使用 SHOW CREATE VIEW 语句查看了视图的名称、创建语句、字符编码等信息。

        所谓修改视图是指修改数据库中存在的视图的定义,比如,当基本表中的某些字段发生变化时,可以通过修改视图的方式来保持视图与基本表的一致性。在 MySQL中,修改视图的方式有两种,具体如下。

这篇关于MySQL——视图(二)视图管理(4)查看视图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1142321

相关文章

Mybatis对MySQL if 函数的不支持问题解读

《Mybatis对MySQLif函数的不支持问题解读》接手项目后,为了实现多租户功能,引入了Mybatis-plus,发现之前运行正常的SQL语句报错,原因是Mybatis不支持MySQL的if函... 目录MyBATis对mysql if 函数的不支持问题描述经过查询网上搜索资料找到原因解决方案总结Myb

MySQL 筛选条件放 ON后 vs 放 WHERE 后的区别解析

《MySQL筛选条件放ON后vs放WHERE后的区别解析》文章解释了在MySQL中,将筛选条件放在ON和WHERE中的区别,文章通过几个场景说明了ON和WHERE的区别,并总结了ON用于关... 今天我们来讲讲数据库筛选条件放 ON 后和放 WHERE 后的区别。ON 决定如何 "连接" 表,WHERE

mysql_mcp_server部署及应用实践案例

《mysql_mcp_server部署及应用实践案例》文章介绍了在CentOS7.5环境下部署MySQL_mcp_server的步骤,包括服务安装、配置和启动,还提供了一个基于Dify工作流的应用案例... 目录mysql_mcp_server部署及应用案例1. 服务安装1.1. 下载源码1.2. 创建独立

Mysql中RelayLog中继日志的使用

《Mysql中RelayLog中继日志的使用》MySQLRelayLog中继日志是主从复制架构中的核心组件,负责将从主库获取的Binlog事件暂存并应用到从库,本文就来详细的介绍一下RelayLog中... 目录一、什么是 Relay Log(中继日志)二、Relay Log 的工作流程三、Relay Lo

使用Redis实现会话管理的示例代码

《使用Redis实现会话管理的示例代码》文章介绍了如何使用Redis实现会话管理,包括会话的创建、读取、更新和删除操作,通过设置会话超时时间并重置,可以确保会话在用户持续活动期间不会过期,此外,展示了... 目录1. 会话管理的基本概念2. 使用Redis实现会话管理2.1 引入依赖2.2 会话管理基本操作

MySQL日志UndoLog的作用

《MySQL日志UndoLog的作用》UndoLog是InnoDB用于事务回滚和MVCC的重要机制,本文主要介绍了MySQL日志UndoLog的作用,文中介绍的非常详细,对大家的学习或者工作具有一定的... 目录一、Undo Log 的作用二、Undo Log 的分类三、Undo Log 的存储四、Undo

MySQL游标和触发器的操作流程

《MySQL游标和触发器的操作流程》本文介绍了MySQL中的游标和触发器的使用方法,游标可以对查询结果集进行逐行处理,而触发器则可以在数据表发生更改时自动执行预定义的操作,感兴趣的朋友跟随小编一起看看... 目录游标游标的操作流程1. 定义游标2.打开游标3.利用游标检索数据4.关闭游标例题触发器触发器的基

MySQL查看表的历史SQL的几种实现方法

《MySQL查看表的历史SQL的几种实现方法》:本文主要介绍多种查看MySQL表历史SQL的方法,包括通用查询日志、慢查询日志、performance_schema、binlog、第三方工具等,并... 目录mysql 查看某张表的历史SQL1.查看MySQL通用查询日志(需提前开启)2.查看慢查询日志3.

MySQL底层文件的查看和修改方法

《MySQL底层文件的查看和修改方法》MySQL底层文件分为文本类(可安全查看/修改)和二进制类(禁止手动操作),以下按「查看方法、修改方法、风险管控三部分详细说明,所有操作均以Linux环境为例,需... 目录引言一、mysql 底层文件的查看方法1. 先定位核心文件路径(基础前提)2. 文本类文件(可直

MySQL数据目录迁移的完整过程

《MySQL数据目录迁移的完整过程》文章详细介绍了将MySQL数据目录迁移到新硬盘的整个过程,包括新硬盘挂载、创建新的数据目录、迁移数据(推荐使用两遍rsync方案)、修改MySQL配置文件和重启验证... 目录1,新硬盘挂载(如果有的话)2,创建新的 mysql 数据目录3,迁移 MySQL 数据(推荐两