为了方便使用为其他供应商的 SQL 实现编写的代码,MySQL 将数据类型映射如下表所示。这些映射使从其他数据库系统导入表定义到 MySQL 更加容易。To facilitate the use of code written for SQL implementations from other vendors, MySQL maps data types as shown in the following table. These mappings make it easier to import table definitions from other database systems into MySQL.
| 其他供应商类型Other Vendor Type | MySQL 类型MySQL Type |
|---|---|
BOOLBOOL |
TINYINTTINYINT |
BOOLEANBOOLEAN |
TINYINTTINYINT |
CHARACTER VARYING( |
VARCHAR( |
FIXEDFIXED |
DECIMALDECIMAL |
FLOAT4FLOAT4 |
FLOATFLOAT |
FLOAT8FLOAT8 |
DOUBLEDOUBLE |
INT1INT1 |
TINYINTTINYINT |
INT2INT2 |
SMALLINTSMALLINT |
INT3INT3 |
MEDIUMINTMEDIUMINT |
INT4INT4 |
INTINT |
INT8 |
BIGINTBIGINT |
LONG VARBINARY |
MEDIUMBLOBMEDIUMBLOB |
LONG VARCHAR |
MEDIUMTEXTMEDIUMTEXT |
LONG |
MEDIUMTEXTMEDIUMTEXT |
MIDDLEINTMIDDLEINT |
MEDIUMINTMEDIUMINT |
NUMERICNUMERIC |
DECIMALDECIMAL |
数据类型映射发生在表创建时,之后原始类型规格将被丢弃。如果使用其他供应商的类型创建表然后发出 DESCRIBE 语句,MySQL 将使用等效的 MySQL 类型报告表结构。例如:Data type mapping occurs at table creation time, after which the
original type specifications are discarded. If you create a table
with types used by other vendors and then issue a
tbl_nameDESCRIBE
statement, MySQL reports the table structure using the equivalent
MySQL types. For example:tbl_name
mysql>CREATE TABLE t (a BOOL, b FLOAT8, c LONG VARCHAR, d NUMERIC);Query OK, 0 rows affected (0.00 sec) mysql>DESCRIBE t;+-------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------------+------+-----+---------+-------+ | a | tinyint(1) | YES | | NULL | | | b | double | YES | | NULL | | | c | mediumtext | YES | | NULL | | | d | decimal(10,0) | YES | | NULL | | +-------+---------------+------+-----+---------+-------+ 4 rows in set (0.01 sec)