数值型:
整形:
类型 | 字节 | 有符号范围 | 无符号 |
---|---|---|---|
Tinyint | 1 | -128~127 0-255 | 0-255 |
Smallint | 2 | -32768~32767 | 0~65535 |
Mediumint | 3 | ||
int、integer | 4 | ||
Bigint | 8 |
如何设置有符号和无符号
在参数后面添加unsighed
特点:在类型后面添加长度如int(7) 是指宽度为7,不够补上,可以使用zerofile来进行0添加,但是得默认为正数
小数:
浮点数 | 字节 | 范围 |
---|---|---|
float(M,D) | 4 | |
double(M,D) | 8 | |
定点数 | ||
DEC(M,D) DECIMAL(M,D) | M+2 | 最大范围和double一样,给定decimal范围由M和D决定 |
特点:
1.M和D是可以省略的。
2.如果不省略的表达:
D表示小数点后的位数
M表示,整数+小数的位数一共是多少
如果超过范围就是插入最大值
3如果不添加(M,D)
定点数的M默认10,D默认为0,而浮点数会根据数值精度来处理
字符型:
较短 char,varchar
字符串类型 | 最多字符串 | 存储需求 |
---|---|---|
char(M) | M | 0~255 |
varchar(M) | M | 0~65535 |
区别:
1.char()不可该该变,varchar()会根据插入的字符来更改M
2.char可省略M,默认为1,varchar不能省略M
同char,varchar还有binary和varbinary,不同的是他们智能包含二进制字符串
较长 text,blob(较长的二进制数据)
日期型:
日期和时间类型 | 字节 | 最小值 | 最大值 |
---|---|---|---|
data | 4 | 1000-01-01 | 9999-12-31 |
datetime | 8 | 1000-01-01 00:00:00 | 9999-12-31 23:59:59 |
timestamp | 4 | 19700101080001 | |
time | 3 | -838:59:59 | 838:59:59 |
year | 1 | 1901 | 2155 |
分类:
data只保存日期
time只保存时间
year只保存年
datetime保存日期+时间
timestamp保存日期+时间
特点:
字节 | 范围 | 受不受时区的影响 | |
---|---|---|---|
datatime | 8 | 1000-9999 | 0 |
timestamp | 4 | 1970-2038 | 1 |
Enum类型
例:
create table tab_char(
c1 ENUM('A','B','C')
)
表示插入时只能插入A,B,C里面的,且只能插入一个
Set类型
和Enum类似:
create table tab_set(
s1 SET("a","b","c","d")
)
插入时可以通
insert into tab_set values("a,b,c")多个插入,只要有就行