[精讚] [會員登入]
10952

[MYSQL] 查看資料表狀態

要看資料表的狀態,不是結構喔,以前我都會用 procedure analyse(): SELECT `colname`

分享此文連結 //n.sfs.tw/10377

分享連結 [MYSQL] 查看資料表狀態@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2019-10-25 14:16:49 最後編修
2016-12-05 12:10:02 By 張○○
 

自動目錄

列出資料表詳細資料

要看資料表的狀態,不是結構喔,以前我都會用 procedure analyse(),但這個語法很難記,每次都要查。

  SELECT `colname` FROM `tablename` PROCEDURE ANALYSE ( ) ;

例如我想分析整個table `log` 的欄位:

  SELECT * FROM LOGS PROCEDURE ANALYSE ( ) ;

結果如下表,只列出部分:

Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls
netscreen.logs.dayid 1283904003 1284463504 10 10 0 0
netscreen.logs.recordid 1 138070 1 6 0 0
netscreen.logs.elapsed 0 0 1 1 89099 0
netscreen.logs.timereceived 2010-09-08 00:00:03 2010-09-14 11:25:04 19 19 0 0
netscreen.logs.timegenerated 2010-09-08 15:09:00 2010-09-14 11:09:59 19 19 0 0
netscreen.logs.originaladdr 192.168.2.37 192.168.2.37 12 12 0 0
Avg_value_or_avg_length Std Optimal_fieldtype
1284031444.1070 0.0000 INT(10) UNSIGNED NOT NULL
69715.3704 78711.1853 MEDIUMINT(6) UNSIGNED NOT NULL
0.0000 0.0000 ENUM('0') NOT NULL
19.0000 NULL DATETIME NOT NULL
19.0000 NULL DATETIME NOT NULL
12.0000 NULL ENUM('192.168.2.37') NOT NULL

使用SHOW TABLE

這近同事教我一個方法:

SHOW TABLE STATUS;

SHOW TABLE STATUS WHERE name='table-name';

SHOW TABLE STATUS WHERE name like '%table-name%';

例如我有兩個表 `logs`, `summary` ,下達 SHOW TABLE STATUS;  結果如下:

Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free
logs MyISAM 10 Dynamic 89026 172 15314668 281474976710655 1058816 0
summary MyISAM 10 Dynamic 2 40 80 281474976710655 2048 0
Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
NULL 2010-09-08 15:46:16 2010-09-14 10:58:23 NULL utf8_bin NULL    
NULL 2010-09-09 11:12:35 2010-09-14 10:58:23 NULL utf8_bin NULL    

列出表格中的詳細情況

當然,簡單版的用desc,可以列出表格中的欄位情況:

desc `tablename`;

Field Type Null Key Default Extra
dayid int(11) NO   NULL

 

recordid int(11) NO PRI NULL  

上面也可以改用下面的語法,結果是一樣的

show columns from `tablename`;

explain `tablename`;

列出建立的SQL語法

SHOW create table `tablename`;

只列出欄名

 如果只想列出欄位名稱,可用一個可特別的語法,說起來沒什麼邏輯

SELECT column_name FROM information_schema.columns WHERE  table_name = 'mytable'   AND table_schema = 'mydatabase';

參考資料

[1] http://stackoverflow.com/questions/5525970/mysql-show-columns-but-exclude-everything-except-the-field-names


編修原文 2010-09-14 10:51:16  

END

你可能感興趣的文章

兩次使用InnoDB的慘痛經驗 Mysql 的Innodb引擎雖然好用,但是我得說說我兩次的慘痛經驗,這讓我考慮以後可能不會再使用innodb了

Mysql 安裝完畢要做的事 Mysql 安裝完畢後,該處理的流程

[Mysql] 將記錄由0變1、1變0;或是判斷後再改值的寫法 MySQL 將記錄由0變1,1變0的SQL寫法 假如欄位 `active` 為0 是失效;1 為有效,他的型態是 tin

[Mysql/MariaDB] 修改資料庫、表格或欄位名稱 Mysql/MariaDB修改資料庫、表格或欄位名稱

group by的語法在mysql升級後後就不正常了,怎麼回事? ONLY_FULL_GROUP_BY這個變數是怎樣,讓我原本可以用的語法失效了?

[Mysql] 使用union合併兩個表 mysql合併兩個表的方法,使用union

隨機好文

Linux shell 的date表示法 linux下SHELL中的date表示法

為什麼要重造輪子? 什麼輪子?造什麼輪子?我為什麼要重造輪子?

[Win7] 燒錄 iso 檔 在Windows7 中內建燒錄程式,可以直接把檔案拉到光碟機裡,再執行燒錄。

Smarty安裝 smarty 是著名的樣版引擎,非常的好用,用多了突然發現拿掉smarty反而不會寫php了,以下是安裝過程..

[AS3] 變數型態 基本類型宣告 as3 有下列幾種基本類型:string, int, number, object, boolean, n