Mysql 数据类型:
整型
|
字节 |
位 |
无符号 |
有符号 |
Tinyint
|
1 |
8 |
0->2^8-1 |
-2^7->+2^7-1
|
Smallint
|
2 |
16 |
0->2^16-1 |
-2^15>+2^15-1 |
Mediumint
|
3 |
24 |
0->2^24-1 |
-2^23->+2^23-1 |
Int
|
4 |
32 |
0->2^32-1 |
-2^31->+2^31-1 |
Bigint
|
5 |
40 |
0->2^39-1 |
-2^39->+2^39-1 |
如何申明为无符号:
Tinyint(m) unsigned zefofill
M 宽度(在0填充是才有意义)
Unsigned 无符号类型(非负)
Zefofill 0填充 自动为无符号
默认为有符号
无符号申明格式:列明 tinyint unsigned 。
zefofill 的功能 如下申明: tinyint(2)zefofill 在这样的一个格式内输入一个数字 前面会自动补齐一个0 是宽度为2。
默认值如何设置:
Default 默认值。
小数型:浮点型,定点型:
Float(m,d)
M 为小数的总长度,不包括(.) d为 (.)后面的长度
定点型:Decimal(m,d) 比float 更精确
字符串:
类型
|
说明 |
申明方式 |
范围 |
Char |
定长字符串 |
char(m) |
0<=m<=255 |
Varchar |
变长字符串 |
varchar(m) |
0<=m<=16635 约2w到6w个字符 |
text |
文本串 |
text |
约2w到6w个字符受字符集的影响 |
M为字符个数。
Char 和 varchar 的区别 :
Char 如果给它自动一个长度如5 如果输入3个字符 如‘新年好’ 那么在mysql 里还是占5个字符 后面会自动补齐2个空格 。
Varchar 如果给它自动一个长度如5 如果输入3个字符 如‘新年好’ 那么在mysql 里他只会站3个字符不会用空格补齐。
如果同时在两种里面输入‘过年好 ’后面有两个空格 在读取char里的内容是 自会读取‘过年好’ 空格会省略 因为mysql会把后面的空格看系统为了补齐加的。而varchar 读取时就是‘过年好 ’后面会有空格。
两种类型的使用率:
Char 的使用率是 <=100%
Varchar 的使用利率是 <100%
为什么varchar 的使用率达不到100%呢 应为varchar 后面会有 1 到2个字节 来记录varchar中内容的长度。
日期时间类型:
年类型 year
日期类型 date
时间类型 time
时间日期类型 datetime
Year 类型 :1个字节 表示1901-2155, 如果错误时会显示 0000
如果输入两位年份 00-69 之间 表示为2000-2069
如果输入两位年份 70-99 之间 表示为1970-1999
Date 类型:典型格式2008-08-08
存储范围 1000-01-01 9999-12-31
time类型:典型格式 hh:mm:ss
存储范围 -838:59:59 838:59:59
Datetime类型:典型格式 2008-08-08 20:20:20
存储范围 1000-01-01 00:00:00 到 9999-12-31 23:59:59
Enum类型 枚举型:
Create table tablename
(
Gender enum(‘男’,‘女’)
);
给字段定义为枚举型 将可以插入的内容列举出来,在插入内容时只能填写其中的一个。
Set类型 集合型:
和枚举型大致相同,但是可以填写列举出来的多个内容。