sql >> Databáze >  >> RDS >> Mysql

Typy v MySQL:BigInt (20) vs Int (20)

Viz http://dev.mysql.com/doc/ refman/8.0/en/numeric-types.html

  • INT je čtyřbajtové celé číslo se znaménkem.

  • BIGINT je osmibajtové celé číslo se znaménkem.

Každý z nich nepřijímá více a méně hodnot, než lze uložit do jejich příslušného počtu bajtů. To znamená 2 hodnoty v INT a 2 hodnoty v BIGINT .

20 v INT(20) a BIGINT(20) skoro nic neznamená. Je to nápověda pro šířku displeje. Nemá to nic společného s úložištěm ani s rozsahem hodnot, který sloupec přijme.

Prakticky to ovlivňuje pouze ZEROFILL možnost:

CREATE TABLE foo ( bar INT(20) ZEROFILL );
INSERT INTO foo (bar) VALUES (1234);
SELECT bar from foo;

+----------------------+
| bar                  |
+----------------------+
| 00000000000000001234 |
+----------------------+

Pro uživatele MySQL je běžným zdrojem zmatku, když vidí INT(20) a předpokládejme, že jde o limit velikosti, něco podobného jako CHAR(20) . Není tomu tak.



  1. Základní příkazy SQL:Jak psát jednoduché dotazy s příklady

  2. Úvod do datového modelu ER

  3. Oznámení o změně s SQL Server 2008

  4. 1114 (HY000):Tabulka je plná