萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> MySQL數據類型與數據類型范圍入門教程

MySQL數據類型與數據類型范圍入門教程

在mysql中數據類型分類數字數據類型,日期和時間類型,字符串類型這種種了,但它們細下裡又有很多小區別函數,下面我來介紹一下。


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  指定一個字符集 

copyright © 萬盛學電腦網 all rights reserved