赞
踩
数据库中的数据保存在数据表中,在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证,比如:数据类型和约束。
数据类型和约束保证了表中数据的准确性和完整性。
数据类型是指在创建表的时候为表中字段指定数据类型,只有数据符合类型要求才能存储起来,使用数据类型的原则是:够用就行,尽量使用取值范围小的,而不用大的,这样可以更多的节省存储空间。
常用数据类型如下:
数据类型说明:
约束是指数据在数据类型限定的基础上额外增加的要求.
常见的约束如下:
【id一般是主键,主键是标识数据记录, 通过id可以区分不同记录数据 , id是主键,是唯一的, 不能重复, 外键就是使用某个表中的主键数据,可以根据外键进行连表查询】
类型 | 字节大小 | 有符号范围(Signed) | 无符号范围(Unsigned) |
---|---|---|---|
TINYINT(m) | 1 | -128 ~ 127 | 0 ~ 255 |
SMALLINT(m) | 2 | -32768 ~ 32767 | 0 ~ 65535 |
MEDIUMINT(m) | 3 | -8388608 ~ 8388607 | 0 ~ 16777215 |
INT/INTEGER(m) | 4 | -2147483648 ~2147483647 | 0 ~ 4294967295 |
BIGINT(m) | 8 | -9223372036854775808 ~ 9223372036854775807 | 0 ~ 18446744073709551615 |
数值类型中的长度 m 是指显示长度,并不表示存储长度,只有字段指定 zerofill 时有用。
例如: int(3) ,如果实际值是 2 ,如果列指定了 zerofill ,查询结果就是 002 ,左边用 0 来 填充。
MySQL
数据类型
|
含义
|
float(m,d)
|
单精度浮点型
8
位精度
(4
字节
) m
总个数,
d
小数位
|
double(m,d)
|
双精度浮点型
16
位精度
(8
字节
) m
总个数,
d
小数位
|
类型 | 说明 | 使用场景 |
---|---|---|
CHAR(n) | 固定长度,小型数据,最多255个字符 | 身份证号、手机号、电话、密码 |
tinytext
|
可变长度,最多
255
个字符
| |
VARCHAR(n) | 可变长度,小型数据,最多65535个字符 | 姓名、地址、品牌、型号 |
TEXT | 可变长度,最多65535个字符 | 存储小型文章或者新闻 |
mediumtext
|
可变长度,最多
2
的
24
次方
-1
个字符
| |
LONGTEXT | 可变长度, 极大型文本数据,最多2的32次方-1个字符 | 存储极大型文本数据 |
char和varchar:
- char长度固定, 即每条数据占用等长字节空间;适合用在身份证号码、手机号码等定长。
- varchar可变长度,可以设置最大长度;适合用在长度可变的属性。
- text不设置长度, 当不知道属性的最大长度时,适合用text。
按照查询速度: char最快, varchar次之,text最慢。
字符串型使用建议:
- 经常变化的字段用varchar
- 知道固定长度的用char
- 尽量用varchar
- 超过255字符的只能用varchar或者text
- 能用varchar的地方不用text
类型 | 字节大小 | 含义 | 示例 |
---|---|---|---|
DATE | 4 |
日期
YYYY-MM-DD
| '2020-01-01' |
TIME | 3 |
时间
HH:MM:SS
| '12:29:59' |
DATETIME | 8 |
日期时间
YYYY-MM-DD HH:MM:SS
| '2020-01-01 12:29:59' |
YEAR | 1 | '2017' | |
TIMESTAMP | 4 |
时间戳
YYYYMMDD HHMMSS
| '1970-01-01 00:00:01' UTC ~ '2038-01-01 00:00:01' UTC |
- BLOB和TEXT存储方式不同,TEXT以文本方式存储,英文存储区分大小写,而Blob是以二进制方式存储,不分大小写。
- BLOB存储的数据只能整体读出。
- TEXT可以指定字符集,BLOB不用指定字符集。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。