sql >> Database >  >> RDS >> Mysql

Typen in MySQL:BigInt(20) vs Int(20)

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

  • INT is een vier-byte geheel getal met teken.

  • BIGINT is een integer van acht bytes met teken.

Ze accepteren elk niet meer en niet minder waarden dan kan worden opgeslagen in hun respectieve aantal bytes. Dat betekent 2 waarden in een INT en 2 waarden in een BIGINT .

De 20 in INT(20) en BIGINT(20) betekent bijna niets. Het is een hint voor de weergavebreedte. Het heeft niets te maken met opslag, noch met het waardenbereik dat de kolom accepteert.

In de praktijk heeft het alleen invloed op de ZEROFILL optie:

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

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

Het is een veelvoorkomende bron van verwarring voor MySQL-gebruikers om INT(20) . te zien en neem aan dat het een maximale grootte is, iets analoog aan CHAR(20) . Dit is niet het geval.



  1. Hoe kan ik de ORDER BY RAND()-functie van MySQL optimaliseren?

  2. Vergelijking van hoge beschikbaarheid van database - MySQL / MariaDB-replicatie versus Oracle Data Guard

  3. Definieer de stappen voor de SQL Server-cursor - SQL Server / TSQL-zelfstudie

  4. Verschil van twee datums in sql-server