在MySQL中,使用CREATE TABLE
语句创建一个新表时,可以为每个列定义数据类型。以下是一些常见的数据类型及其用法:
-
整数类型:
- 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(无符号)。
-
浮点类型:
- FLOAT:单精度浮点数,4字节,范围约为-3.4E+38到3.4E+38,精度为7位有效数字。
- DOUBLE:双精度浮点数,8字节,范围约为-1.8E+308到1.8E+308,精度为16位有效数字。
- DECIMAL:定点数,可以指定精度和小数位数。例如,DECIMAL(10,2)表示最多有10位数字,其中2位小数。
-
字符串类型:
- CHAR:固定长度的字符串,长度由括号内的数字指定。例如,CHAR(10)表示最多存储10个字符的字符串。
- VARCHAR:可变长度的字符串,最大长度由括号内的数字指定。例如,VARCHAR(255)表示最多存储255个字符的字符串。
- TEXT:长文本,最大长度为65,535个字符。
- MEDIUMTEXT:中等长度的文本,最大长度为16,777,215个字符。
- LONGTEXT:非常长的文本,最大长度为4,294,967,295个字符。
-
日期和时间类型:
- DATE:日期,格式为’YYYY-MM-DD’。
- TIME:时间,格式为’HH:MM:SS’。
- DATETIME:日期和时间,格式为’YYYY-MM-DD HH:MM:SS’。
- TIMESTAMP:时间戳,从’1970-01-01 00:00:01’ UTC到’2038-01-19 03:14:07’ UTC。
-
二进制数据类型:
- BINARY:固定长度的二进制字符串。
- VARBINARY:可变长度的二进制字符串。
- BLOB:二进制大对象,可以存储大量的二进制数据。
-
其他类型:
- ENUM:枚举值,必须在创建表时定义一个枚举列表,列中的值必须匹配列表中的一个。
- SET:集合值,必须在创建表时定义一个集合列表,列中的值可以是列表中的一个或多个。
以下是一个创建表的示例,其中包含了上述的一些数据类型:
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
age TINYINT,
salary DECIMAL(10, 2),
join_date DATE,
job_title ENUM('Manager', 'Developer', 'Designer'),
notes TEXT
);
在这个示例中,我们创建了一个名为employees
的表,其中包含了员工的ID、名字、姓氏、年龄、薪水、加入日期、职位和备注等信息。