mysql数据类型主要分3大类:数字型,字符型,时间型;
数字型
1、整数类型
整数类型字段的设定形式:
类型名【(M)】【unsigned】 【zerofill】
说明:
M
表示设定该整数的“显示长度”,即select输出的时候,123可能显示为000123(假设M
为6)unsigned
用于设定该整数为“无符号数”,其实就是没有负数。zerofill
用于设定是否填充0
到一个数字的左边,此时,需与设定的长度M配合使用。- 如果设置了
zerofill
,则自动也就表示同时具备了unsigned
修饰
小数类型
float
:单精度浮点型,使用4个字节
存储数据,其精度大约只有6-7个有效数字数位;double
:双精度浮点型,使用8个字节
存储数据,其精度大约只有15个有效数字数位;decimal
:定点小数类型,整数部分最长可以有65位
,小数部分最长可以有30位
。一般设置格式为:decimal(总位数,小数部分位数)
字符类型
mysql中的字符串,应该使用“单引号”引起来。
1、varchar类型:
变长字符串,使用时我们必须设定其长度,最大长度“理论值”65535个,实际其实最大只能是65533个,但考虑到存储的字符编码不同,也会有进一步减少。
例如:
- 如果存储中文gbk,则最多是65533/2个;
- 如果存储中文utf8,则最多是65533/3个;
注意:
1、此类型的实际长度是存储内容决定,而设定值只是表示最多可存储的字符个数。
2、这里的存储限制,其实都来源于一个表格的“一行”的数据存储最大容量限制:65535。
2、char类型:
- 定长字符串;使用时通常需要设定其长度,如果不设定,默认是1.最大理论长度是255个。
- 定长字符串适用于存储的数据都是可预见的明确的固定长度的字符,比如手机号,中国邮政编码
- 实际存储的时候,如果少于设定长度,也能存,但都会补空格填满。
3、enum类型:
- 单选项字符串数据类型。它非常适合于存储表单界面中的“单选项值”;
- 它设定的时候,是需要给定“固定的几个选项”,然后存储的时候,就只存储其中一个值;
形式如下:
enum(“选项1”, “选项2”, “选项3”, ..... );
实际内部:
这些字符串选项值对应的是如下数字值:1, 2, 3, 4, 5, …..最多65535个选项;
写入数据形式:
可以用该选项字符串本身,也可以用对应的数字:
4、set类型:
- 多选项字符串数据类型。它非常适合于存储表单界面中的“多选项值”;
- 它设定的时候,也需要给定“固定的几个选项”,然后存储的时候,就可以存储其中若干个值;
形式如下:
set(“选项1”, “选项2”, “选项3”, ..... );
实际内部:
这些字符串选项值对应的是如下数字值:1, 2, 4, 8, 16, …..最多64个选项;
写入数据形式:
可以用该选项字符串并用逗号分开本身,也可以用对应的数字的和:
实例:
1、创建enum 和 set 数据表
2、插入数据
解释
5、text类型:
- 它称为“长文本”字符类型。通常,其中存储的数据不占据表格中的数据容量限制。其本身最长可存储65535个字符。
- 其他同类字符类型:smalltext,tinytext, longtext。
其他(了解):
- binary类型: 定长二进制字符串类型,里面存储的是二进制值;
- varbinary类型: 变长二进制字符串类型,里面存储的是二进制值;
- blob类型: 二进制数据类型,存的仍然是二进制值,但其适用于存储“图片”,“其他文件”等,但极少用!
时间类型
- datetime类型:时间日期类型
- date类型:日期类型
- time类型:时间类型
- year类型:年份类型
- timestamp:时间戳类型
timestamp 时间戳类型:范围是1970年1月1日到2037年,主要用于INSERT 和 UPDATE时记录日期时间。
1:如果不分配值:自动设置为最近操作的日期和时间
2:分配NULL值:自动设置为当前的日期和时间
3:默认显示格式:’YYYY-MM-DD HH:MM:SS’
4:获得数字:在TIMESTAMP 列+0
在应用中,时间日期类型,在我们自己给定的数据情形下,需要使用“单引号”引起来,跟字符串一样!
查询出结果为
获得数字:在TIMESTAMP 列+0