mysql 查询表的字段/列名; 查询字段/列名所在的表

本文介绍了如何在MySQL中查询表的字段/列名,包括使用`SHOW`命令简单查询列名,以及通过查询`information_schema.COLUMNS`获取字段所在的表,可以限定查询特定数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查询表的字段/列名

  • 用 show 的方法
SHOW COLUMNS from database_name.table_name;

mysql> show columns from actor;
+-------------+----------------------+------+-----+-------------------+-----------------------------+
| Field       | Type                 | Null | Key | Default           | Extra                       |
+-------------+----------------------+------+-----+-------------------+-----------------------------+
| actor_id    | smallint(5) unsigned | NO   | PRI | NULL              | auto_increment              |
| first_name  | varchar(45)          | NO   |     | NULL              |                             |
| last_name   | varchar(45)          | NO   | MUL | NULL              |                             |
| last_update | timestamp            | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+-------------+----------------------+------+-----+-------------------+-----------------------------+
4 rows in set (0.00 sec)
  • 很多时候只需要查询列名,即上面例子的 field, 不需要具体信息。
SELECT
    COLUMN_NAME
FROM
    information_schema.COLUMNS
WHERE
    table_schema = 'database_name'
    AND table_name = 'table_name';

mysql> select column_name from information_schema.COLUMNS
    -> where table_schema = 'sakila' and table_name = 'actor';
+-------------+
| COLUMN_NAME |
+-------------+
| actor_id    |
| first_name  |
| last_name   |
| last_update |
+-------------+
4 rows in set (0.00 sec)

查询字段/列名所在的表

依然使用information_schema这个数据库的COLUMNS这个表。

SELECT 
    TABLE_NAME 
FROM
    information_schema.COLUMNS
WHERE
    column_name = 'XXXX';

注意,这样查询范围是节点上的所有database,如果指定数据库 ,像上面一样,在where条件中加上
table_schema的内容。

-- 没有指定数据库
mysql> select table_name, table_schema  from information_schema.columns where column_name = 'id';
+----------------------+--------------------+
| TABLE_NAME           | TABLE_SCHEMA       |
+----------------------+--------------------+
| COLLATIONS           | information_schema |
| INNODB_FOREIGN       | information_schema |
| INNODB_FOREIGN_COLS  | information_schema |
| PROCESSLIST          | information_schema |
| slave_relay_log_info | mysql              |
| slave_worker_info    | mysql              |
| customer_list        | sakila             |
| staff_list           | sakila             |
| employee             | test               |
| test_alter           | test               |
+----------------------+--------------------+
10 rows in set (0.01 sec)

-- 指定数据库
mysql> select table_name from information_schema.columns 
    -> where column_name = 'id' and table_schema = 'sakila' ;
+---------------+
| TABLE_NAME    |
+---------------+
| customer_list |
| staff_list    |
+---------------+
2 rows in set (0.00 sec)

 

以上。

### 如何查询 MySQL 字段名和注释 为了获取特定数据库下某个中的所有字段名称以及它们对应的注释,可以执行如下 SQL 查询语句: ```sql SELECT COLUMN_NAME AS 字段名, COLUMN_TYPE AS 数据类型, IS_NULLABLE AS 是否为空, COLUMN_DEFAULT AS 默认值, COLUMN_COMMENT AS 注释 FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = '指定的数据库名' AND TABLE_NAME = '目标的名字'; ``` 上述命令会返回给定内各列的信息,包括但不限于字段名字、数据类型、可否存储 `NULL` 值、默认值还有最重要的——字段级别的注释[^1]。 对于想要了解整个数据库里所有格及其字段详情的情况,则只需移除针对具体名(`TABLE_NAME`) 的条件限制即可获得更广泛的结果集。这允许一次性查看多个内的字段信息连同其描述性注释[^2]。 当涉及到关联操作来同时展示级与字段级的注释时,可以通过连接两个视图 (`information_schema.TABLES` 和 `information_schema.COLUMNS`) 来实现这一目的。例如下面这SQL展示了如何通过左外联接的方式把的相关信息与其字段结合起来显示[^3]: ```sql SELECT t.table_name AS 名, t.table_comment AS 说明, c.column_name AS 字段名, c.column_type AS 数据类型, c.is_nullable AS 是否为空, c.column_default AS 默认值, c.column_comment AS 字段注释 FROM information_schema.tables t LEFT JOIN information_schema.columns c ON t.table_name = c.table_name WHERE t.table_schema = '指定的数据库名' ORDER BY t.table_name, c.ordinal_position; ``` 此查询不仅提供了关于单个内部结构的知识,还能够帮助理解不同之间的关系模式,从而更好地设计或优化现有的数据库架构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值