mysql 常用数据类型

mysql 常用数据类型

整型

浮点型

字符串

集合与枚举

时间日期

整型

 (1) tinyint
一个字节  有符号(-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)
 
 

浮点数

 
 (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);
"""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 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
 

字符串

(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  枚举: 从列出来的数据当中选一个(如:性别)

 (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,"半兽人","喝假酒,抽烟,抽烟,抽烟,抽烟");
 
 

时间日期

 (1)  年月日
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())
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年的某一年
 
 
 
 
 
 
 
 
 
 
好好学习,天天向上。
原文地址:https://www.cnblogs.com/f211/p/13721070.html