sql >> Databasteknik >  >> RDS >> Mysql

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

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

  • INT är ett heltal med fyra byte tecken.

  • BIGINT är ett heltal med tecken på åtta byte.

Var och en accepterar inte fler och inte färre värden än vad som kan lagras i sina respektive antal byte. Det betyder 2 värden i en INT och 2 värden i en BIGINT .

De 20 i INT(20) och BIGINT(20) betyder nästan ingenting. Det är ett tips om visningsbredd. Det har inget med lagring att göra, inte heller det värdeintervall som kolumnen accepterar.

Praktiskt taget påverkar det bara ZEROFILL alternativ:

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

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

Det är en vanlig källa till förvirring för MySQL-användare att se INT(20) och anta att det är en storleksgräns, något som är analogt med CHAR(20) . Så är inte fallet.



  1. Hur man returnerar en delsträng från en sträng i SQL Server med SUBSTRING()-funktionen

  2. Hur man schemalägger databassäkerhetskopior med ClusterControl

  3. PostgreSQL Skapa schema

  4. MariaDB JSON_LENGTH() Förklarad