型別說明
儲存量tinyint[(m)] [unsigned] [zerofill]
乙個很小的整數。有符號的範圍是-128到127,無符號的範圍是0到255。
1 位元組
smallint[(m)] [unsigned] [zerofill]
乙個小整數。有符號的範圍是-32768到32767,無符號的範圍是0到65535。
2 個位元組
mediumint[(m)] [unsigned] [zerofill]
乙個中等大小整數。有符號的範圍是-8388608到8388607,無符號的範圍是0到16777215。
3 個位元組
int[(m)] [unsigned] [zerofill]
乙個正常大小整數。有符號的範圍是-2147483648到2147483647,無符號的範圍是0到4294967295。
4 個位元組
integer[(m)] [unsigned] [zerofill]
乙個正常大小整數。有符號的範圍是-2147483648到2147483647,無符號的範圍是0到4294967295。
4 個位元組
bigint[(m)] [unsigned] [zerofill]
乙個大整數。有符號的範圍是-9223372036854775808到9223372036854775807,無符號的範圍是0到18446744073709551615。
8 個位元組
float[(m,d)] [zerofill]
乙個小(單精密)浮點數字。不能無符號。允許的值是-3.402823466e+38到-1.175494351e-38,0 和 1.175494351e-38到3.402823466e+38。m是顯示寬度而d是小數的位數。沒有引數的float或有<24 的乙個 引數表示乙個單精密浮點數字。
float(x):
如果 x < = 24 為4;
如果 25 < = x < = 53為8。
float:
4個位元組
double[(m,d)] [zerofill]
乙個正常大小(雙精密)浮點數字。不能無符號。允許的值是-1.7976931348623157e+308到-2.2250738585072014e-308、
0和2.2250738585072014e-308到1.7976931348623157e+308。
8 個位元組
double precision[(m,d)] [zerofill]
乙個正常大小(雙精密)浮點數字。不能無符號。允許的值是-1.7976931348623157e+308到-2.2250738585072014e-308、
0和2.2250738585072014e-308到1.7976931348623157e+308。
8 個位元組
real[(m,d)] [zerofill]
乙個正常大小(雙精密)浮點數字。不能無符號。允許的值是-1.7976931348623157e+308到-2.2250738585072014e-308、
0和2.2250738585072014e-308到1.7976931348623157e+308。
8 個位元組
decimal[(m[,d])] [zerofill]
乙個未壓縮(unpack)的浮點數字。不能無符號。行為如同乙個char列:「未壓縮」意味著數字作為乙個字串被儲存,值的每一位使用乙個字元。
m
位元組
或者(如果m < d,
d
+2 位元組)
numeric(m,d) [zerofill]
乙個未壓縮(unpack)的浮點數字。不能無符號。行為如同乙個char列:「未壓縮」意味著數字作為乙個字串被儲存,值的每一位使用乙個字元。
m
位元組
或者(如果m < d,
d
+2 位元組)
date
乙個日期。支援的範圍是'1000-01-01'到'9999-12-31'。mysql以'yyyy-mm-dd'格式來顯示date值,但是允許你使用字串或數字把值賦給date列。
3 個位元組
datetime
乙個日期和時間組合。支援的範圍是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。mysql以'yyyy-mm-dd hh:mm:ss'格式來顯示datetime值,但是允許你使用字串或數字把值賦給datetime的列。
8 個位元組
timestamp[(m)]
乙個時間戳記。範圍是'1970-01-01 00:00:00'到2023年的某時。mysql以yyyymmddhhmmss、 yymmddhhmmss、yyyymmdd或yymmdd格式來顯示timestamp值,取決於是否m是14(或省略)、12、8或6,但是允許你使用字串或數字把值賦給timestamp列。乙個timestamp列對於記錄乙個insert或update操作的日期和時間是有用的,因為如果你不自己給它賦值,它自動地被設定為最近操作的日期和時間。你以可以通過賦給它乙個null值設定它為當前的日期和時間。
4 個位元組
time
乙個時間。範圍是'-838:59:59'到'838:59:59'。mysql以'hh:mm:ss'格式來顯示time值,但是允許你使用字串或數字把值賦給time列。
3 個位元組
year[(2|4)]
乙個2或4位數字格式的年(預設是4位)。允許的值是1901到2155,和0000(4位年格式),如果你使用2位,1970-2069( 70-69)。mysql以yyyy格式來顯示year值,但是允許你把使用字串或數字值賦給year列。(year型別在mysql3.22中是新型別。)
1個位元組
char(m) [binary]
m
位元組,1 <= m <= 255
[national] varchar(m) [binary]
l
+1 位元組, 在此l <= m
和1 <= m <= 255
tinyblob
乙個blob列,最大長度為255(2^8-1)個字元
l
+1 位元組, 在此l
< 2 ^ 8
tinytext
乙個text列,最大長度為255(2^8-1)個字元
l
+1 位元組, 在此l
< 2 ^ 8
blob
乙個blob列,最大長度為65535(2^16-1)個字元
l
+2 位元組, 在此l
< 2 ^ 16
text
乙個text列,最大長度為65535(2^16-1)個字元
l
+2 位元組, 在此l
< 2 ^ 16
mediumblob
乙個blob列,最大長度為16777215(2^24-1)個字元
l
+3 位元組, 在此l
< 2 ^ 24
mediumtext
乙個text列,最大長度為16777215(2^24-1)個字元
l
+3 位元組, 在此l
< 2 ^ 24
longblob
乙個blob列,最大長度為4294967295(2^32-1)個字元
l
+4 位元組, 在此l
< 2 ^ 32
longtext
乙個text列,最大長度為4294967295(2^32-1)個字元
l
+4 位元組, 在此l
< 2 ^ 32
enum('value1','value2',...)
列舉。乙個僅有乙個值的字串物件,這個值式選自與值列表'value1'、'value2', ...,或null。乙個enum最多能有65535不同的值。
1 或 2 個位元組, 取決於列舉值的數目(最大值65535)
set('value1','value2',...)
乙個集合。能有零個或多個值的乙個字串物件,其中每乙個必須從值列表'value1', 'value2', ...選出。乙個set最多能有64個成員。
1,2,3,4或8個位元組, 取決於集合成員的數量(最多64個成員)
資料型別中,m 表示最大顯示寬度。 在 int(m) 中,m 的值跟 int(m) 所佔多少儲存空間並無任何關係。 int(3)、int(4)、int(8) 在磁碟上都是占用 4 btyes 的儲存空間。說白了,除了顯示給使用者的方式有點不同外,int(m) 跟 int 資料型別是相同的。
MySQL之選擇字段資料型別
mysql支援的資料型別很多,選擇正確的資料型別對於 獲得高效能至關重要。在選擇時有個簡單的原則有助於做出更好的選擇。簡單的原則 a 通常最小的是最好的 因為這樣可以用更少的磁碟 內容 cpu快取,大大減少io開銷。b 簡單就好 簡單的資料型別操作通常需要更少的cpu週期。例如,整型比字元操作代價更...
修改字段資料型別
我們假設相關表中沒有資料,使用sql語句修改字段型別的相關操作,以下就是具體方案的描述。如果表中沒有資料 直接這樣就可以了 alter table 表名 modify 欄位名 型別 eg alter table student id number 4 如果原表中存在data那麼方法就大不相同了,請看...
資料庫 MySQL欄位資料型別
欄位是列表中 的列名,列是表的重要組成部分,mysql資料庫中,列中的每乙個資料都需要指定其所屬型別,以確保資料的準確性和系統 的穩定性。字段資料型別分為三類 數值型別 字串型別 時間日期型別。數值型 整數 tinyint 1byte 128 127 tinyint unsigned 0 255 s...