MySQL資料類型與資料類型範圍入門教程

來源:互聯網
上載者:User


MySQL使用了很多不同的資料類型,分解成三大類:數字,日期和時間,和字串類型。

數字資料類型:


MySQL使用所有標準的ANSI SQL數值資料類型,所以如果與MySQL不同的資料庫系統這些定義會看起來也熟悉。下面的列表顯示了常見的數值資料類型和它們的說明。

INT - 一個正常大小可以有符號或無符號的整數。如果帶符號的,允許的範圍是-2147483648到2147483647。如果沒有符號,允許的範圍是從0到4294967295。可以指定一個寬度達11位元字。

TINYINT -一個非常小可以有符號或無符號的整數。如果帶符號的,允許的範圍是從-128到127。如果沒有符號,允許的範圍是從0到255。可以指定一個4位元字的寬度。

SMALLINT - 一個小可以有符號或無符號的整數。如果帶符號的,允許的範圍是從-32768到32767。如果沒有符號,允許的範圍是從0到65535。可以指定一個寬度為5位元字。

MEDIUMINT - 一個中等大小的,可以有符號或無符號的整數。如果帶符號的,允許的範圍是-8388608到8388607。如果沒有符號,允許的範圍是從0到16777215。可以指定一個寬度達9位元。

BIGINT - 一個大的,可以有符號或無符號的整數。如果帶符號的,允許的範圍是-9223372036854775808到9223372036854775807。如果沒有符號,允許的範圍是從0到18446744073709551615。可以指定一個寬度達11位元字。

FLOAT(M,D) - 一個浮點數字,不能是無符號的。可以定義的顯示長度(M)和小數(D)的數量。這不是必需的,將預設為10,2,其中2為小數位元和10是總人數的數字(包括小數)。小數精度可以到24位的持股量。

DOUBLE(M,D) -雙精確度浮點數字,不能是無符號的。可以定義的顯示長度(M)和小數(D)的數量。這不是必需的,將預設為16.4,其中4個是小數位元。十進位至53位的雙精確度可以去。 REAL是雙的代名詞。

DECIMAL(M,D) - 一個解包浮點數字,不能是無符號的。每個十進位在解壓縮小數,對應一個位元組。定義的顯示長度(M)和小數點後的位元(D)是必需的。 NUMERIC是DECIMAL的代名詞。

日期和時間類型:


MySQL的日期和時間資料類型有:

DATE - 日期格式YYYY-MM-DD,1000-1-1和9999-12-31之間。例如1973年12月30日將儲存為1973-12-30日。

DATETIME - 日期和時間的組合YYYY-MM-DD HH:MM:SS格式,在1000-1-1 00:00:00和9999-12-31 23:59:59。例如,1973年12月30號15:30:00將儲存為1973-12-30 15:30:00.。

TIMESTAMP-1970年1月1日午夜,在2037年的某個時候之間的時間戳記。這看起來像之前的DATETIME格式,不帶連字號之間的數字,1973年12月30日下午3:30將被儲存為19731230153000(YYYYMMDDHHMMSS)。

TIME - 儲存HH:MM:SS格式的時間。

YEAR(M) - 儲存年在2位或4位元字格式。如果長度指定為2(例如年(2)),年份可在1970到2069(70到69)。如果長度指定為4,年份可在1901到2155。預設長度為4。

字串類型:


雖然數字和日期類型有些相似,將儲存的大部分資料將在字串格式。下面列出了在MySQL中常用的字串資料型別。

CHAR(M) - 一個固定長度的字串的長度介於1到255個字元(例如CHAR(5)),向右填充到指定的長度與空間儲存。定義的長度不是必需的,但預設值是1。

VARCHAR(M) - 可變長度的字串的長度介於1到255個字元,例如VARCHAR(25)。當建立一個VARCHAR欄位必須定義一個長度。

