在 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