:::

3-3-2 常用資料庫的欄位類型

謂何需要了解欄位類型?

因為選用正確的欄位類型可以:

  • 節省空間
  • 降低開發難度
  • 避免錯誤

一、數字

資料型態 資料範圍
tinyint(4) -128至127
unsigned:0至255
smallint(6) -32768至32767
unsigned:0至65535
mediumint(9) -8388608至8388607
unsigned:0至16777215
int(11) -2147683648至2147683647
unsigned:0至4294967295
bigint(20) -9223372036854775808至9223372036854775807
unsigned:0至18446744073709551615

二、浮點數

資料型態 範圍範例(以MySQL>3.23為例)
decimal[(65[,30])] decimal(4,1)-999.9到9999.9
decimal(5,1)-9999.9到99999.9
decimal(6,1)-99999.9到999999.9
decimal(6,2)-9999.99到 99999.99
decimal(6,3)-999.999到9999.999
float[(255,30)] float(4,1)-999.9到999.9
float(5,1)-9999.9到9999.9
float(6,1)-99999.9到99999.9
float(6,2)-9999.99到 9999.99
float(6,3)-999.999到999.999
double[(255,30)] double(4,1)-999.9到999.9
double(5,1)-9999.9到9999.9
double(6,1)-99999.9到99999.9
double(6,2)-9999.99到 9999.99
double(6,3)-999.999到999.999

三、日期時間

資料型態 範圍
date 1000-01-01至9999-12-31
西元年可用4或2個數字,使用2個數字時,70到99表示1970到1999;
如果是00到69就是2000到2069,有點容易搞錯,所以年份最好還是寫完整4位數比較沒困擾。
datetime 1000-01-01 00:00:00至9999-12-31 23:59:59
timestamp 1970-01-01 00:00:01 UTC到2038-01-19 03:14:07 UTC
其格式與datetime一樣,但儲存空間只需要一半。
time -838:59:59至 838:59:59
存入「150:30:00」而言就是過了150小時又30分鐘之意。
亦可存入「-6:20:00」,意指「6個小時又20分鐘前」
year[(4|2)] 4位數字可以儲存的範圍從1901到2155;
2位數字的範圍從00到99,實際的西元年份是1970到2069,也就是說,當您存入00時,實際代表2000之意;
存入69代表2069;存入70代表1970;存入99代表1999。

四、字串

資料型態 最大長度 實際儲存的空間
char[(255)] 255 指定的長度
varchar(65535) 65535 指定的長度加1或2bytes
tinytext 255 指定的長度加1byte
text 65535 指定的長度加2bytes
mediumtext 16772215 指定的長度加3bytes
longtext 4294967295 指定的長度加4bytes

五、列表

資料型態 最大個數 儲存空間
enum(字串值[,...]) 65535 1byte(25個以內);
2bytes(256到65535個)
set(字串值[,...]) 64 1byte(8個以內);
2bytes(16個以內);
3bytes(24個以內);
4bytes(32個以內);
8bytes(64個以內)

六、二進位  

資料型態 最大長度 實際儲存的空間
bit[(8|64)] 64 bit的範圍為0到1
bit(8)的範圍為0到255
bit(64)的範圍為0到18446744073709551615
binary[(255)] 255 指定的長度
varbinary(65535) 65535 指定的長度加1或2bytes
tinyblob 255 指定的長度加1byte
blob 65535 指定的長度加2bytes
mediumblob 16772215 指定的長度加3bytes
longblob 4294967295 指定的長度加4bytes

:::

書籍目錄

展開 | 闔起

https%3A%2F%2Fcampus-xoops.tn.edu.tw%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbsn%3D52%26tbdsn%3D1858

計數器

今天: 4282428242824282
昨天: 5069506950695069
總計: 5134730513473051347305134730513473051347305134730