阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

关于 MySQL数据类型

154次阅读
没有评论

共计 1960 个字符,预计需要花费 5 分钟才能阅读完成。

关于 MySQL 数据类型的一些笔记。

一、整型

整型的每一种都有无符号(unsigned)和有符号(signed)两种类型。

MySQL 数据类型 含义
tinyint(m) 1 个字节表示:signed(-128~127);unsigned(0~255)
smallint(m) 2 个字节表示:signed(-32768~32767);unsigned(0~65535)
mediumint(m) 3 个字节表示:signed(-8388608~8388607);unsigned(0~16777215)
int(m) 4 个字节表示:signed(-2147483648~2147483647);unsigned(0~4294967295)
bigint(m) 8 个字节表示:signed(-2^63 (-9223372036854775808) ~ 2^63-1 (9223372036854775807));unsigned(0~18446744073709551615)

二、浮点型

MySQL 数据类型 含义
float(m,d) 单精度浮点型,8 位精度(4 字节),m 是十进制数字的总个数,d 是小数点后面的数字个数
double(m,d) 双精度浮点型,16 位精度(8 字节)

三、定点数

decimal(m,d) 定点类型:浮点型在数据库中存放的是近似值,而定点类型在数据库中存放的是精确值。参数 m 是定点类型数字的最大个数(精度),范围 0~65,d 为小数点右侧数字的个数,范围为 0~30. 但不能超过 m。

对定点数计算能精确 65 位数字。

四、字符串

MySQL 数据类型 含义
char(n) 固定长度的字符串,最多 255 个字符
varchar(n) 固定长度的字符串,最多 65535 个字符
tinytext 可变长度字符串,最多 255 个字符
text 可变长度字符串,最多 65535 个字符
mediumtext 可变长度字符串,最多 2 的 24 次方 - 1 个字符
longtext 可变长度字符串,最多 2 的 32 次方 - 1 个字符

char 和 varchar:

  • 都可以通过指定 n 来限制存储的最大字符数长度,char(20) 和 varchar(20) 将最多只能存储 20 个字符,超过的字符将会被截掉。n 必须小于该类型允许的最大字符数
  • char 类型指定了 n 之后,如果存入的字符数小于 n,后面将会以空格补齐,查询的时候再将末尾的空格去掉,所以 char 类型存储的字符串末尾不能有空格,varchar 不受此限制
  • 内部存储的机制不同。char 是固定长度,char(4) 不管是存 1 个字符、2 个字符或者 4 个字符(英文的),都将占用 4 个字节。varchar 是存入的实际字符数 + 1 个字节(n<=255)或 2 个字节(n>255),所以,varchar(4) 存入一个字符将占用 2 个字节,2 个字符占用 3 个字节,4 个字符占用 5 个字节
  • char 类型的字符串检索速度要比 varchar 类型快

varchar 和 text:

  • 都是可变长度的,最多能存储 65535 个字符
  • varchar 可指定 n,text 不能指定,内部存储 varchar 是存入的实际字符数 + 1 个字节(n<=255)或 2 个字节(n>255),text 是实际字符数 + 2 个字节
  • text 类型不能有默认值
  • varchar 可直接创建索引,text 创建索引要指定前多少个字符,查询速度 varchar 要快于 text

五、二进制数据

xxxblob 和 xxxtext 是对应的,不过存储方式不同。xxxtext 是以文本方式存储的,如果存储英文,应区分大小写;而 xxxblob 是以二进制方式存储的,不区分大小写。

xxxblob 存储的数据只能整体读出。

xxxtext 可以指定字符集,xxxblob 不能指定字符集

六、日期时间类型

MySQL 数据类型 含义
date 日期,如 ’2016-12-12′
time 时间,如 ’22:22:22′
datetime 日期 + 时间,如 ’2016-12-12 22:22:22′
timestamp 不固定

timestamp 比较特殊,如果定义一个字段的类型为 timestamp,这个字段的时间会在其他字段修改的时候自动刷新。所以这个数据类型的字段可以存放这条记录最后被修改的时间,而不是真正的存放时间。

七、数据类型的属性

在定义表时,可以指定每个字段的一些属性。

MySQL 关键字

含义
NULL 数据列可包含 NULL 值
NOT NULL 数据列不允许包含 NULL 值
DEFAULT xxx 默认值,如果插入记录的时候没有指定值,将取这个默认值
PRIMARY KEY 主键
AUTO_INCREMENT 递增,如果插入记录的时候没有指定值,则在上一条记录的值上加 1,仅适用于整数类型
UNSIGNED 无符号
CHARACTER SET name 指定一个字符集

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-05/143936.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计1960字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中