資料庫基礎02——MySQL常用資料型別
阿新 • • 發佈:2018-12-12
資料庫基礎02——MySQL常用資料型別
在這裡宣告一下 mysql 5.5.的文件,如果公司確定用mysql,直接看文件最詳細
https://dev.mysql.com/doc/refman/5.5/en/
mysql主要的資料型別:
1、串資料型別
2、數值資料型別
3、日期和時間資料型別
4、二進位制資料型別
1、串資料型別
mysql遵循了ANSI SQL標準,同樣分為定長串 和變長串兩種資料型別,儲存字串以及位元組。
為什麼要使用定長資料型別?答案:效能
MySQL處理定長列遠比處理變長列快得多。此外, MySQL不允許對變長列(或一個列的可變部分)進行索引。這也會極大地影響效能 。但是不要亂用定長資料型別,只有長度確定的型別才用,不然浪費空間。 剩餘的位數會用空格填充。
資料型別 | 說明 |
---|---|
CHAR(size) | 1~255個字元的定長串。它的長度必須在建立時指定,否則MySQL 假定為CHAR(1) (可包含字母、數字以及特殊字元) |
ENUM(x,y,z,etc.) | 接受最多64 K 個串組成的一個預定義集合的某個串。即:允許你輸入可能值的列表。可以在 ENUM 列表中列出最大 65535 個值。如果列表中不存在插入的值,則插入空值。註釋:這些值是按照你輸入的順序儲存的.可以按照此格式輸入可能的值:ENUM(‘X’,‘Y’,‘Z’) |
SET | 接受最多64個串組成的一個預定義集合的零個或多個串 |
TEXT | 最大長度為65535(16K)的變長字串 |
TINYTEXT | 與TEXT相同,但最大長度為255位元組 |
LONGTEXT | 同TEXT,存放最大長度為 4,294,967,295(約4GB) 個字元的字串。 |
MEDIUMTEXT | 同TEXT, 存放最大長度為 16,777,215 (約16K)個字元的字串。 |
VARCHAR | 長度可變,最多不超過255位元組。如果在建立時指定為VARCHAR(n), 則可儲存0到n個字元的變長串(其中n≤255) (可包含字母、數字以及特殊字元 |
2、數值資料型別
**有符號或無符號 ** :所有數值資料型別(除BIT和BOOLEAN外)都可以有符號或無符號。有符號數值列可以儲存正或負的數值,無符號數值列只能儲存正數。預設情況為有符號,但如果你知道自己不需要儲存負值,可以使用UNSIGNED關鍵字,這樣做將允許你儲存兩倍大小的值。
資料型別 | 說明 |
---|---|
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, 為0~4294967295)的數 |
MEDIUMINT | 整數值,支援 -8388608~8388607(如果是UNSIGNED,為0~ 16777215)的數 |
REAL | 4位元組的浮點值 |
SMALLINT | 整數值,支援 -32768~32767(如果是UNSIGNED,為0~ 65535)的數 |
TINYINT | 整數值,支援 -128~127(如果為UNSIGNED,為0~255)的數 |
注意:MySql 沒有專美儲存貨幣的資料型別,一般情況下使用DECIMAL(8,2) 來表示
關於 FLOAT(size,d) 和DOUBLE(size,d):
MySQL對於單精度值使用四個位元組,對於雙精度值使用八個位元組。
因為FLOAT
,SQL標準允許FLOAT
在括號中的關鍵字後面的位中選擇性地指定精度(但不是指數的範圍) 。MySQL還支援此可選的精度規範,但精度值僅用於確定儲存大小。精度從0到23會產生一個4位元組的單精度FLOAT
列。精度從24到53會產生一個8位元組的雙精度DOUBLE
列。
3、日期和時間資料型別
資料型別 | 說明 |
---|---|
DATE | 表示1000-01-01~9999-12-31的日期,格式為 YYYY-MM-DD |
DATETIME | DATE和TIME的組合,即年月日時分秒 |
TIMESTAMP | 功能和DATETIME相同(但範圍較小) |
TIME | 格式為HH:MM:SS |
YEAR | 用2位數字表示,範圍是70(1970年)~69(2069 年),用4位數字表示,範圍是1901年~2155年 |
4、二進位制資料型別(存位元組)
資料型別 | 說明 |
---|---|
BLOB | Blob最大長度為64 KB |
MEDIUMBLOB | Blob最大長度為16 MB |
LONGBLOB | Blob最大長度為4 GB |
TINYBLOB | Blob最大長度為255位元組 |