14-mysql -- 常见数据类型

常见数据类型

总览
1 数值型:
	整型
	小数:定点数,浮点数
2 字符型:
	较短的文本:char、varchar
	较长的文本:text、blob(较长的二进制数据)
3 日期型
整型
分类:
	tinyint 、smallint、mediumint、int/integer、bigint
	  1		  	2			3  		   4		 8           字节数

如何设置无符号和有符号
CREATE TABLE tab_int(
	t1 INT,
	t2 INT UNSIGNED  #无符号
)
小数
分类:
1 浮点型  float(M,D)    double(M,D)
2 定点型 dec(M,D)  decimal(M,D)
特点:
①  M:整数部位+小数部位  总的位数
	  D:小数部位 的位数
	  如果超过范围,则插入临界值
②   M和D都可以省略
		如果是decimal,则M默认是10,D默认是0
		如果是float和double,则会根据插入的数值的精度来决定精度
③	定点型的精度较高,如果要求插入数值的精度较高如货币运算等则考虑使用
原则:
所选择的类型越简单越好,能保存数值的类型越小越好

INSERT INTO tab_float VALUES
(323.45,343.23,333.45),
(223.45,233.23,233.45);
字符型
较短的文本:
	 char:存储字符数 0-255,定义时可省略长度,默认是1
	 varchar:存储字符数 0-65535 ,定义时不可省略长度
其他:
	binary 和 varbinary 用于保存较短的二进制
	enum用于保存枚举
	set用于保存集合
较长的文本:
	text
	blob(较大的二进制)

案例:
#创建表,只有一个枚举型字段,插入值的时候只能是枚举值
CREATE TABLE tab_char(
	c1 ENUM('a','b','c')
);
INSERT INTO tab_char VALUES('a');#插入成功
INSERT INTO tab_char VALUES('d');#插入失败,插入的值必须是枚举的值

#创建集合
CREATE TABLE tab_set(
	s1 SET('a','b','c','d')
);
INSERT INTO tab_set VALUES('a');#√
INSERT INTO tab_set VALUES('a,c');#√
INSERT INTO tab_set VALUES('b,c,d');#√
INSERT INTO tab_set VALUES('a','b','e');#×,e不在集合之中
日期型

分类:
date 只保存日期
time 只保存时间
year 只保存年
datetime 保存日期+时间
timestamp 保存日期+时间

datetime  vs  timestamp
		   字节		   范围		是否受时区等影响I
datetime 	8		1000-9999	     不受
timestamp	4		1970-2038		  受

猜你喜欢

转载自blog.csdn.net/weixin_40719943/article/details/106772659