BLOB 或 TEXT - 欄位的最大長度為65535個字元。 BLOB是二進位大對象“,是用來儲存大量的位元據,如映像或其他類型的檔案。欄位定義為文本也持有大量的資料,兩者之間的區別是儲存的資料進行排序和比較是區分大小寫BLOB,並在文字欄位不區分大小寫。不指定BLOB或TEXT的長度。

TINYBLOB 或 TINYTEXT -一個BLOB或TEXT列,最大長度為255個字元。不能指定TINYBLOB或TINYTEXT長度。

MEDIUMBLOB 或 MEDIUMTEXT -一個BLOB或TEXT列,最大長度為16777215個字元。不能指定MEDIUMBLOB或MEDIUMTEXT的長度。

LONGBLOB 或 LONGTEXT -一個BLOB或TEXT列,最大長度為4294967295個字元。不能指定LONGBLOB或LONGTEXT的長度。

ENUM - 枚舉,這是一種奇特的術語列表。當定義一個枚舉,要建立一個清單項目的值必須被選中(或它可以是NULL)。例如,如果希望欄位包含“A”或“B”或“C”,則ENUM定義為ENUM('A','B','C'),只有那些值(NULL)所能填充該欄位。 

上面可能寫得看不清楚,下面補充一文章

1.整型(xxxint)

MySQL資料類型 含義
tinyint(m) 1個位元組表示(-128~127)
smallint(m) 2個位元組表示(-32768~32767)
mediumint(m) 3個位元組表示(-8388608~8388607)
int(m) 4個位元組表示(-2147483648~2147483647)
bigint(m) 8個位元組表示(+-9.22*10的18次方)


2.浮點型(float和double)
MySQL資料類型 含義
float(m,d) 單精確度浮點型,8位精度(4位元組),m是十進位數位總個數,d是小數點後面的數字個數
double(m,d) 雙精確度浮點型,16位精度(8位元組)
參數m隻影響顯示效果,不影響精度,d卻不同,會影響到精度。比如設一個欄位定義

3.定點數(decimal)
decimal(m,d) 定點類型浮點型在資料庫中存放的是近似值,而定點類型在資料庫中存放的是精確值。參數m是定點類型數位最大個數(精度),範圍為0~65,d小數點右側數位個數,範圍為0~30,但不得超過m。對定點數的計算能精確到65位元字。

4.字串(char,varchar,xxxtext)
MySQL資料類型 含義
char(n) 固定長度的字串,最多255個字元
varchar(n)  固定長度的字串,最多65535個字元
tinytext  可變長度字串,最多255個字元
text  可變長度字串,最多65535個字元
mediumtext  可變長度字串,最多2的24次方-1個字元
longtext  可變長度字串,最多2的32次方-1個字元 


5.位元據(xxxBlob)
XXXBLOB和xxxtext是對應的,不過儲存方式不同,xxxTEXT是以文本方式儲存的,如果儲存英文的話區分大小寫,而xxxBlob是以二進位方式儲存的,不區分大小寫。xxxBlob儲存的資料只能整體讀出。xxxTEXT可以指定字元集,xxxblob不用指定字元集。

6.日期時間類型(date,time,datetime,timestamp)
MySQL資料類型 含義
date 日期'2008-12-2'
time 時間'12:25:36'
datetime 日期時間'2008-12-2 22:06:44'  
timestamp 不固定

timestamp比較特殊,如果定義一個欄位的類型為timestamp,這個欄位的時間會在其他欄位修改的時候自動重新整理。所以這個資料類型的欄位可以存放這條記錄最後被修改的時間,而不是真正來的存放時間。

7.資料類型的屬性
MySQL關鍵字 含義 
NULL 資料列可包含NULL值
NOT NULL 資料列不允許包含NULL值  
DEFAULT xxx 預設值,如果插入記錄的時候沒有指定值,將取這個預設值
PRIMARY KEY  主鍵 
AUTO_INCREMENT  遞增,如果插入記錄的時候沒有指定值,則在上一條記錄的值上加1,僅適用於整數類型 
UNSIGNED 無符號 
CHARACTER SET name  指定一個字元集 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.