架構師_程序員

 找回密碼
 注冊[Register]

QQ登錄

只需一步,快速開始

查看: 230|回復: 0
打印 上一主題 下一主題

[資料] mysql中bigint、int、mediumint、smallint 和 tinyint的取值范圍

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2020-5-17 21:45:54 | 只看該作者
mysql數據庫設計,其中,對于數據性能優化,字段類型考慮很重要,搜集了些資料,整理分享出來,這篇為有關mysql整型bigint、int、mediumint、smallint 和 tinyint的語法介紹,如下:
1、bigint

從 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型數據(所有數字),無符號的范圍是0到

18446744073709551615。一位為 8 個字節。

2、int

一個正常大小整數。有符號的范圍是-2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型數據(所有數字),無符號的范圍是0到4294967295。一位大小為 4 個字節。
int 的 SQL-92 同義詞為 integer。

3、mediumint

一個中等大小整數,有符號的范圍是-8388608到8388607,無符號的范圍是0到16777215。 一位大小為3個字節。

4、smallint

一個小整數。有符號的范圍是-2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型數據,無符號的范圍是0到65535。一位大小為 2 個字節。MySQL提供的功能已經綽綽有余,而且由于MySQL是開放源碼軟件,因此可以大大降低總體擁有成本。

5、tinyint

有符號的范圍是-128 - 127,無符號的范圍是 從 0 到 255 的整型數據。一位大小為 1 字節。

注意,所有算術運算用有符號的BIGINT或DOUBLE值完成,因此你不應該使用大于9223372036854775807(63位)的有符號大整數,除了位函數!注意,當兩個參數是INTEGER值時,-、+和*將使用BIGINT運算!這意味著如果你乘2個大整數(或來自于返回整數的函數),如果結果大于9223372036854775807,你可以得到意外的結果。一個浮點數字,不能是無符號的,對一個單精度浮點數,其精度可以是<=24,對一個雙精度浮點數,是在25 和53之間,這些類型如FLOAT和DOUBLE類型馬上在下面描述。FLOAT(X)有對應的FLOAT和DOUBLE相同的范圍,但是顯示尺寸和小數位數是未定義的。在MySQL3.23中,這是一個真正的浮點值。在更早的MySQL版本中,FLOAT(precision)總是有2位小數。該句法為了ODBC兼容性而提供。



MySQL中各數據類型的取值范圍

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,0,1.175494351E-38 - 3.402823466E+38
DOUBLE 或 DOUBLE PRECISION 或 REAL
-1.7976931348623157E+308 - -2.2250738585072014E-308,0,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 - 2037年的某天(具體是哪天我也不知道,呵呵)
TIME
-838:59:59' to 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個成員




上一篇:PHP 換行符 PHP_EOL
下一篇:linux 的更新 yum update 命令
帖子永久地址: 

架構師_程序員 - 論壇版權1、本主題所有言論和圖片純屬會員個人意見,與本論壇立場無關
2、本站所有主題由該帖子作者發表,該帖子作者與架構師_程序員享有帖子相關版權
3、其他單位或個人使用、轉載或引用本文時必須同時征得該帖子作者和架構師_程序員的同意
4、帖子作者須承擔一切因本文發表而直接或間接導致的民事或刑事法律責任
5、本帖部分內容轉載自其它媒體,但并不代表本站贊同其觀點和對其真實性負責
6、如本帖侵犯到任何版權問題,請立即告知本站,本站將及時予與刪除并致以最深的歉意
7、架構師_程序員管理員和版主有權不事先通知發貼者而刪除本文

碼農網,只發表在實踐過程中,遇到的技術難題,不誤導他人。
您需要登錄后才可以回帖 登錄 | 注冊[Register]

本版積分規則

免責聲明:
碼農網所發布的一切軟件、編程資料或者文章僅限用于學習和研究目的;不得將上述內容用于商業或者非法用途,否則,一切后果請用戶自負。本站信息來自網絡,版權爭議與本站無關。您必須在下載后的24個小時之內,從您的電腦中徹底刪除上述內容。如果您喜歡該程序,請支持正版軟件,購買注冊,得到更好的正版服務。如有侵權請郵件與我們聯系處理。

Mail To:help@itsvse.com

QQ|Archiver|手機版|小黑屋|架構師 ( 魯ICP備14021824號-2 )|網站地圖

GMT+8, 2020-6-4 10:10

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回復 返回頂部 返回列表
捕鸟达人老版