在 MariaDB 中检查列数据类型的 4 种方法

发布于

MariaDB 提供了多种返回列数据类型的方法。以下是在MariaDB中获取给定列的数据类型的四种方法。

声明SHOW COLUMNS

该语句显示有关给定表或视图中的列的信息。我们可以传递表或视图的名称以返回其列的信息:SHOW COLUMNS

SHOW COLUMNS FROM Products;

结果:

+——————–+—————+——+—–+———+——-+ | Field | Type | Null | Key | Default | Extra | +——————–+—————+——+—–+———+——-+ | ProductId | int(11) | NO | PRI | NULL | | | VendorId | int(11) | NO | MUL | NULL | | | ProductName | varchar(255) | NO | | NULL | | | ProductPrice | decimal(8,2) | NO | | NULL | | | ProductDescription | varchar(1000) | YES | | NULL | | +——————–+—————+——+—–+———+——-+

如果需要,我们可以将其缩小到一列:

SHOW COLUMNS FROM Products
WHERE Field = 'ProductName';

结果:

+————-+————–+——+—–+———+——-+ | Field | Type | Null | Key | Default | Extra | +————-+————–+——+—–+———+——-+ | ProductName | varchar(255) | NO | | NULL | | +————-+————–+——+—–+———+——-+

该/声明DESCRIBE``DESC

语句是语法的快捷方式:DESCRIBE``SHOW COLUMNS FROM

DESCRIBE Products;

结果:

+——————–+—————+——+—–+———+——-+ | Field | Type | Null | Key | Default | Extra | +——————–+—————+——+—–+———+——-+ | ProductId | int(11) | NO | PRI | NULL | | | VendorId | int(11) | NO | MUL | NULL | | | ProductName | varchar(255) | NO | | NULL | | | ProductPrice | decimal(8,2) | NO | | NULL | | | ProductDescription | varchar(1000) | YES | | NULL | | +——————–+—————+——+—–+———+——-+

只需附加列名称即可将其缩小到一列:

DESCRIBE Products ProductName;

结果:

+————-+————–+——+—–+———+——-+ | Field | Type | Null | Key | Default | Extra | +————-+————–+——+—–+———+——-+ | ProductName | varchar(255) | NO | | NULL | | +————-+————–+——+—–+———+——-+

您还可以使用通配符:

DESCRIBE Products 'Product%';

结果:

+——————–+—————+——+—–+———+——-+ | Field | Type | Null | Key | Default | Extra | +——————–+—————+——+—–+———+——-+ | ProductId | int(11) | NO | PRI | NULL | | | ProductName | varchar(255) | NO | | NULL | | | ProductPrice | decimal(8,2) | NO | | NULL | | | ProductDescription | varchar(1000) | YES | | NULL | | +——————–+—————+——+—–+———+——-+

You can also shorten it to :DESC

DESC Products ProductName;

Result:

+————-+————–+——+—–+———+——-+ | Field | Type | Null | Key | Default | Extra | +————-+————–+——+—–+———+——-+ | ProductName | varchar(255) | NO | | NULL | | +————-+————–+——+—–+———+——-+

The Viewinformation_schema.columns

The view contains information about columns:information_schema.columns

SELECT 
    COLUMN_NAME, 
    DATA_TYPE, 
    CHARACTER_MAXIMUM_LENGTH AS MAX_LENGTH, 
    CHARACTER_OCTET_LENGTH AS OCTET_LENGTH 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'Products' 
AND COLUMN_NAME = 'ProductName';

结果:

+————-+———–+————+————–+ | COLUMN_NAME | DATA_TYPE | MAX_LENGTH | OCTET_LENGTH | +————-+———–+————+————–+ | ProductName | varchar | 255 | 1020 | +————-+———–+————+————–+

在本例中,我使用函数返回当前数据库的名称。您也可以使用特定数据库的名称。DATABASE()

该实用程序mariadb-show

该实用程序显示MariaDB数据库的结构(数据库,表,列和索引)。mariadb-show

此实用程序自行运行。换句话说,不要从MariaDB中运行它。相反,打开一个新的终端/命令行窗口并从那里运行它。

例:

mariadb-show KrankyKranes Products ProductName

结果:

+————-+————–+——————–+——+—–+———+——-+———————————+———+ | Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment | +————-+————–+——————–+——+—–+———+——-+———————————+———+ | ProductName | varchar(255) | utf8mb4_general_ci | NO | | | | select,insert,update,references | | +————-+————–+——————–+——+—–+———+——-+———————————+———+

在这个例子中,是数据库的名称,是表,是我感兴趣的列。KrankyKranes``Products``ProductName

此实用程序也可以使用位置访问。该实用程序接受相当多的选项。有关更多信息,请参阅MariaDB 的文档。mysqlshow``mariadb-show