3.mysql中的数据类型
类型 | 大小 | 范围(有符号) | 范围(无符号)unsigned约束 | 用途 |
---|---|---|---|---|
TINYINT | 1 字节 | (-128,127) | (0,255) | 小整数值 |
INT或INTEGER | 4 字节 | (-2 147 483 648,2 147 483 647) | (0,4 294 967 295) | 大整数值 |
FLOAT | 4 字节float(255,30)255一共有多少位,30小数点保留位数 | (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) | 0,(1.175 494 351 E-38,3.402 823 466 E+38) | 单精度 浮点数值 |
DOUBLE | 8 字节double(255,30) | (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 双精度 浮点数值 |
1.数值
tinyint int
create table int_t (
ti tinyint, # ****
i int, # *****
tiun tinyint unsigned,
iun int unsigned
);
create table fd_t(
f float, # 精度问题 小数点后5位 # *****
d double, # 精度更高但也不准确
f2 float(5,2),# 在精确位四舍五入
d2 double(5,2)# 在精确位四舍五入
)
create table dec_t(
dec1 decimal,#默认整数
dec2 decimal(30,20)
)
2.时间
内置函数 now()当前时间
datetime 打卡时间/日志/论坛博客类的评论\文章/*****
date 员工生日/入职日期/离职日期/开班时间 *****
time 上课时间/下课时间/规定上班时间 竞赛数据
year
timestamp 由于表示范围的问题,导致用的少了
create table time_t2(
dt datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, # 表示的范围更大,还能拥有timestamp的特点
d date,
t time,
y year,
ts timestamp # 不能为空,默认值是当前时间,update时在修改的时候同时更新时间
)
3.字符串
char varchar
char 0-255 定长存储 存储速度更快 占用更多的空间 *****
char(12)
alex --> 'alex ' --> 12的长度
varchar 0-65535 变长存储 存储速度慢 占用的空间小 ****
varchar(12)
'alex' --> 'alex4' --> 5的长度
手机号码/身份证号码 : char
用户名/密码 : 有一定范围弹性 char
评论 : varchar
时间和空间
时间换空间
空间换时间
create table ch_t(
c char,
c2 char(5),
vc2 varchar(5)
)