MySQL常見的4種數據類型,一篇文章帶你搞懂!

數據類型:定義列中能夠存儲什麼數據以及該數據實際怎樣存儲的基本規則。面試

數據類型用於如下目的:算法

一、容許限制可存儲在列中的數據。如:數值數據類型列只能接受數值。學習

二、容許在內部更有效地存儲數據。如:用比文本串更簡潔的格式存儲數值和日期時間值。編碼

三、容許變換排序順序。如:數據都做爲串處理,則1位於10前,10位於2前(串以字典順序排序,從左邊開始比較,一次一個字符);做爲數值數據類型,數值才能正確排序。視頻

1、串數據類型

最經常使用的數據類型,存儲串,如名字、地址、電話號碼等。blog

兩種基本的串類型:定長串和變長串。排序

定長串:接受長度固定的字符串,其長度是在建立表時指定的。定長列不容許多於指定的字符數目,它們分配的存儲空間與指定的同樣多。如:CHAR。索引

變長串:存儲可變長度的文本。有些變長數據類型具備最大的定長,有些則是徹底變長的,不論是哪一種,只有指定的數據會獲得保存(額外的數據不保存),如:TEXT。文檔

PS:MySQL處理定長列遠比處理變長列快得多。且MySQL不容許對變長列(或一個列的可變部分)進行索引。字符串

數據類型說明:

CHAR:1~255個字符的定長串。長度必須在建立時指定,不然MySQL假定爲CHAR(1)。

ENUM:接受最多64K個串組成的一個預約義集合的某個串。

LONGTEXT:與TEXT相同,但最大長度爲4GB。

MEDIUMTEXT:與TEXT相同,但最大長度爲16 K。

SET:接受最多64個串組成的一個預約義集合的零個或多個串。

TEXT:最大長度爲64 K的變長文本。

TINYTEXT:與TEXT相同,但最大長度爲255字節。

VARCHAR:長度可變,最多不超過255字節。如建立時指定爲VARCHAR(n),則可存儲0到n個字符的變長串(其中n≤255)。

PS:

一、引號:使用何種形式的串數據類型,串值都必須括在引號內(一般使用單引號)。

二、須遵照的基本規則:若是數值是計算(求和、平均等)中使用的數值,則存儲在數值數據類型列中。若是數值做爲字符串使用,則保存在串數據類型列中。如:在數值字段中存儲郵政編碼01234,保存的是數值1234,丟失了一位數字。

2、數值數據類型

存儲數值。MySQL支持多種數值數據類型,每種存儲的數值具備不一樣的取值範圍。

支持的取值範圍越大,所需存儲空間越多。此外,有的數值數據類型支持使用十進制小數點(和小數),而有的則只支持整數。表D-2列出了經常使用的MySQL數值數據類型。

PS:

一、全部數值數據類型(除BIT和BOOLEAN外)均可以有符號或無符號。有符號數值列能夠存儲正或負的數值,無符號數值列只能存儲正數。

二、默認狀況爲有符號,若不須要存儲負值,可使用UNSIGNED,這樣作將容許你存儲兩倍大小的值。

三、與串不一樣,數值不該該在引號內。

四、MySQL中沒有專門存儲貨幣的數據類型,通常狀況下使用DECIMAL(8, 2)。


 

數據類型說明:

BIT:位字段,1~64位。在MySQL 5以前,BIT在功能上等價於TINYINT。

BIGINT:整數值,支持-9223372036854775808~9223372036854775807。若是是UNSIGNED,爲0~18446744073709551615的數。

BOOLEAN(或BOOL):布爾標誌,爲0或者爲1,主要用於開/關(on/off)標誌。

DECIMAL(或DEC):精度可變的浮點值。

DOUBLE:雙精度浮點值

FLOAT:單精度浮點值

INT(或INTEGER):整數值,支持-2147483648~2147483647,UNSIGNED同上。

MEDIUMINT:整數值,支持-8388608~8388607,UNSIGNED同上。

REAL:4字節的浮點值。

SMALLINT:整數值,支持-32768~32767,UNSIGNED同上。

TINYINT:整數值,支持-128~127,UNSIGNED同上。

3、日期和時間數據類型

數據類型說明:

DATE:表示1000-01-01~9999-12-31的日期,格式爲YYYY-MM-DD。

DATETIME:DATE和TIME的組合。

TIMESTAMP:功能和DATETIME相同,但範圍較小。

TIME:格式爲HH:MM:SS。

YEAR:2位數字表示,範圍是70~69(1970~2069);4位數字表示,範圍是1901~2155

4、二進制數據類型

可存儲任何數據(甚至包括二進制信息),如圖像、多媒體、字處理文檔等。

數據類型說明:

BLOB:Blob最大長度爲64KB。

MEDIUMBLOB:Blob最大長度爲16 MB。

LONGBLOB:Blob最大長度爲4GB。

TINYBLOB:Blob最大長度爲255字節。

以上就是關於對MySQL數據類型全解析的詳細介紹,歡迎你們對MySQL數據類型全解析內容提出寶貴意見!

最後

特別推薦一個分享C/C++和算法的優質內容,學習交流,技術探討,面試指導,簡歷修改...還有超多源碼素材等學習資料,零基礎的視頻等着你!

還沒關注的小夥伴,能夠長按關注一下:

相關文章
相關標籤/搜索