MySQL常见数据类型

# 常见数据类型
/*

数值型:
	整型
	小数:
		定点数
		浮点数
字符型:
	较短的文本:char、varchar
	较长的文本:text、blob(较长的二进制数据)
日期型:
	
	
*/

# 一、整型
/*
整数类型	字节	范围
tinyint		1	
smallint	2
mediumint	3
int、integer	4
bigint		8

特 点:
① 如果不设置无符号还是有符号,默认是有符号,如果想设置无符号,需要添加unsigned关键字
② 如果插入的数值超出了整型的范围,会报警告,并插入接近的临界值
③ 如果不设置长度会有默认的长度 int 的长度由int本身决定,
	设置的长度在使用zerofill时,如果长度不够在左边用0填充,
	但使用该关键词后,默认是无符号

*/

# 1.如何设置无符号和有符号
DROP TABLE IF EXISTS tab_int;
CREATE TABLE tab_int(
	t1 INT(7),
	t2 INT UNSIGNED,
	t3 INT(7) ZEROFILL
);

DESC tab_int;

INSERT INTO tab_int VALUES(-123456, -123456);

SELECT * FROM tab_int

# 小数
/*
浮点数类型		字节	范围
float(M,D)			4
double(M,D)		8
定点数类型		字节	范围
DEC(M,D)/DECIMAL(M,D)	M+2

特点:
①M:代表整数部位位数+小数范围位数
  D:小数部位位数
  如果超过范围,则插入临界值
②M和D都可以省略
	如果是decimal,则M默认是10,D默认为0
	如果是float和double,则会根据插入的数值的精度来决定精度
③定点型的精度较高,如果要求插入数值的精度较高,如货币运算则考虑使用
*/

# 示例 测试M和D
CREATE TABLE tab_float(
	f1 FLOAT(5,2),
	f2 DOUBLE(5,2),
	f3 DECIMAL(5,2)
);

INSERT INTO tab_float VALUE(123.45,123.45,123.45);
INSERT INTO tab_float VALUE(123.456,123.456,123.456);
INSERT INTO tab_float VALUE(123.4,123.4,123.4);
INSERT INTO tab_float VALUE(1523.4,1523.4,1523.4);

SELECT * FROM tab_float;

# 原则:所选择的类型越简单越好,能保存数值的类型越小越好

# 三、字符型
/*
较短字符串类型	最多字符数		特点		空间好费	效率
char(M)		M(可省略默认为1)	固定长度的字符	比较耗费	高
varchar(M)	M(不可省略)		可变长度的字符	比较节省	低

其他:
binary和varbinary用于保存较短的二进制
enum用于保存枚举
set用于保存集合

*/

CREATE TABLE tab_enum(
	c1 ENUM('a','b','c')
)

INSERT INTO tab_enum VALUES('a');
INSERT INTO tab_enum VALUES('b');
INSERT INTO tab_enum VALUES('c');
INSERT INTO tab_enum VALUES('m');
INSERT INTO tab_enum VALUES('A');

CREATE TABLE tab_set(
	s1 SET('a','b','c')
)

INSERT INTO tab_set VALUES('a');
INSERT INTO tab_set VALUES('A,b,C');
INSERT INTO tab_set VALUES('A,a');

# 四、日期类型
/*
日期和时间类型	字节	最小值			最大值
date		4
datetime	8	1000-01-01 00:00:00	999-12-31 23:59:59
timestamp	4	19700101080001		2038年的某一个时刻
time		3
year		1



区别:
①timestamp支持范围小
②timestamp受时区和版本影响大
*/

# 示例
CREATE TABLE tab_date(
	t1 DATETIME
	t2 TIMESTAMP
);

INSERT INTO tab_date VALUES(NOW(),NOW())

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章