什么是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,否則你看到的將是數據庫表里的數據
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM