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

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