MySQL数据类型

一、数值类型

以下数据类型为 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');
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • sql 将数据类型分为三大类:数值类型,字符串,日期时间型 一、数值型: 数值大类:整数型和小数型 整数型 整数型...
    陈智涛阅读 4,699评论 0 0
  • 本文基于MySQL5.6版本进行描述从大的方面来讲,MySQL的数据类型分为4种 数值类型 日期和时间 字符串类型...
    黑哥儿666阅读 4,110评论 0 0
  • 日期和时间数据类型 MySQL数据类型 含义date 3字节,日期,格式:2014-09-18time ...
    百度怎么用阅读 1,787评论 0 3
  • 所谓的数据类型:对数据进行统一的分类,从系统的 角度出发为了能够使用统一的方式进行管理,更好的利用有限的空间;SQ...
    coder_hong阅读 3,785评论 0 0
  • MySQL学习笔记(2) mysql支持的数据类型 mysql数值类型 关于每个类型的详细信息可以通过 ? int...
    BigfaceMonster阅读 2,854评论 0 3

友情链接更多精彩内容