查詢 MySQL 欄位注釋的 5 種方法!

  • 2022 年 1 月 10 日
  • 筆記

很多場景下,我們需要查看 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

執行結果如下圖所示:
image.png

查詢所有欄位注釋

欄位注釋查詢方式1

查詢語法如下:

show full columns from 表名;

案例:查詢 student 表中所有欄位的注釋資訊:

show full columns from student;

執行結果如下圖所示:
image.png

欄位注釋查詢方式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';

執行結果如下圖所示:
image.png

欄位注釋查詢方式3

查詢表的 DDL(數據定義語言)也可以看到欄位的注釋內容,執行的 SQL 語法如下:

show create table 表名;

案例:查詢 student 表中所有欄位的注釋資訊:

show create table student;

執行結果如下圖所示:
image.png

欄位注釋查詢方式4

如果使用的是 Navicat 工具,可以在表上右鍵、再點設計,到設計頁面就可以查看欄位注釋了,如下圖所示:
image.png
但這種操作有點危險,小心手抖把表結構改錯了。

欄位注釋查詢方式5

在 Navicat 中查看錶的 DDL 語句也可以看到欄位注釋,選中表再點擊右下腳「顯示右邊窗口」選項,然後再點擊 DDL 就可以顯示了,具體操作步驟如下圖所示:
image.png

修改表注釋和欄位注釋

修改表注釋

修改表注釋的語法:

alter table 表名 comment ='修改後的表注釋';

案例:修改 student 的表注釋:

alter table student  comment ='學生表 V2';

執行結果如下圖所示:
image.png

修改欄位注釋

修改表注釋的語法:

alter table 表名 modify column 欄位名 int comment '注釋資訊';

案例:修改 student 表中 name 的注釋:

alter table student modify column username int comment '學生姓名 V2';

執行結果如下圖所示:
image.png

總結

本文介紹了查看錶注釋的 SQL,以及修改表和欄位注釋的 SQL,同時還介紹了查看欄位注釋的 5 種方法:3 種命令行操作方式查看,兩種基於 Navicat 的操作方式查看,其中推薦使用 SQL:「show full columns from 表名」查看欄位注釋,這種查詢 SQL 簡單且也不用擔心會誤改表結構。
​

是非審之於己,毀譽聽之於人,得失安之於數。

公眾號:Java面試真題解析

Tags: