1. 程式人生 > >查看MySQL中的對象

查看MySQL中的對象

MySQL對象


表:

select TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE,ENGINE from information_schema.tables where TABLE_SCHEMA not in ('performance_schema','information_schema','mysql');

視圖:

select TABLE_SCHEMA,TABLE_NAME from information_schema.tables where table_type='view';

索引:

SELECT TABLE_SCHEMA,TABLE_NAME,INDEX_NAME,INDEX_TYPE FROM INFORMATION_SCHEMA.STATISTICS ;



存儲過程:

select db,name from mysql.proc ;


函數:

select * from mysql.func


事件:

select db,name from mysql.event;



觸發器:

select TRIGGER_SCHEMA,TRIGGER_NAME from information_schema.`TRIGGERS`;

約束

select TABLE_SCHEMA,TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE from information_schema.`TABLE_CONSTRAINTS`;


外鍵:

select CONSTRAINT_SCHEMA, TABLE_NAME, CONSTRAINT_NAME, REFERENCED_TABLE_NAME from `information_schema`.REFERENTIAL_CONSTRAINTS ;



判斷所有的表是否有主鍵:


SELECT

TABLE_SCHEMA,table_name

FROM

information_schema.TABLES

WHERE

table_schema not in ('information_schema','performance_schema','sys','mysql') AND

TABLE_NAME NOT IN (

SELECT

table_name

FROM

information_schema.table_constraints t

JOIN information_schema.key_column_usage k USING (

constraint_name,

table_schema,

table_name

)

WHERE

t.constraint_type = 'PRIMARY KEY'

AND t.table_schema not in ('information_schema','performance_schema','sys','mysql')

);


統計MySQL數據庫的數據量


SELECT TABLE_SCHEMA,TABLE_NAME,ENGINE,TABLE_ROWS,AVG_ROW_LENGTH,concat(ROUND(DATA_LENGTH/1024/1024/1024,2),'G') "DATA_LENGTH" ,concat(ROUND(INDEX_LENGTH/1024/1024/1024,2),'G') "INDEX_LENGTH",concat(ROUND((INDEX_LENGTH/1024/1024/1024)+(DATA_LENGTH/1024/1024/1024),2),'G') "Total",TABLE_COLLATION,CREATE_TIME FROM

INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'xxx' ORDER BY TABLE_ROWS DESC;


查看MySQL中的對象