美文网首页
MySQL数据类型

MySQL数据类型

作者: AugustWu | 来源:发表于2017-01-27 02:23 被阅读0次

一、数值类型

以下数据类型为 MySQL 5.0 后的版本所具有。

1.整数类型

整数类型 字节
TINYINT 1
SMALLINT 2
MEDIUMINT 3
INT、INTEGER 4
BIGINT 8
  • MySQL 支持在类型名称后指定显示宽度,如 INT(3) 表示当宽度小于3位时在数字前填满。属性 ZEROFILL 表示用 0 填满。

  • 当插入宽度大于指定宽度,对插入数据没有任何影响。

  • 属性 UNSIGNED 表示无符号

  • 属性 AUTO_INCREMENT 表示自增,只能用于整数类型。并且使用该属性的列,必须定义为 NOT NULL,并且是 PRIMARY KEY 或者 UNIQUE。

CREATE TABLE tb_name (ID INT AUTO_INCREMENT NOT NULL PRIMARY KEY);

CREATE TABLE tb_name (ID INT AUTO_INCREMENT NOT NULL, PRIMARY KEY(ID));

CREATE TABLE tb_name (ID INT AUTO_INCREMENT NOT NULL UNIQUE);

CREATE TABLE tb_name (ID INT AUTO_INCREMENT NOT NULL,  UNIQUE(ID));

2.浮点数类型

浮点数类型 字节
FLOAT 4
DOUBLE 8
  • 浮点数后指定 (M,D) 不是标准用法。

  • 浮点数类型后可以指定 (M,D)。M 是精度,整数位+小数位。 D 是标度,小数位。

  • 如果指定精度和标度,会自动四舍五入后的结果插入。

  • 如果不指定精度时,会按照实际的精度显示,由实际的硬件和操作系统决定。

3.定点数类型

定点数类型 字节
DEC(M,D)、DECIMAL(M,D) M+2
  • 如果指定精度和标度,超出了精度和标度值系统会报错。

  • 如果没有指定精度和标度,会按照默认 DECIMAL(10,0) 来操作。

4.位类型

位类型 字节
BIT(M) 1~8
  • 位类型直接用 SELECT 命令无法直接显示,可以使用 bin() 或者 hex() 函数进行读取。

  • 超出位类型的位数,将报错无法插入。

二、日期时间类型

日期和时间类型 字节
DATE 4
DATETIME 8
TIMESTAMP 4
TIME 3
YEAR 1

三、字符串类型

字符串类型 字节
CHAR(M) M
VARCHAR(M) M+1
TINYBLOB 长度+1
BLOB 长度+2
MEDIUMBLOL 长度+3
LONGBLOB 长度+4
TINYTEXT 长度+1
TEXT 长度+2
MEDIUMTEXT 长度+3
LONGTEXT 长度+4
VARBINARY(M) 长度+1
BINARY(M) M

1.CHAR 和 VARCHAR

CHAR 和 VARCHAR 都用于存储比较短的字符串。

不同点:

  • CHAR 长度固定, VARCHAR 为可变长度字符串。

  • CHAR 删除插入字符串尾部的空格, VARCHAR 保留这些空格。

2.BINARY 和 VARBINARY

BINARY 和 VARBINARY 用于存储二进制字符串。

  • 当插入字符串没有达到定义长度 M 时,会在值的最后填充“0x00”以达到指定字段的长度。

3.ENUM

ENUM 成为美剧类型。

  • 1~255个成员,占1个字节
  • 256~65535个成员,占2个字节

创建 gender 字段为枚举类型,成员为 M 和 F:

CREATE TABLE tb_name (gender ENUM('M','F'));
  • 枚举类型是忽略大小写的

  • 如果插入的值不在枚举范围内,不会报错,自动插入枚举的第一个值。

4.SET

SET 可以包含 0~64 个成员,成员个数不同,存储空间不同。

  • 1~8个成员,占1个字节
  • 9~16个成员,占2个字节
  • 17~24个成员,占3个字节
  • 25~32个成员,占4个字节
  • 33~64个成员,占8个字节

创建 col 字段为集合类型,成员为 a b c d

CREATE TABLE tb_name (col SET('a','b','c','d'));

插入元素

INSERT INTO tb_name VALUES('a,b'),('a,c');

相关文章

网友评论

      本文标题:MySQL数据类型

      本文链接:https://www.haomeiwen.com/subject/nysfittx.html