mysql 常用数据类型
整型
(1) tinyint
一个字节 有符号(-128 ~ 127 ) 无符号(unsigned) ( 0 ~ 255 ) 小整数值
一个字节 有符号(-128 ~ 127 ) 无符号(unsigned) ( 0 ~ 255 ) 小整数值
(2) int
四个字节 有符号(-21亿 ~ 21亿 左右 ) 无符号(unsigned) ( 0 ~ 42亿) 大整数值
create table t1(id int , age tinyint );
insert into t1 values(2200000000,1) error
insert into t1 values(2100000000,1)
insert into t1 values(2100000000,128) error
insert into t1 values(2100000000,127)
insert into t1 values(2200000000,1) error
insert into t1 values(2100000000,1)
insert into t1 values(2100000000,128) error
insert into t1 values(2100000000,127)
浮点数
(1) float ( 255 , 30 ) !!! 单精度
(2) double ( 255 , 30 ) !!! 双精度
(3) decimal( 65 , 30 ) 金钱类型,使用字符串对的形式保留小数
"""默认存在四舍五入"""
create table t2(f1 float(5,2) , f2 double(5,2) , f3 decimal(5,2));
insert into t2 values(1.77777777777777777777777777,1.77777777777777777777777777,1.77777777777777777777777777);
create table t2(f1 float(5,2) , f2 double(5,2) , f3 decimal(5,2));
insert into t2 values(1.77777777777777777777777777,1.77777777777777777777777777,1.77777777777777777777777777);
"""float 默认小数保留5位,double小数位截取16位,decimal(10,0) 默认保留整数,存在四舍五入"""
create table t3(f1 float,f2 double ,f3 decimal);
insert into t3 values(1.77777777777777777777777777,1.77777777777777777777777777,1.77777777777777777777777777);
create table t3(f1 float,f2 double ,f3 decimal);
insert into t3 values(1.77777777777777777777777777,1.77777777777777777777777777,1.77777777777777777777777777);
create table t4(f1 float(5,2));
insert into t4 values(12.34567889) # 12.35
insert into t4 values(123.34567889) # 123.35
insert into t4 values(1234.34567889) error
insert into t4 values(12.34567889) # 12.35
insert into t4 values(123.34567889) # 123.35
insert into t4 values(1234.34567889) error
字符串
(1) char 字符长度 255 个
(2) varchar 字节长度 21845 个 (总字节数不超过 65535 )
(3) text 文本类型,论文,小说等
char(10) 定长: 固定开辟11个字符长度的空间 开辟速度较快
varchar(10) 变长: 最多开辟11个字符长度的空间 开辟速度较慢
create table t5(c char(11), v varchar(11) , t text);
insert into t5 values('1111',"酸辣粉加上队列副经理开","sdfsdf234");
insert into t5 values('1111',"酸辣粉加上队列副经理2开","sdfsdf234"); error
# concat 拼接任意长度的字符串
elect concat(c,":",v,":",t) from t5;
枚举 和 集合
(1)枚举
enum 枚举: 从列出来的数据当中选一个(如:性别)
enum 枚举: 从列出来的数据当中选一个(如:性别)
(2) 集合
set 集合: 从列表中选多个(自动去重) (如: 爱好)
create table t6(
id int,
name varchar(10),
money float(6,3),
sex enum("男性","女性","禽兽","人妖","雌雄同体","半兽人","阿凡达"),
hobby set("吃肉","抽烟","喝酒","喝假酒")
);
# 正常
insert into t6(id , name ,money , sex , hobby) values(1,"克拉伊买买提",56.7891,"半兽人","喝假酒,抽烟");
# 自动去重
insert into t6(id , name ,money , sex , hobby) values(1,"克拉伊买买提",56.7891,"半兽人","喝假酒,抽烟,抽烟,抽烟,抽烟");
id int,
name varchar(10),
money float(6,3),
sex enum("男性","女性","禽兽","人妖","雌雄同体","半兽人","阿凡达"),
hobby set("吃肉","抽烟","喝酒","喝假酒")
);
# 正常
insert into t6(id , name ,money , sex , hobby) values(1,"克拉伊买买提",56.7891,"半兽人","喝假酒,抽烟");
# 自动去重
insert into t6(id , name ,money , sex , hobby) values(1,"克拉伊买买提",56.7891,"半兽人","喝假酒,抽烟,抽烟,抽烟,抽烟");
时间日期
(1) 年月日
date YYYY-MM-DD 年月日 (纪念日,节假日)
date YYYY-MM-DD 年月日 (纪念日,节假日)
(2) 时分秒
time HH:MM:SS 时分秒 (体育赛事,新闻联播)
(3) 年份值
year YYYY 年份值 (历史)
(4) 年月日 时分秒
datetime YYYY-MM-DD HH:MM:SS 年月日 时分秒(用户登录时间)
create table t1(d date , t time , y year , dt datetime);
insert into t1 values("2020-08-25","08:25:30","2020","2020-08-25 08:25:30")
insert into t1 values(now(),now(),now(),now())
insert into t1 values("2020-08-25","08:25:30","2020","2020-08-25 08:25:30")
insert into t1 values(now(),now(),now(),now())
timestamp YYYYMMDDHHMMSS(时间戳) 自动更新时间(不需要手动,系统自动更新时间) 数据上一次的修改时间
create table t2(dt datetime , ts timestamp);
insert into t2 values(null,null);
insert into t2 values(20200825082530,20200825082530);
insert into t2 values(20200825082530,20380825082530); error 不能超过2038年的某一年
create table t2(dt datetime , ts timestamp);
insert into t2 values(null,null);
insert into t2 values(20200825082530,20200825082530);
insert into t2 values(20200825082530,20380825082530); error 不能超过2038年的某一年