1. 程式人生 > >資料庫基礎02——MySQL常用資料型別

資料庫基礎02——MySQL常用資料型別

資料庫基礎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位元組