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

  • 相关阅读:
    忽然背后冒冷汗
    随机获取中国境内ip地址的php代码
    复制粘贴的句子
    Winform使用BackGroundWorker代替线程执行后台代码
    在IE中测试调用Web Service
    在存储过程中编写正确的事务处理代码
    【转】使用HttpWebRequest POST图片等文件,带参数
    LINQ to Entities 不识别方法"System.String ToString()"
    Asp.net 出现:HTTP 错误 404.0 Not Found
    C# 用内存映射文件读取大日志文件(.log)
  • 原文地址:https://www.cnblogs.com/yybrhr/p/9779972.html
Copyright © 2020-2023  润新知