MySQL 显示列

Table中的列是一系列可以存储文本、数字和图像的单元格。每列为表中的每一行存储一个值。当我们使用 MySQL 服务器时,通常会显示来自特定表的列信息。在本节中,我们将讨论如何在现有表中显示或列出列。

MySQL 提供了两种显示列信息的方式:

  1. MySQL SHOW COLUMNS 语句
  2. MySQL DESCRIBE 语句

一、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:是数据库的名称,其中包含我们将显示列信息的表。

LIKEWHERE子句:用于仅显示给定表中匹配的列信息。

我们还可以使用 table_name FROM db_name 语法的替代方案作为 db_name.tbl_name。因此,以下语句是等价的:

SHOW COLUMNS FROM mytable_name FROM mydb_name;  

或者

SHOW COLUMNS FROM mydb_name.mytable_name; 

二、SHOW COLUMNS 语句示例

让我们了解一下这个语句在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:表示每列的数据类型。

Collat​​ion:用于对特定字符集的顺序进行排序。这里它表示非二进制值的字符串列和其他列的 NULL。只有当我们使用 FULL 关键字时,我们才会看到此列。

Null:表示列的可空性。如果列可以存储 NULL 值,则返回 YES。如果一列不能存储 NULL 值,则它包含 NO 值。

Key:表示列的索引为 PRI、UNI 和 MUL。让我们详细了解这个领域。

  • 如果我们没有指定任何键,则表示该列没有被索引。否则,索引为多列中的辅助列。
  • 如果该列指定为 PRI,则表示该列是 PRIMARY KEY 或多列 PRIMARY KEY 中的字段之一。
  • 如果列指定为 UNI,则表示该列包含 UNIQUE 索引。
  • 如果该列被指定为 MUL,则意味着该列是非唯一索引的第一列,我们可以在其中多次使用给定值。
  • 如果该列由多个key-value指定,则该字段显示具有最高优先级的key(key优先级的顺序为PRI、UNI、MUL)。

Default:表示该列的默认值。如果该列不包含 DEFAULT 子句或具有显式 NULL 默认值,则它包含一个 NULL 值。

Extra:表示与给定列相关的附加信息。在以下情况下,该字段不为空:

  • 如果使用 AUTO_INCREMENT 属性指定列,则其值用 auto_increment 填充。
  • 如果使用具有 ON UPDATE CURRENT_TIMESTAMP 属性的 TIMESTAMP 或 DATETIME 指定列,则在更新 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 中显示列信息?

我们首先启动该工具并使用用户名和密码登录以在 MySQL Workbench 中显示给定表的列信息。现在,我们需要执行以下步骤来显示列信息:

1. 转到导航选项卡并单击Schema菜单,其中所有以前创建的数据库都可用。选择所需的数据库(例如mstudentdb)。它将弹出以下选项。

2. 单击显示存储在mysqltestdb数据库中的所有表的表。选择要显示其列信息的表。然后,鼠标停留在表名上面,它会显示三个图标。见下图:

3. 单击红色矩形框中显示的图标 (i) 。我们应该得到如下界面:

4. 最后,点击“Column”菜单。我们可以看到如下输出的列信息。

热门文章

优秀文章