sql >> Database teknologi >  >> RDS >> Mysql

Typer i MySQL:BigInt(20) vs Int(20)

Se http://dev.mysql.com/doc/ refman/8.0/da/numeric-types.html

  • INT er et fire-byte-signeret heltal.

  • BIGINT er et otte-byte-signeret heltal.

De accepterer hver især ikke flere og ikke færre værdier, end der kan lagres i deres respektive antal bytes. Det betyder 2 værdier i en INT og 2 værdier i en BIGINT .

De 20 i INT(20) og BIGINT(20) betyder næsten ingenting. Det er et tip til skærmbredden. Det har intet at gøre med lagring, eller rækken af ​​værdier, som kolonnen vil acceptere.

Praktisk talt påvirker det kun ZEROFILL mulighed:

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

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

Det er en almindelig kilde til forvirring for MySQL-brugere at se INT(20) og antag, at det er en størrelsesgrænse, noget analogt med CHAR(20) . Dette er ikke tilfældet.



  1. Sådan fjerner du kolonneoverskrifterne, når du sender forespørgselsresultater via e-mail i SQL Server (T-SQL)

  2. Databasevalg til oprettelse af to forbundne tabeller?

  3. Avanceret SQL:CROSS APPLY og OUTER APPLY

  4. Sådan opretter du en krydstabuleringsforespørgsel i designvisning i Access