目录
一、数值类型 :
1.整数类型:
整数类型 | 字节 | 有符号数值取值范围 | 无符号数值取值范围 |
tinyint | 1 | -128~127 | 0~255 |
smallint | 2 | -32768~32767 | 0~65535 |
mediumint | 3 | -8388608~8388607 | 0~16777215 |
int、integer | 4 | -2147483648~2147483647 | 0~4294967295 |
bigint | 8 | -9223372036854775808~9 223372036854775807 | 0~18446744073709551615 |
UNSIGNED : 无符号类型(非负)。所有的数值类型都有一个可选的属性UNSIGNED(无符号属性),无符号整数类型的最小取值为0。所以,如果需要在MySQL数据库中保存非负整数值时,可以将整数类型设置为无符号类型。
eg:
#unsigned的使用
#不加unsigned,默认为有符号(即带加减号)
create table test1(age tinyint)
#报错,tinyint带符号的取值范围为-128~127,128超出范围
insert into test1 values(128)
#加unsigned,表示不带符号
create table test2(age tinyint UNSIGNED)
#正常运行,不带符号的tinyint取值范围为0~256
insert into test2 values(128)
2.小数类型:
类型 | 字节 | 备注 |
float | 4 | 单精度 |
double | 8 | 双精度 |
decimal【M,D】 | / | 支持更加精准的小数位 |
decimal【M,D】(0<=M<=65,0<=D<=30D<M):M表示小数位数总数,D表示小数点后的位数。例如decimal【5,2】表示该值共5位数,其中小数点2位
若D是0,则该值无小数点或分数部分。
若D被省略,默认为0。若M被省略,默认为10。
eg:
#演示小数类型
create TABLE test3(
t1 float ,
t2 double ,
t3 DECIMAL(30,20))
insert into test3 values (12.123123123123,12.123123123123,12.123123123123)
select * from test3;
float、double、decimal精度依次增大,其中,decimal不够位数会自动补0。
二、位类型(bit):
bit字段显示时,按照位的方式显示。
bit(n):n默认为1,范围为1~64。
#位类型
create table test4 (num bit(8))
三、文本类型(字符串类型):
注意点:
①char(size):固定长度字符串,最大255字符
②varchar(size):可变长度字符串,最大65532字符
③char、varchar的大小表示的是字符,不区分是汉字还是字母
④若数据长度固定,推荐使用char,例如邮编、手机号、身份证等。若数据长度不定,推荐使用varchar,在查询速度上,char快于varchar
eg:
#演示char、varchar(size),不区分字母汉字,不超过size长度即可
create table test5 (name char(4))
#成功插入数据
insert into test5 values('1234')
#成功插入数据
insert into test5 values('你好吗')
select * from test5
四、二进制类型 :
五、日期类型:
eg:
#日期类型
create table test6(
time1 date,
time2 datetime,
time3 TIMESTAMP not null DEFAULT CURRENT_TIMESTAMP) #not null DEFAULT CURRENT_TIMESTAMP自动更新当前时间
insert into test6 (time1,time2)values('1990-10-10','1990-10-10 10:10:10')
select * from test6