MySQL基础数据类型
2020年4月27日
8:22
1、整型
类型:
字节大小
数值范围
Tinyint
1
有符号:-128~127
无符号: 0~255
smallint
2
有符号:-32768~32767
无符号:0~65535
mediumint
3
有符号:-8388608~8388607
无符号:0~16777215
Int,integer
4
有符号:-2,147,483,648~2,147,483,647
无符号:0~4294967295
Bigint
8
有符号:-9223372036854775808~9223372036854775807
无符号:18446744073709551615
特点:
- 如果不设置无符号还是有符号,默认有符号,如果添加unsigned 添加关键字 就是无符号。
- 如果插入的数值超过了整形范围,会报出out of range 异常,并插入临界值
- 如果不设置长度,会使用默认长度
- 如果在长度设置的情况下,可以使用zerofill填充0用以完成字节长度填充。
案例:
createtable tables_int( id int(7),ids int(7) unsigned);createtable word(id mediumint zerofill,numbertinyint zerofill);
2、小数类型
类型(浮点)
字节大小
数值范围
float
4
有符号:-3.402823466E+38 ~-1.175494351E-38
无符号:0~1.175494351E-38、0~3.402823466E+38
double
8
有符号:-1.797693 134 862 3157E+308~2.2250738555072014E-308
无符号:0~2.2250738555072014E-308,0~1.797693 134 862 3157E+308
类型(定点)
字节大小
数值范围
Decimal(M,D)
m+2
有符号:-1.797693 134 862 3157E+308~2.2250738555072014E-308
无符号:0~2.2250738555072014E-308,0~1.797693 134 862 3157E+308
特点:
1、规定范围的小数:
M:整数部分+小数部分
D:小数部分
2、省略MD:
如果是decimal那将会为10
如果是float 或者 double 将会由输入的数字的精度来决定
案例:
createtable table_float(f1 float,f2 double,f3 decimal);createtable table_float(f1 float(4,3),f2 double(4,3),f3 decimal(6,3));
3、字符型
类型
写法
字节长度
空间消耗
效率
char
Char(M)
字节长度固定
高
高
varchar
Varchar(M)
字节长度不固定
低
低
特点:
char字节长度固定,不随插入的数值变动,例如char(10),插入数据"中国",其字符大小仍为10
varchar字节长度不固定,随插入的数值变动,例如char(10),插入数据"中国",其字符大小为2
4、枚举类型
类型
数值范围
索引
Enum(M1,M2,M3….)
0~65535
从1开始
案例:
createtable table_enum(id int,sex enum("男","女"));insertinto table_enum values(1,"男");insertinto table_enum values(2,1);insertinto table_enum values(3,2);
5、集合类型
案例:
createtable table_set(id int,sex set("a","b","c","d"));insertinto table_set values("1","a,b,c");
6、时间类型
类型
字节
最小值
最大值
date
4
1000-1-1
9999-12-31
Datetime
8
1000-1-1 00:00:00
9999-12-31 23:59:59
timestamp
4
1970010108001
2038年某个时刻
time
3
-838:59:59
838:59:59
year
1
1901
2155
特点:
Datatime 与timestamp 区别点在于datatime忽略时区的影响,timestamp可以更能反应本地时间。当时区改变时timestamp能自动根据当前时区调整数据。
案例:
createtable table_time(id int,time datetime,time2 timestamp);insertinto table_time values(1,now(),now());
以上是 MySQL基础数据类型 的全部内容, 来源链接: utcz.com/z/533467.html