1、查看字段詳細信息
-- 查看詳細信息 SELECT COLUMN_NAME "字段名稱", COLUMN_TYPE "字段類型長度", IF(EXTRA="auto_increment",CONCAT(COLUMN_KEY,"(", IF(EXTRA="auto_increment","自增長",EXTRA),")"),COLUMN_KEY) "主外鍵", IS_NULLABLE "空標識", COLUMN_COMMENT "字段說明" FROM information_schema. COLUMNS
-- 數據庫名:jn_power 表名 rpt_cap_hour_ammeter_201810
WHERE TABLE_SCHEMA = 'jn_power' AND TABLE_NAME = 'rpt_cap_hour_ammeter_201810';
結果如下:
2、查字段
SELECT CONCAT(COLUMN_NAME,"," ) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'jn_power' AND TABLE_NAME = 'rpt_cap_ammeter_2018';
3、查詢字段個數
SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='jn_power' AND table_name='rpt_cap_ammeter_2018'
4、查某個字段所在行數
SET @mytemp = 0; SELECT * FROM ( SELECT (@mytemp:=@mytemp+1) AS newid,t.COLUMN_NAME FROM ( SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'jn_power' AND TABLE_NAME = 'rpt_cap_ammeter_2018' )t ) t WHERE newid=(SELECT COUNT(*) newid FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='jn_power' AND table_name='rpt_cap_ammeter_2018')
5、處理成插入的字段
-- 一列,逗號在前 SET @mytemp = 0; SELECT (CASE t.newid WHEN 1 THEN CONCAT(' ',COLUMN_NAME) ELSE CONCAT(',',COLUMN_NAME) END )COLUMN_NAME -- t.newid,t.COLUMN_NAME FROM ( SELECT * FROM ( SELECT (@mytemp:=@mytemp+1) AS newid,t.COLUMN_NAME FROM ( SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'jn_power' AND TABLE_NAME = 'rpt_cap_hour_ammeter_201810' )t ) t )t -- 用分組的方法(一行) SELECT COUNT(*) count_num,GROUP_CONCAT(COLUMN_NAME) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'jn_power' AND TABLE_NAME = 'rpt_cap_ammeter_2018'
6、查詢某個庫除了主鍵以外的約束
SELECT TABLE_NAME '表名', COLUMN_NAME '字段名', CONSTRAINT_NAME '約束名', REFERENCED_TABLE_NAME '父表名', REFERENCED_COLUMN_NAME '父表字段名' FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = 'net_management' AND CONSTRAINT_name != 'PRIMARY';
7、查詢某個庫的約束和約束類型
SELECT kcu.CONSTRAINT_NAME '約束名稱', LEFT(tc.CONSTRAINT_TYPE,1) '約束類型', kcu.TABLE_SCHEMA '子庫', kcu.TABLE_NAME '子表', kcu.COLUMN_NAME '子表字段', kcu.REFERENCED_TABLE_NAME '父庫', kcu.REFERENCED_TABLE_SCHEMA '父表', kcu.REFERENCED_COLUMN_NAME '父表字段' FROM information_schema.KEY_COLUMN_USAGE kcu LEFT JOIN information_schema.`TABLE_CONSTRAINTS` tc ON kcu.TABLE_SCHEMA = tc.TABLE_SCHEMA AND kcu.TABLE_NAME = tc.TABLE_NAME AND kcu.CONSTRAINT_NAME = tc.CONSTRAINT_NAME WHERE kcu.TABLE_SCHEMA = 'zx_public'
-- AND kcu.CONSTRAINT_NAME!='PRIMARY' ORDER BY kcu.TABLE_SCHEMA,kcu.TABLE_NAME,tc.CONSTRAINT_TYPE; -- AND kcu.TABLE_NAME = 'res_site';