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';
(0)

相关推荐

  • OpenSchema 方法详解

    OpenSchema 方法详解 来源(www.guzubo.cn) From: http://www.guzubo.cn/3f91b447-0a3f-4de9-9e11-68f46fe136cd608 ...

  • 6、约束管理、索引管理、键管理

    非空约束 #设置非空约束> alter table testtb modify name varchar(100) not null;#删除非空约束> alter table testtb ...

  • 获取数据表列相关数据

    虽然本人在开发数据库时,不太使用视图,但是还是知道 如何获取视图中使用的所有表列: SELECT * FROM INFORMATION_SCHEMA.VIEW_COLUMN_USAGE View Co ...

  • 常用SQL语句分享

    前言: 日常工作或学习过程中,我们可能会经常用到某些SQL,建议大家多多整理记录下这些常用的SQL,这样后续用到会方便很多.笔者在工作及学习过程中也整理了下个人常用的SQL,现在分享给你!可能有些SQ ...

  • mysql 查询指定数据库所有表, 指定表所有列, 指定列所有表 所有外键及索引, 以及索引的创建和删除

    查询指定 数据库 中所有 表 (指定数据库的,所有表) // 可以把 TABLE_NAME 换成 * 号, 查看更丰富的信息 SELECT TABLE_NAME FROM information_sc ...

  • dvwa-sql注入(blind)

    SQL Injection(Blind): SQL Injection(Blind),即SQL盲注. 与一般注入的区别在于: 一般的注入攻击者可以直接从页面上看到注入语句的执行结果,而盲注时攻击者通常 ...

  • MS SQL为字段添加说明

    以ms sql server 14  v17为例. 如下表dbo.Q中有一个字段'' 首先在数据库的系统存储过程列表中: 找到sys.sp_addextendedproperty,使用这个为字段添加一 ...

  • 数据库设计表及字段命名规范(转)

    数据库设计表及字段命名规范(转)

  • Mysql中查询某个数据库中所有表的字段信息

    前言有时候,需要在数据库中查询一些字段的具体信息,而这些字段又存在于不同的表中,那么我们如何来查询呢?在每一个数据库链接的information_schema数据库中,存在这样一张表--COLUMNS ...

  • VB语言获取ACCESS数据库表中字段名

    下面直接用例子来介绍:VB如何获取ACCESS数据库表中的字段名称 Sub getTableName() Dim RS As ADODB.Recordset Dim CN As ADODB.Conne ...

  • MySQL中大数据表增加字段,增加索引实现

    回到顶部 MySQL中大数据表增加字段,通过增加索引实现 普通的添加字段sql ALTER TABLE `table_name` ADD COLUMN `num` int(10) NOT NULL D ...

  • MySQL基础知识学习之创建MySQL数据库和表

    虚构一个微型在线书店的数据库和数据,作为后续MySQL脚本的执行源,方便后续MySQL和SQL的练习. 在虚构这个库的过程中,主要涉及的是如何使用命令行管理 MySQL数据库对象:数据库.表.索引.外 ...

  • 数据库表及字段命名、设计规范

    数据库表及字段命名、设计规范

  • 数据库表及字段命名规范

    数据库设计表及字段命名规范(我整理的,望大家多多提建议) 1.数据库表命名规范: (1)表名前应该加上前缀,表的前缀一个用系统或模块的英文名称缩写,前缀全部大写或首字母大写,表名中包含的单词首字母大写 ...

  • 数据库表及字段命名规范(一)

    一.[操作规范]1. 如无备注,则表中的第一个id字段一定是主键且为自动增长: 2. 如无备注,则数值类型的字段请使用UNSIGNED属性: 3. 如无备注,排序字段order_id在程序中默认使用降 ...