一:什么是元數據?
所謂元數據,就是表示數據的數據,這些數據五花八門,總之,只要不是我們存儲到數據庫里的數據,大多都可以理解為元數據。描述數據庫的任何數據—作為數據庫內容的對立面—是元數據。因此,列名、數據庫名、用戶名、版本名以及從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%'
;
show columns
from
domaininfo
where
field=
'sysdomain'
;
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] ...