【MySQL】数据类型
目录
一、数据类型分类
二、数值类型
bit:
tinyint:
编辑
smallint:
memdiumint:
int:
bigint:
float:
编辑
decimal:
三、文本类型
char:
字符的概念:
varchar:
四、时间类型
date:
datetime×tamp:编辑
五、string类型
enum:
具体使用:编辑
编辑
set:
使用方法:
查询语句的使用:编辑
数据类型是一种约束,可以对插入的数据进行检查,如果不符合约束,那么就会终止。
一、数据类型分类
数据类型分为四大类:数值类型、文本类型、时间类型、string类型。
二、数值类型
有bit类型、int(tinyint, smallint, memdiumint, int, bigint)类型、float(decimal, double)类型、bool类型。
bit:
bit后跟的数字表示这个数据所占用的位数,显示时以ascii码进行显示。如果位数多于设定位数,则发生截断。
tinyint:
占有1个字节。相当于c语言学过的char类型。范围是-128 ~ 127,无符号是0 ~ 255。
超过范围会进行告警。
smallint:
占有2个字节。两个字节16位,所以能表示的最大范围是-2^15+1 ~2^15 / 0 ~ 2^16。
越界同样报警,存储时按照最大值进行存储。
memdiumint:
占用3个字节,三个字节是24位,取值范围在-2^23+1 ~ 2^23 / 0 ~ 2^24。
int:
占用4个字节,四个字节是32位,取值范围在-2^31+1 ~ 2^31 / 0 ~ 2^32。
bigint:
占用8个字节,8个字节是64位,取值范围在-2^63+1 ~ 2^63 / 0 - 2^64。
float:
小数类型,形式为float(m,n),m是数字显示的位数,n是小数点后的位数(精度)。且遵守四舍五入的规则。
比如float(4,3)的取值范围就在±9.999之间。四舍五入的规则是用在第n+1位上的。
decimal:
规则同float一样,但是精度要比float高。
三、文本类型
分为char、varchar、blob、text。
char:
定长字符型,格式为:char(L),L为文本所占字符数。如果没有占完分配的空间,会用空格进行补齐强制占完。最大一个char可以用255个字符的空间。
字符的概念:
字符不同于c语言阶段学习的字符和字节概念。
在mysql中字符不同于字节,一个字符表示我们看到的一个符号就是一个字符,所以比如char(3)就可以放3个汉字。
由c语言代码测试可以知道一个汉字的字节数是3,但是在我们创建的char(3)中,存放了三个汉字,一共9个字节。
varchar:
动态长度的字符串类型,语法格式为:varchar(L),L是当前字符串的字符长度。最大一个varchar可以用65535个字节。
四、时间类型
有三种:date(日期,只包含年月日),datatime(日期时间,包含日期和时间),timestamp(时间戳)。
date:
datetime×tamp:
五、string类型
包含两种类型,enum(枚举)和set(集合)。
enum:
枚举类型,与c语言不同的是MySQL中的enum从1开始进行默认赋值。
具体使用:
大小写会自动纠正
enum只能支持单个数据的插入。
set:
set是一种集合类型,可以插入set中的多个值,也和enum一样从1开始进行赋值。
使用方法:
进行数字插入时,是按照二进制序列的规则插入。
如:5 -- 0101 也就是第一位和第三位的值会被插入。(从右向左)
查询语句的使用: