温馨提示×

MySQL数据类型怎样定义

小樊
81
2024-11-01 06:10:47
栏目: 云计算

在MySQL中,定义数据类型是创建表(table)时非常重要的一部分。MySQL支持多种数据类型,包括数字类型、字符串类型、日期和时间类型以及其他类型。以下是MySQL中常见的数据类型及其定义:

  1. 数值类型

    • 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。
  2. 字符串类型

    • CHAR:固定长度的字符串。定义时指定长度,且长度固定的情况下,字符串会被用空格填充至指定长度。
    • VARCHAR:可变长度的字符串。定义时指定最大长度,实际存储时根据内容长度动态分配空间。
    • TEXT:用于存储较长的文本数据。
    • MEDIUMTEXT:用于存储中等长度的文本数据。
    • LONGTEXT:用于存储非常长的文本数据。
  3. 日期和时间类型

    • 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。
  4. 其他类型

    • ENUM:枚举类型,允许在预定义的字符串集中选择一个值。
    • SET:集合类型,允许在预定义的字符串集中选择多个值。
    • BINARY / VARBINARY:二进制数据类型,与CHARVARCHAR类似,但存储的是二进制字符而不是文本字符。
    • 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、姓名、年龄、出生日期和创建时间的表,并为每个字段指定了相应的数据类型。

0