mysql的数据类型
mysql的数据类型
数据列类型 |
存储空间 |
说明 |
取值范围 |
TINYINT |
1字节 |
非常小的整数 |
带符号值:-128~127 无符号值:0~255 |
SMALLINT |
2字节 |
较小的整数 |
带符号值:-32768~32767 无符号值:0~65535 |
MEDIUMINT |
3字节 |
中等大小的整数 |
带符号值:-8388608~8388607 无符号值:0~16777215 |
INT |
4字节 |
标准整数 |
带符号值:-2147483648~2147483647 无符号值:0~4294967295 |
BIGINT |
8字节 |
大整数 |
带符号值:-263~263-1 无符号值:0~264-1 |
FLOAT |
4或8字节 |
单精度浮点数 |
最小非零值:+- 1.175494351E-38 最大非零值:+- 3.402823466E+38 |
DOUBLE |
8字节 |
双精度浮点数 |
最小非零值:+- 2.225073E-308 最大非零值:+- 1.797693E+308 |
DECIMAL |
自定义 |
以字符串形式表示的浮点数 |
取决于存储单元字节数 |
整型:
Tinyint 微小整型 只能表示 255 个数 年龄,布尔值
Smalint 小整型 可以表示 65535个数 (这货很尴尬,在他的范围内自定义使用)
Mediumint 中整型 表示16777215 (这货很尴尬,在他的范围内自定义使用)
Int 整型 表示和php相同的整型个数 最常用 id
Bigint 大整形,一般不用
Float 单精度浮点型
Double 双精度浮点型
Decimal 双精度字符串浮点型 (村钱用的)
数据列类型 |
存储空间 |
说明 |
取值范围 |
CHAR[(M)] |
M字节 |
定长字符串 |
M字节 |
VARCHAR[(M)] |
L+1字节 |
可变字符串 |
M字节 |
TINYBLOB,TINYTEXT |
L+1字节 |
非常小的BLOB(二进制大对象)和文本串 |
28-1字节 |
BLOB,TEXT |
L+2字节 |
小BLOB和文本串 |
216-1字节 |
MEDIUMBLOB, MEDIUMTEXT |
L+3字节 |
中等的BLOB和文本串 |
224-1字节 |
LONGBLOB, LONGTEXT |
L+4字节 |
大BLOB和文本串 |
232-1字节 |
ENUM(‘value1’,’value2’…) |
1或2字节 |
枚举:可赋予某个枚举成员 |
65535个成员 |
SET(‘value1’,‘value2’…) |
1,2,3,4或8字节 |
集合:可赋予多个集合成员 |
64个成员 |
Char 字符串类型 char(10) 0-255
特点: 数据长度固定,不足制定长度也要占用一个完整位置,浪费空间了,效率较高
Varchar 字符串类型 varchar(100)
特点: 数据长度不固定,由数据内容决定,节省空间,效率变低。
定长字符: 密码,姓名
变长类型: (卫星实时通信) ,大量的数据碎片
Blob类型:(存储食品,图片,软件)
文本类型,用与存储较大的文本数据
Tinyblob: 0-255 字节
Blob: 0-65535字节
Mediumblob: 0- 16772150字节
Longblob:
Text类型: 文本类型,存储较大的文本数据
最大长度为65,535(2的16次方–1)字符的TEXT列。
MEDIUMTEXT最大长度为16,777,215。
LONGTEXT最大长度为4,294,967,295。
主要是用来存放非二进制的文本,如论坛帖子,题目,或者百度知道的问题和回答之类。
区别:
Text 不区分大小写 (经常使用的)
Blob: 区分大小写
ENUM 枚举类型
‘man’,’woman’,’other’
枚举类型就是有用户实现指定好的,可以设置的数据的值然后添加数据或修改数据是,只能从指定的值中,选择一个!
Set 类型(集合类型)
集合类型就是由用户事先指定好可以设置的数据的值,然后添加数据或修改数据时,可以从制定之中选取N个操作!
注意: 这两种类型会增加我们mysql的压力,php可以处理
Binary 二进制数据类型
Varbinary 变长的二进制数据类型
布尔类型:
Mysql不提供布尔数据类型,如果要使用布尔类型,可以使用tinyint 的0和1表示false和true 即可
时间类型(我们了解即可)
数据列类型 |
存储空间 |
说明 |
取值范围 |
DATE |
3 字节 |
“YYYY-MM-DD”格式表示的日期值 |
1000-01-01~9999-12-31 |
TIME |
3 字节 |
“hh:mm:ss”格式表示的时间值 |
-838:59:59-838:59:59 |
DATETIME |
8 字节 |
“YYYY-MM-DD hh:mm:ss”格式 |
1000-01-01 00:00:00~9999-12-31 |
TIMESTAMP |
4 字节 |
“YYYYMMDDhhmmss”格式表示的时间戳 |
19700101000000-2037年的某个时刻 |
YEAR |
1 字节 |
“YYYY”格式的年份值 |
1901~2155 |
我们平时要是使用时间怎么办? 存储时间戳