mysql中获取表名与字段名的查询语句

1. 查询数据库中所有表名:

SELECT
    table_name
FROM
    information_schema.TABLES
WHERE
    TABLE_SCHEMA = 'zhanglq_test'
AND TABLE_TYPE = 'base table';

ps: TABLE_SCHEMA: 用于限定数据库的名称,zhanglq_test是我自己建的库,

information_schema 是系统库, 是mysql自带的,

table_type='base table‘: 限定只查询基表;

2. 查询指定数据库中指定表的所有字段名column_name:

SELECT
    table_name
FROM
    information_schema.TABLES
WHERE
    TABLE_SCHEMA = 'zhanglq_test'
AND TABLE_NAME = 'user' ;

ps: TABLE_SCHEMA: 用于限定数据库的名称,

TABLE_NAME = 'user' : 限定表名

3. 获取某个表的查询sql: 如果某个表的字段过多, 但是我们还想对其中的某些字段进行操作,比如,隐藏手机号后四位, 获取身份证号前14位等等,如果一个个字段列出来,不但费时费力的还容易出错,此时我们可以试用以下sql获取查询语句:

SELECT
 t.TABLE_NAME , CONCAT("select ",GROUP_CONCAT(t.COLUMN_NAME), " FROM " , t.TABLE_NAME , ";")
FROM
 information_schema.`COLUMNS` t
WHERE
 t.TABLE_SCHEMA = 'zhanglq_test'
AND t.TABLE_NAME in ('order_info')
AND t.COLUMN_NAME != 'id'
GROUP BY t.TABLE_NAME ;

执行结果如下图:

执行结果的第二列就是一条select 查询结果,当然也可以同时过去吧多个表的select查询语句, 只需要在 t.TABLE_NAME in ('order_info')中添加上相应的表即可, 如果不想获取某一列,需要加上该条件: t.COLUMN_NAME != 'id'.

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值