整型
| 字节 | 位 | 无符号 | 有符号 |
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 如果给它自动一个长度如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
Create table tablename
(
Gender enum(‘男’,‘女’)
);
给字段定义为枚举型 将可以插入的内容列举出来,在插入内容时只能填写其中的一个。
和枚举型大致相同,但是可以填写列举出来的多个内容。