mysql数据类型 Wednesday, April 8, 2015 11:10 AM mysql 数据类型 1、整型 MySQL数据类型 含义(有符号) tinyint(m) 1个字节 范围(-128~127) smallint(m) 2个字节 范围(-32768~32767) mediumint(m) 3个字节 范围(-8388608~8388607) int(m) 4个字节 范围(-2147483648~2147483647) bigint(m) 8个字节 范围(+-9.22*10的18次方) 取值范围如果加了 unsigned ,则最大值翻倍,如 tinyint unsigned 的取值范围为 (0~256) 。
int(m) 里的 m 是表示 SELECT 查询结果集中的显示宽度,并不影响实际的取值范围,没有影响到显示的宽度,不知道这个 m 有什么用。 2、浮点型(float和double) MySQL数据类型 含义 float(m,d) 单精度浮点型 8位精度(4字节) m总个数,d小数位 double(m,d) 双精度浮点型 16位精度(8字节) m总个数,d小数位 设一个字段定义为float(5,3),如果插入一个数123.45678,实际数据库里存的是123.457,但总个数还以实际为准,即6位。 3、定点数 浮点型在数据库中存放的是近似值,而定点类型在数据库中存放的是精确值。
decimal(m,d)
参数 m < 65
是总个数, d < 30 且
d < m
是小数位。 4、字符串(char,varchar,_text) MySQL数据类型 含义 char(n) 固定长度,最多255个字符 varchar(n) 固定长度,最多65535个字符 tinytext 可变长度,最多255个字符 text 可变长度,最多65535个字符 mediumtext 可变长度,最多2的24次方-1个字符 longtext 可变长度,最多2的32次方-1个字符 char 和 varchar :
1.char(n)
若存入字符数小于 n ,则以空格补于其后,查询之时再将空格去掉。所以 char 类型存储的字符串末尾不能有空格, varchar 不限于此。
2.char(n)
固定长度, char(4) 不管是存入几个字符,都将占用 4 个字节, varchar 是存入的实际字符数 +1 个字节( n < =255 )或 2 个字节 (n>255) ,所以 varchar(4), 存入 3 个字符将占用 4 个字节。
3.char 类型的字符串检索速度要比 varchar 类型的快。
varchar 和 text :
1.varchar 可指定 n , text 不能指定,内部存储 varchar 是存入的实际字符数 +1 个字节( n < =255 )或 2 个字节 (n>255) , text 是实际字符数 +2 个字节。
2.text 类型不能有默认值。
3.varchar 可直接创建索引, text 创建索引要指定前多少个字符。 varchar 查询速度快于 text, 在都创建索引的情况下, text 的索引似乎不起作用。 5.二进制数据(_Blob) 1._BLOB 和 _text 存储方式不同, _TEXT 以文本方式存储,英文存储区分大小写,而 _Blob 是以二进制方式存储,不分大小写。
2._BLOB 存储的数据只能整体读出。
3._TEXT 可以指定字符集, _BLO 不用指定字符集。 6.日期时间类型 MySQL数据类型 含义 date 日期 ‘2008-12-2’ time 时间 ‘12:25:36’ datetime 日期时间 ‘2008-12-2 22:06:44’ timestamp 自动存储记录修改时间 若定义一个字段为timestamp,这个字段里的时间数据会随其他字段修改的时候自动刷新,所以这个数据类型的字段可以存放这条记录最后被修改的时间。 数据类型的属性 MySQL关键字 含义 NULL 数据列可包含NULL值 NOT NULL 数据列不允许包含NULL值 DEFAULT 默认值 PRIMARY KEY 主键 AUTO_INCREMENT 自动递增,适用于整数类型 UNSIGNED 无符号 CHARACTER SET name 指定一个字符集
已使用 Microsoft OneNote 2016 创建。