MySQL 显示列
表中的列是一系列可以存储文本,数字和图像的单元格。每一列为表中的每一行存储一个值。当我们使用MySQL服务器时,通常会显示特定表中的列信息。在本节中,我们将讨论如何在现有表中显示或列出列。
MySQL提供了两种显示列信息的方法:
MySQL SHOW COLUMNS语句
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 也是一个可选关键字,用于显示列信息,包括排序规则,注释和我们拥有的特权每个列。
表名是要用来显示列信息的表的名称。
数据库名 >是包含表的数据库的名称,我们将在该表中显示列信息。
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;
SHOW COLUMNS语句示例
让我们通过各种示例来了解该语句如何在MySQL中工作。
假设我们有一个名为
student_info的表在包含如下数据的示例数据库中:
接下来,如果要获取该表的列信息,可以使用以下语句:
mysql> SHOW COLUMNS FROM student_info;
我们将看到以下输出:
如果我们想过滤表的列,我们需要在语句中使用LIKE或WHERE子句。请参阅以下查询:
mysql> SHOW COLUMNS FROM student_info LIKE 's%';
此查询显示仅以字母S开头的列信息。看到下面的输出:
如果我们想显示隐藏的列信息,我们需要将FULL关键字添加到SHOW COLUMNS语句中,如下所示:
mysql> SHOW FULL COLUMNS FROM student_info;
它返回以下输出,显示示例数据库中Student_info表的所有列信息。
SHOW COLUMNS语句为给定表中的每一列提供以下信息:
字段: 它指示给定表中列的名称。
类型: 指示每个列的数据类型。
归类: 它用于对特定字符集的顺序进行排序。在此,它指示非二进制值的字符串列,而其他列则指示NULL。仅当使用FULL关键字时,我们才会看到此列。
空: 它指示列的可空性。如果列可以存储NULL值,则返回YES。并且,如果列不能存储NULL值,则它不包含任何值。
键: 它指示列的索引为PRI,UNI和MUL。让我们详细了解该领域。
如果未指定任何键,则表示该列未编制索引。否则,将索引作为多列的第二列。
如果将该列指定为PRI,则意味着该列是PRIMARY KEY或多列PRIMARY KEY中的字段之一。
如果将该列指定为UNI,则表示该列包含UNIQUE索引。
如果将该列指定为MUL,则意味着该列是非唯一索引的第一列,我们可以在其中多次使用给定值。
如果该列由多个键值指定,则此字段显示优先级最高的键(键优先级按PRI,UNI和MUL的顺序排列)。
默认: 它指示列的默认值。如果该列不包含DEFAULT子句或具有默认的NULL默认值,则它包含NULL值。
额外: 它指示与给定列相关的其他信息。在以下情况下,该字段为非空:
如果使用AUTO_INCREMENT属性指定该列,则其值将用auto_increment填充。
如果使用TIMESTAMP或DATETIME指定具有ON UPDATE CURRENT_TIMESTAMP属性的列,则其值将用更新CURRENT_TIMESTAMP填充。
对于生成的列,其值填充为VIRTUAL GENERATED或VIRTUAL STORED。
如果该列包含表达式默认值,则其值将填充DEFAULT_GENERATED。
权限: 它表示我们对该列具有的权限。仅当使用FULL关键字时,我们才会看到此列。
评论: 它表示我们已包含在列定义中的评论。只有在使用FULL关键字时,我们才会看到此列。
MySQL DESCRIBE语句
DESCRIBE语句还提供类似于SHOW COLUMNS命令的信息。
语法
以下是在给定表中显示列信息的语法:
{DESCRIBE | DESC} table_name;
在此语法中,
DESCRIBE 和
DESC 子句返回相同的结果。
示例
如果要显示
students_info表的列信息,可以执行以下语句。
mysql> DESCRIBE students_info;
成功执行后,将给出如下图所示的输出:
如何在MySQL Workbench中显示列信息?
我们首先启动该工具,并使用用户名和密码登录,以在MySQL Workbench中显示给定表的列信息。现在,我们需要执行以下步骤来显示列信息:
1、转到
导航选项卡,然后单击
架构菜单,所有先前创建的数据库均可用。选择所需的数据库(例如,
mstudentdb )。它将弹出以下选项。
2、单击
表,该表显示存储在
mysqltestdb 数据库中的所有表。选择要显示其列信息的表。然后,在该表上单击鼠标小时,它将显示
三个图标。参见下图:
4、点击红色矩形框中显示的
图标(i)。我们应该得到如下屏幕:
4、最后,点击"
列"菜单。我们可以看到列信息,如下面的输出所示。