MySQL查詢某個數據庫某個表的字段


 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';

 

 


免責聲明!

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



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