設計資料庫的時候會為表中涉及到的字段設定乙個範圍,如果不考慮這個取值範圍可能會對未來的運營產生或者效能問題或者資料問題。如果實際的取值大於設計的取值則會造成資料無效或丟失導致程式出錯,如果實際的取值小於設計的取值雖然不會對程式產生什麼錯誤,但會白白的浪費儲存空間導致效能問題。
mysql的字段包括:
tinyint、smallint、mediumint、int、integer、bigint。
float、double、double precision、real、decimal[(m,[d])]、numeric(m,d)。
date、datetime、timestamp、 time、year[(2|4)]。
char(m) [binary]、nchar(m) [binary]、[national] varchar(m) [binary]、tinyblob、tinytext、blob、text、mediumblob、mediumtext、longblob、longtext。
enum、set。
列表顯示一下它們的取值範圍,常備常查^_^
tinyint
-128 至 127
tinyint unsigned
0 – 255
smallint
-32768 至 32767
smallint unsigned
0 至 65535
mediumint
-8388608 至 8388607
mediumint unsigned
0 至 16777215
int 或 integer
-2147483648 至 2147483647
int unsigned 或 integer unsigned
0 至 4294967295
bigint
-9223372036854775808 至 9223372036854775807
bigint unsigned
0 至 18446744073709551615
float
-3.402823466e+38 至 -1.175494351e-38
1.175494351e-38 – 3.402823466e+38
double 或 double precision 或 real
-1.7976931348623157e+308 – -2.2250738585072014e-308
2.2250738585072014e-308 – 1.7976931348623157e+308
decimal[(m,[d])] 或 numeric(m,d)
由m(整個數字的長度,包括小數點,小數點左邊的位數,小數點右邊的位數,但不包括負號)和d(小數點右邊的位數)來決定,m預設為10,d預設為0
date
1000-01-01 至 9999-12-31
datetime
1000-01-01 00:00:00 至 9999-12-31 23:59:59
timestamp
1970-01-01 00:00:00 至 2023年的某天
time
-838:59:59′ 至 838:59:59
year[(2|4)]
預設為4位格式,4位格式取值範圍為1901 至 2155,0000,2位格式取值範圍為70-69(1970-2069)
char(m) [binary] 或 nchar(m) [binary]
m的範圍為1 至 255,如果沒有binary項,則不分大小寫,nchar表示使用預設的字符集.在資料庫中以空格補足,但在取出來時末尾的空格將自動去掉.
[national] varchar(m) [binary]
m的範圍為1 至 255.在資料庫中末尾的空格將自動去掉.
tinyblob 或 tinytext
255(2^8-1)個字元
blob 或 text
65535(2^16-1)個字元
mediumblob 或 mediumtext
16777215 (2^24-1)個字元
longblob 或 longtext
4294967295 (2^32-1)個字元
enum(『value1′,』value2′,…)
可以總共有65535個不同的值
set(『value1′,』value2′,…)
最多有64個成員
標籤:mysql, 字段, 開發, 資料庫
mysql bolb取值 一文了解Mysql
什麼是資料庫?資料庫中的幾個基本術語?mysql中innodb引擎支援的4種事務隔離級別 mysql中如何使用enum?mysql中的儲存引擎 mysql中char與varchar的區別?主鍵和候選鍵的區別?blob和text的區別?mysql中的鎖 資料庫三正規化 什麼是資料庫?資料庫其實顧名思義...
mysq比較時間
在oracle中使用時間函式to date習慣了,在oracle中時間的加減也非常簡單,直接加減即可。在mysql中時間的函式很多,非常自由。在專案中經常用到的就是時間的加減。比如60天前,oracle中直接就是sysdate 60,mysql中就不行。對時間加減的函式是 加adddate 減sub...
mysq基礎優化
skip name resolve skip locking skip innodb skip bdb key buffer 1g記憶體推薦設定為256m,2g記憶體推薦設定為512m wait timeout 3或者5 2g記憶體推薦設定為5 max connections 如果訪問量很大可以設定...