在MySQL中,定义数据类型是创建表(table)时非常重要的一部分。MySQL支持多种数据类型,包括数字类型、字符串类型、日期和时间类型以及其他类型。以下是MySQL中常见的数据类型及其定义:
数值类型:
TINYINT:1个字节有符号整数,范围从-128到127(有符号),或0到255(无符号)。SMALLINT:2个字节有符号整数,范围从-32,768到32,767(有符号),或0到65,535(无符号)。MEDIUMINT:3个字节有符号整数,范围从-8,388,608到8,388,607(有符号),或0到16,777,215(无符号)。INT:4个字节有符号整数,范围从-2,147,483,648到2,147,483,647(有符号),或0到4,294,967,295(无符号)。BIGINT:8个字节有符号整数,范围从-9,223,372,036,854,775,808到9,223,372,036,854,775,807(有符号),或0到18,446,744,073,709,551,615(无符号)。DECIMAL / NUMERIC:任意精度的有符号十进制数。可以指定小数点后的位数,以及总的数字位数。FLOAT:单精度浮点数。DOUBLE / REAL:双精度浮点数。BIT:用于存储二进制位字段,每个BIT字段可以存储0或1。字符串类型:
CHAR:固定长度的字符串。定义时指定长度,且长度固定的情况下,字符串会被用空格填充至指定长度。VARCHAR:可变长度的字符串。定义时指定最大长度,实际存储时根据内容长度动态分配空间。TEXT:用于存储较长的文本数据。MEDIUMTEXT:用于存储中等长度的文本数据。LONGTEXT:用于存储非常长的文本数据。日期和时间类型:
DATE:日期值,格式为YYYY-MM-DD。TIME:时间值,格式为HH:MM:SS。DATETIME:日期和时间值,格式为YYYY-MM-DD HH:MM:SS。TIMESTAMP:时间戳值,表示从’1970-01-01 00:00:01’ UTC到现在的秒数,使用时通常与当前时间相关联。YEAR:仅年份值,范围从1901到2155。其他类型:
ENUM:枚举类型,允许在预定义的字符串集中选择一个值。SET:集合类型,允许在预定义的字符串集中选择多个值。BINARY / VARBINARY:二进制数据类型,与CHAR和VARCHAR类似,但存储的是二进制字符而不是文本字符。BLOB:二进制大对象,用于存储大量的二进制数据。VARBINARY:可变长度的二进制数据类型。JSON:用于存储JSON格式的数据。在定义表结构时,可以根据实际需求选择合适的数据类型来存储相应的数据。例如:
CREATE TABLE example_table (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT,
birthdate DATE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
在这个例子中,我们定义了一个包含ID、姓名、年龄、出生日期和创建时间的表,并为每个字段指定了相应的数据类型。