mysql資料型別小結
mysql的資料型別總體分為3大類:數字/日期/字串
數字型別
--支援unsigned的同時也支援signed,如果為某列指定zerofill,則為unsigned型別
Bit—範圍1-64,預設為1
Tinyint—signed範圍-128 – 127, unsigned範圍0 – 255
Bool – 與tinyint(1)同義,0代表False/非0代表true,但true只與1同價;
Smallint – signed範圍-32768 – 32767,unsigned為0 – 65535
Mediumint – signed範圍-8388608 – 8388607,unsigned為0 – 16777215
Int – signed範圍-2147483648 – 2147483647,unsigned為0 – 4294967295
Bigint – signed範圍-9223372036854775808 – 9223372036854775807(63位),unsigned範圍0 -- 18446744073709551615
--對於bigint型別,所有計算都是透過signed bigint或double完成的,除非使用bit函式,unsigned big不要超過63位,否則其後的資料可能會在bigint轉化為double時丟失
Decimal[(M[,D])] –M最大65預設為10,D最大30預設為0
Float[(M,D)]—單精度浮點數,理論取值範圍-3.402823466E+38 to -1.175494351E-38, 0, and 1.175494351E-38 to 3.402823466E+38,具體的因OS和硬體而異
Double[(M,D)] --理論取值範圍 -1.7976931348623157E+308 to -2.2250738585072014E-308, 0, and 2.2250738585072014E-308 to 1.7976931348623157E+308
Type |
Storage |
Minimum Value |
Maximum Value |
|
(Bytes) |
(Signed/Unsigned) |
Signed/Unsigned) |
TINYINT |
1 |
-128 |
127 |
|
|
0 |
255 |
SMALLINT |
2 |
-32768 |
32767 |
|
|
0 |
65535 |
MEDIUMINT |
3 |
-8388608 |
8388607 |
|
|
0 |
16777215 |
INT |
4 |
-2147483648 |
2147483647 |
|
|
0 |
4294967295 |
BIGINT |
8 |
-9223372036854775808 |
9223372036854775807 |
0 |
18446744073709551615 |
日期型別
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:01’ UTC – ‘2038-01-19 03:14:07’ UTC,儲存自’1970-01-01 00:00:00’至某一時間點的秒數;
預設情況下,表的第一個timestamp列記錄該表最近更新時間,即最近一次insert/update操作時間;除非timestamp列定義允許null值,否則為其賦值null則會轉變為當前時間;
若mysql開啟maxdb執行模式,則timestamp與datatime為同一型別;
Time – 範圍’-838:59:59’ – ‘838:59:59’,可以為之賦值字串和數值
Year[(2|4)] – 4位範圍’1901’ – ‘2155’,2位範圍’70’ – ‘69’ (1970 -- 2069)
datetime佔用8個位元組,而timestamp只佔用4個位元組;
另外,timestamp建表是可以設定預設值,且在更新表示該列會自動更新為當前時間;
year佔用1個位元組,定義時可為year(4)/year(2),兩者顯示年份不同;
time佔用3位元組,可以儲存時間間隔
字串型別
Char –固定長度字串,最大255/預設為1;char(0)只佔用1bit可儲存兩個不同的值,Null或空白字串;最後的空白鍵自動被回收;
Varchar—variable-length,最大長度65535(mysql每行最大限度為65535位元組);使用1或2個位元組字首儲存該列長度;
Binary –類似char,以二進位制位元組儲存;
Varbinary –類似varchar,二進位制位元組儲存;
Tinyblob –最大長度255位元組,使用1位元組字首儲存實際位元組數;
Tinytext –最大為255字元,如果使用多位元組字符集則長度更少;使用1位元組字首儲存實際位元組數;
Blob –最大長度65536位元組;使用2位元組字首儲存實際位元組數;
Text --最大長度65536字元;使用2位元組字首儲存實際位元組數;
Mediumblob –最大長度power(2,24) -1位元組,使用3位元組字首儲存實際位元組數;
Mediumtext--最大長度power(2,24) -1字元,使用3位元組字首儲存實際位元組數;
Longblob --最大長度power(2,32) -1位元組,使用4位元組字首儲存實際位元組數;
Longtext --最大長度power(2,32) -1字元,使用4位元組字首儲存實際位元組數;
Enum(‘val1’,’val2’,..) –一個字串物件只能包含其中一個值:val1/val2/null或者’’;最多可包含65536個不同值,內部使用整數標註;
Set(‘val1’,’val2’,..) --一個字串物件可包含0或多個值;最多可包含64個成員,內部使用整數標註;
儘量列宣告為not null,這樣每次處理時不必先檢查其是否為NULL,還可以節約1bit的儲存空間;
如果字串資料列候選值數量有限,應該使用ENUM型別,使用一系列數值儲存,操作速度快;
同時可將IPV4以number型別儲存,字串需要15位元組而現在只需4位元組
呼叫如下函式進行轉換
mysql> SELECT INET_ATON('10.0.5.9');
-> 167773449
mysql> SELECT INET_NTOA(167773449);
-> '10.0.5.9'
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15480802/viewspace-751573/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C基本資料型別小結資料型別
- Mysql支援的資料型別(總結)MySql資料型別
- [Mysql]資料型別MySql資料型別
- MySQL資料型別MySql資料型別
- MYSQL 資料型別MySQL 資料型別
- MySQL 的資料型別MySql資料型別
- MySQL基本資料型別MySql資料型別
- mysql 資料型別TIMESTAMPMySQL 資料型別
- Mysql 資料型別之整數型別MySQL 資料型別
- MySQL基礎之----資料型別篇(常用資料型別)MySql資料型別
- MySQL JSON資料型別操作MySqlJSON資料型別
- 詳解MySQL資料型別MySql資料型別
- MySQL資料型別筆記MySql資料型別筆記
- mysql常見資料型別MySql資料型別
- MySQL資料型別DECIMAL用法MySql資料型別Decimal
- MySQL入門--資料型別MySql資料型別
- mysql 常用的資料型別MySql資料型別
- MySQL 資料型別詳解MySQL 資料型別
- MySQL入門系列:MySQL資料型別MySql資料型別
- Java 資料型別和 MySql 資料型別對應一覽表JavaMySQL 資料型別
- JS 資料型別總結JS資料型別
- 06. MySQL的資料型別MySql資料型別
- 【MySQL】資料型別的基本用法MySql資料型別
- Java 支援的資料型別與 MySQL 支援的資料型別對比Java資料型別MySql
- MYSQL資料庫型別與JAVA型別對應關係MySql資料庫型別Java
- 可變資料型別(mutable)與不可變資料型別(immutable)總結資料型別
- Python的資料型別總結Python資料型別
- Go 的資料型別總結Go資料型別
- sql學習(mysql)(1)資料型別MySql資料型別
- python 與 Mysql 資料型別轉換PythonMySQL 資料型別
- 《MySQL 基礎篇》七:資料型別MySql資料型別
- MySQL資料型別操作(char與varchar)MySql資料型別
- MySQL中資料型別的驗證MySql資料型別
- mysql整數資料型別深入解析MySql資料型別
- js資料型別之基本資料型別和引用資料型別JS資料型別
- 資料型別: 資料型別有哪些?資料型別
- mysql資料庫中decimal資料型別比較大小MySql資料庫Decimal資料型別
- Redis基本資料型別底層資料結構Redis資料型別資料結構
- MySQL 資料型別分類和選擇MySQL 資料型別