1. 程式人生 > >Mysql元資料是什麼?

Mysql元資料是什麼?

一:什麼是元資料?

所謂元資料,就是表示資料的資料,這些資料五花八門,總之,只要不是我們儲存到資料庫裡的資料,大多都可以理解為元資料。描述資料庫的任何資料—作為資料庫內容的對立面—是元資料。因此,列名、資料庫名、使用者名稱、版本名以及從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,否則你看到的將是資料庫表裡的資料