information_schema系列五(表,觸發器,視圖,存儲過程和函數)


這個系列的文章主要是為了能夠讓自己了解MySQL5.7的一些系統表,統一做一下備注和使用,也希望分享出來讓大家能夠有一點點的受益。
1:TABLES
TABLES這張表毫無疑問了,就是記錄的數據庫中表的信息,其中包括系統數據庫和用戶創建的數據庫。而TABLESPACES 卻是標注的活躍表空間。
看一下TABLES 的記錄關於TEST1表:
 
其實我們通過show table status like 'test1'\G;可以看到相同的信息。
 
TABLE_TYPE這列有兩種類型,分別是BASE TABLE和VIEW兩種,TABLE_ROWS就是指明表的行數是多少。如果十一INFORMATION_SCHEMA的表的話,這個值就是NULL。
DATA_FREE這個列指明的是表的可用空間是多少。
我們可以通過以下方式進行查詢:
SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'db_name' AND table_name LIKE 'tablename'
查看某個表的詳細信息.這點要注意分區表和普通表的顯示會有所不同,所以說如果是分區表的話可以稍微留意一下。
2:TRIGGERS
首先看一下記錄:
 
這個表記錄的就是觸發器的信息,包括所有的相關的信息。系統的和自己用戶創建的觸發器。
我們也可以通過以下的信息查看一個系統的觸發器信息。
SHOW create TRIGGER sys_config_insert_set_user\G;
具體列的信息就不再說了,看着就很明白。貼一下show create trigger的信息
 
我們可以通過以下信息進行查詢
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_SCHEMA='test' AND TRIGGER_NAME='name'\G
3: VIEWS
老規矩查看一下信息
 
這個存放的是視圖的信息,也是系統的和用戶的基本視圖信息。
我們其實需要查看的就是這個視圖的創建語句。通過一下語句就能夠查詢
SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v';
4:ROUTINES
這個視圖存放的也是一些基本信息,是關於存儲過程和方法function的一些信息,不過這個信息是不包括用戶自定義的,只是系統的一些信息。
里面包含了很多信息,我們可以看一下列結構,因為實在太多貼不出來了:
 
 
 
PS:最近幾天事情太多,寫的東西沒啥技術含量,都是一些自己測試測試看看。其實看官網的話來的更快一點。建議大家直接看官網資料。
 


免責聲明!

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



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