MySQL 显示列
数据库表中的列是一系列可以存储文本、数字和图像的单元格。每个列为表中的每一行存储一个值。在使用MySQL服务器时,常常需要显示特定表中的列信息。在本节中,我们将讨论如何显示或列出现有表中的列。
MySQL提供了两种显示列信息的方式:
让我们详细讨论这两种方式。
MySQL SHOW COLUMNS 语句
MySQL中的SHOW COLUMNS语句是显示给定表中的列信息的一种更灵活的方式。它还可以支持视图。使用该语句,我们将只获取具有某些权限的列信息。
语法
以下是显示指定表中列信息的语法:
SHOW [EXTENDED] [FULL] {COLUMNS | FIELDS}
{FROM | IN} table_name
[{FROM | IN} db_name]
[LIKE 'pattern' | WHERE expr]
让我们详细讨论语法参数。
EXTENDED 是一个可选的关键字,用于显示信息,包括隐藏的列。MySQL在内部使用不可访问的隐藏列。
FULL 也是一个可选的关键字,用于显示列的信息,包括排序规则、注释和我们对每列的权限。
table_name 是我们要显示列信息的表的名称。
db_name 是包含我们将显示列信息的表的数据库的名称。
LIKE 或 WHERE 子句用于仅显示给定表中匹配的列信息。
我们还可以使用table_name FROM db_name语法的替代方法,即db_name.tbl_name。因此,下面的语句是等效的:
SHOW COLUMNS FROM mytable_name FROM mydb_name;
OR,
SHOW COLUMNS FROM mydb_name.mytable_name;
显示列语句示例
让我们通过各种示例来了解这个语句在 MySQL 中的工作原理。
假设我们有一个名为 student_info 的表,在一个示例数据库中包含如下数据:
接下来,如果我们想要获取这个表格的列信息,我们可以使用以下语句:
mysql> SHOW COLUMNS FROM student_info;
我们将会看到以下输出:
如果我们想要过滤表格的列,我们需要在语句中使用LIKE或的WHERE子句。请参见下面的查询:
mysql> SHOW COLUMNS FROM student_info LIKE 's%';
此查询显示以字母S开头的列信息。请参见下方输出:
如果我们希望显示隐藏的列信息,我们需要在SHOW COLUMNS语句中添加FULL关键字,如下所示:
mysql> SHOW FULL COLUMNS FROM student_info;
它返回以下输出,显示示例数据库中student_info表的所有列信息。
SHOW COLUMNS语句为给定表中的每个列提供以下信息:
Field : 它指示给定表中列的名称。
Type : 它指示每个列的数据类型。
Collation : 用于对特定字符集的顺序进行排序。它指示非二进制值的字符串列,对其他列则指示NULL。只有当使用FULL关键字时,我们才会看到此列。
Null : 它指示列的可空性。如果一列可以存储NULL值,它返回YES。如果列不能存储NULL值,则包含NO值。
Key : 它指示列的索引情况,可以是PRI、UNI和MUL。让我们详细了解这个字段。
- 如果我们没有指定任何键,表示该列没有索引。否则,作为多列的次要列索引。
- 如果列被指定为PRI,则表示该列是主键或多列主键中的一个字段。
- 如果列被指定为UNI,则表示该列包含唯一索引。
- 如果列被指定为MUL,则表示该列是非唯一索引的第一列,其中我们可以多次使用给定值。
- 如果由多个键值指定该列,则该字段显示具有最高优先级的键(键的优先级按照PRI、UNI和MUL的顺序)。
Default : 它指示列的默认值。如果列不包含DEFAULT子句或具有显式NULL默认值,则包含NULL值。
Extra : 它指示与给定列相关的附加信息。在以下情况下,此字段不为空:
- 如果列被指定为AUTO_INCREMENT属性,则其值填充为auto_increment。
- 如果列被指定为具有ON UPDATE CURRENT_TIMESTAMP属性的TIMESTAMP或DATETIME,则其值填充为on update CURRENT_TIMESTAMP。
- 对于生成的列,其值填充为VIRTUAL GENERATED或VIRTUAL STORED。
- 如果列包含表达式默认值,则其值填充为DEFAULT_GENERATED。
Privileges : 它指示我们对该列拥有的权限。只有当使用FULL关键字时,我们才会看到此列。
Comment : 它指示我们在列定义中包含的注释。只有当使用FULL关键字时,我们才会看到此列。
MySQL DESCRIBE语句
MySQL的DESCRIBE语句也提供了类似SHOW COLUMNS命令的信息。
语法
显示给定表中列信息的语法如下:
{DESCRIBE | DESC} table_name;
在这个语法中, DESCRIBE 和 DESC 子句返回相同的结果。
示例
如果我们想要展示 students_info 表的列信息,可以执行以下语句。
mysql> DESCRIBE students_info;
在成功执行后,它将输出如下图像:
如何在MySQL Workbench中显示列信息?
首先启动工具,并使用用户名和密码登录以显示给定表的列信息。现在,我们需要按照以下步骤来显示列信息:
1. 转到 导航选项卡 并单击 模式菜单 ,其中包含所有先前创建的数据库。选择您想要的数据库(例如, mstudentdb )。它将弹出以下选项。
2. 点击 Tables 以显示存储在 mysqltestdb 数据库中的所有表。选择一个要显示列信息的表。然后,将鼠标悬停在该表上,会显示 三个图标 。参见下面的图片:
3. 点击红色矩形框中显示的 图标 (i) 。我们应该看到以下屏幕:
4. 最后,点击“ Columns ”菜单。我们可以看到以下类似的列信息输出。