標籤:des http color io os ar strong for 資料
一:什麼是中繼資料?
所謂中繼資料,就是表示資料的資料,這些資料五花八門,總之,只要不是我們儲存到資料庫裡的資料,大多都可以理解為中繼資料。描述資料庫的任何資料—作為資料庫內容的對立面—是中繼資料。因此,列名、資料庫名、使用者名稱、版本名以及從SHOW語句得到的結果中的大部分字串是中繼資料。還包括INFORMATION_SCHEMA資料庫中的表中的內容,因為定義的那些表格儲存體關於資料庫物件的資訊。
二:如何來擷取這些中繼資料呢?
總的來說,有三種思路,第一種,各種show,第二種,各種select,第三種,是mysql的命令列下的命令,不是sql語句。
1:show
我們首先看第一種,這裡我列舉一下大家比較熟悉的show語句的用法,其實咱們經常用show來查看資訊,比如:
[sql]
show databases; --列出所有資料庫
show create database db_name; --查看資料庫的DDL
show tables; --列出預設資料庫的所有表
show tables from db_name; --列出指定資料庫的所有表
show table status; --查看錶的描述性資訊
show table status from db_name;
show create table tbl_name; --查看錶的DDL
show columns from tbl_name; --查看列資訊
show index from tbl_name; --查看索引資訊
有幾種show語句還可以帶有一條like ‘pattern‘字句,用來限制語句的輸出範圍,其中‘pattern‘允許包含‘%‘和‘_‘萬用字元,比如下面這條語句返回domaininfo表中以s開頭的所有列:
show columns
from
domaininfo
like
‘s%‘
;
2:select像上面這張支援like字句的所有show都可以改寫成一條where字句,如:
show columns
from
domaininfo
where
field=
‘sysdomain‘
;
註:desc tbl_name和explain tbl_name的效果和show columns from tbl_name一致。 從INFORMATION_SCHEMA資料庫裡查詢相關表INFORMATION_SCHEMA是MySQL內建的一個系統資料庫,它裡面儲存了所有的中繼資料,通過select裡面的相關表就可以擷取你想要的中繼資料。和show語句相比,它比較麻煩,但它的好處是標準的SQL語句,更具有可移植性,且更靈活,可以通過各種運算式擷取你真正需要的資訊。 3:從命令列擷取中繼資料
前面兩種方法都必須得在MySQL命令列裡執行,而mysqlshow和mysqldump提供了從OS命令列擷取中繼資料庫的方法,如:
mysqlshow
--列出所有資料庫
mysqlshow db_name
--列出給定資料庫的所有表
mysqlshow db_name tbl_name
--列出給定資料庫表的所有列
mysqlshow
--keys db_name tbl_name --列出索引資訊
mysqlshow
--status db_name --列出資料庫的描述性資訊
mysqldump可以讓你看到
create
table
語句(就想show
create
table
語句一樣),如:
[sql]
mysqldump
--no-data db_name [tbl_name] ...
注意:在用mysqldump查看錶結構時,一定要加上--no-data,否則你看到的將是資料庫表裡的資料
什麼是mysql中的中繼資料