MySql常见数据类型

一、常见的数据类型
数值型:整型、小数(定点数、浮点数) 
字符型:较短的文本(charvarchar)、较长的文本(textblob(较长的二进制数据);
日期型:
1. 整型
tinyintsmallintmediumintint/integerbigint
1(字节)		2(字节)		3(字节)		4(字节)		  8(字节)
特点:
① 如果不设置无符号还是有符号,默认是有符号,如果设置无符号,需要添加unsigned
② 如果插入的数值超出了整型的返回,会直接报错(有的版本会报警告,并插入临界值)
③ 如果不设置长度,会有默认的长度
长度代表了显示的最大宽度,如果不够会用 0 在左边填充,但必须搭配zerofill关键字使用!
  1. 如何设置有符号还是无符号
drop table if exists 表名;
create table 表名(
	字段1 int,
	字段2 int unsigned
); 
2. 小数
一、浮点型
float(M,D);
double(M,D);
二、定点型
dec(M,D);
decimal(M,D);
特点:
① M : 整数部位 + 小数部位
D : 小数部位  如果超过范围,则插入失败
② M 和 D 都可以省略 如果是decimal,则 M 默认是10, D 默认是0; 如果是floatdouble,
则会根据插入的数值的精度来决定精度
③ 定点型的精度相对较高, 如果要求插入数值的精度较高(如:货币运算等)则优先考虑使用 

  1. 测试 M 和 D
create table tab_float(
	f1 float(5,2),
	f2 double(5,2),
	f3 decimal(5,2)
);
insert into tab_float values(123.45,123.45,123.45);		//正确插入
insert into tab_float values(123.456,123.456,123.456);	//插入报错
insert into tab_float values(1523.4,1523.4,1523.4);	//插入报错
3.字符型
较短的文本: char  varchar
较长的文本: text  blob(较大的二进制)
其他:
binaryvarbinary 用于保存较短的二进制
enum 用于保存枚举
set 用于保存集合
特点(charvarchar的区别):
char 	char(M)(M可以省略,默认为1)	固定长度的字符	比较耗费空间		效率高
varchar varchar(M)(M不能省略)		可变长度的字符	比较节省空间		效率低
M: 代表是最大的字符数(注意:是字符数,不是字节数)
  1. 插入枚举类型
create table tab_char(
	c1 enum("a","b","c")
);
insert into tab_char values("a");	//插入正确 是a
insert into tab_char values("A");	//能正确插入 是a		不区分大小写
insert into tab_char values("d");	//插入错误
  1. set(集合)类型: 和 enum 类型类似,但是set一次可以选取多个成员,而enum只能选一个,根据成员个数不同,存储所占的字节也不同
create table tab_set(
	s1 set("a","b","c","d")
);
insert into tab_set values("a");	//插入正确 是a  不区分大小写
insert into tab_set values("a,b");	//能正确插入 是a,b
insert into tab_set values("a,c,d");	//能正确插入 是a
4. 日期型
分类:
date 只保存日期
time 只保存时间
year 只保存年
datetime 保存日期 + 时间
timestamp 保存日期 + 时间
特点:		字节		范围			时区等的影响
datetime	8		1000-9999	不受
timestamp	4		1970-2038
create table tab_date(
	t1 datetime;
	t2 timestamp;
);
insert into tab_date values(now(),now());
select * from tab_date;

猜你喜欢

转载自blog.csdn.net/weixin_38739598/article/details/107167464