很多場景下,我們需要查看 MySQL 中表注釋,或者是某張表下所有字段的注釋,所以本文就來盤點和對比一下查詢注釋的幾種方式。
創建測試數據庫
開始之前咱們先創建一個數據庫,以備下面演示使用。
-- 如果存在就先刪除數據庫
drop database if exists test2022;
-- 創建數據庫
create database test2022;
-- 切換數據庫
use test2022;
-- 創建表和字段(以及相應的注釋)
CREATE TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '學生編號',
`sn` varchar(50) DEFAULT NULL COMMENT '學號',
`username` varchar(250) NOT NULL COMMENT '學生名稱',
`mail` varchar(250) DEFAULT NULL COMMENT '郵箱',
`class_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) comment='學生表' ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4
查詢所有表注釋
使用以下 SQL 可以查詢某個數據庫下所有表的注釋:
SELECT table_name 表名, table_comment 表說明
FROM information_schema.TABLES
WHERE table_schema='數據庫名'
ORDER BY table_name
案例:查詢 test2022 數據庫中的所有表注解:
SELECT table_name 表名, table_comment 表說明
FROM information_schema.TABLES
WHERE table_schema='test2022'
ORDER BY table_name
執行結果如下圖所示:
查詢所有字段注釋
字段注釋查詢方式1
查詢語法如下:
show full columns from 表名;
案例:查詢 student 表中所有字段的注釋信息:
show full columns from student;
執行結果如下圖所示:
字段注釋查詢方式2
查詢語法如下:
select COLUMN_NAME 字段名,column_comment 字段說明,column_type 字段類型,
column_key 約束 from information_schema.columns
where table_schema='數據庫名' and table_name='表名';
案例:查詢 student 表中所有字段的注釋信息:
select COLUMN_NAME 字段名,column_comment 字段說明,column_type 字段類型,
column_key 約束 from information_schema.columns
where table_schema='test2022' and table_name='student';
執行結果如下圖所示:
字段注釋查詢方式3
查詢表的 DDL(數據定義語言)也可以看到字段的注釋內容,執行的 SQL 語法如下:
show create table 表名;
案例:查詢 student 表中所有字段的注釋信息:
show create table student;
執行結果如下圖所示:
字段注釋查詢方式4
如果使用的是 Navicat 工具,可以在表上右鍵、再點設計,到設計頁面就可以查看字段注釋了,如下圖所示:
但這種操作有點危險,小心手抖把表結構改錯了。
字段注釋查詢方式5
在 Navicat 中查看表的 DDL 語句也可以看到字段注釋,選中表再點擊右下腳“顯示右邊窗口”選項,然后再點擊 DDL 就可以顯示了,具體操作步驟如下圖所示:
修改表注釋和字段注釋
修改表注釋
修改表注釋的語法:
alter table 表名 comment ='修改后的表注釋';
案例:修改 student 的表注釋:
alter table student comment ='學生表 V2';
執行結果如下圖所示:
修改字段注釋
修改表注釋的語法:
alter table 表名 modify column 字段名 int comment '注釋信息';
案例:修改 student 表中 name 的注釋:
alter table student modify column username int comment '學生姓名 V2';
執行結果如下圖所示:
總結
本文介紹了查看表注釋的 SQL,以及修改表和字段注釋的 SQL,同時還介紹了查看字段注釋的 5 種方法:3 種命令行操作方式查看,兩種基於 Navicat 的操作方式查看,其中推薦使用 SQL:“show full columns from 表名”查看字段注釋,這種查詢 SQL 簡單且也不用擔心會誤改表結構。
是非審之於己,毀譽聽之於人,得失安之於數。
公眾號:Java面試真題解析