Samenvatting: in deze tutorial leert u over MySQL INT
of integer data type en hoe het te gebruiken in uw database tabel ontwerp. Daarnaast zullen we laten zien hoe je de display breedte en ZEROFILL attributen van een geheel getal kolom te gebruiken.
Inleiding tot MySQL INT type
In MySQL, INT
staat voor het geheel getal dat een geheel getal is. Een geheel getal kan worden geschreven zonder een breukcomponent, bijvoorbeeld 1, 100, 4, -10, en het kan niet 1,2, 5/3, enz. zijn. Een geheel getal kan nul, positief en negatief zijn.
MySQL ondersteunt alle standaard SQL integer types INTEGER
of INT
en SMALLINT
. Daarnaast biedt MySQL TINYINT
MEDIUMINT
, en BIGINT
als uitbreidingen op de SQL-standaard.
MySQL INT
datatype kan ondertekend en niet ondertekend zijn. De volgende tabel illustreert de kenmerken van elk integer type, inclusief opslag in bytes, minimumwaarde, en maximumwaarde.
Type | Opslag | Minimale waarde | Maximale waarde |
---|---|---|---|
(Bytes) | (Getekend/Ongetekend) | (Getekend/Ongetekend) | |
TINYINT | 1 | -128 | 127 |
0 | 255 | ||
SMALLINT | 2 | -32768 | 32767 |
0 | 65535 | ||
MEDIUMINT | 3 | -8388608 | 8388607 |
0 | 16777215 | ||
INT | 4 | -2147483648 | 2147483647 |
0 | 4294967295 | ||
BIGINT | 8 | -9223372036854775808 | 9223372036854775807 |
0 | 18446744073709551615 |
MySQL INT data type voorbeelden
Laten we eens kijken naar enkele voorbeelden van het gebruik van het integer data type.
A) MySQL INT voor een kolom gebruiken
Omdat het integer type exacte getallen weergeeft, gebruikt u het meestal als de primaire sleutel van een tabel. Bovendien kan de INT
-kolom een AUTO_INCREMENT
attribuut hebben.
Wanneer u een NULL
-waarde of 0 in de INT AUTO_INCREMENT
-kolom invoegt, wordt de waarde van de kolom ingesteld op de volgende reekswaarde. Merk op dat de sequentiewaarde begint met 1.
Wanneer u een waarde, die geen NULL
of nul is, in de kolom AUTO_INCREMENT
invoegt, aanvaardt de kolom de waarde. Bovendien wordt de reeks gereset naar de volgende waarde van de ingevoegde waarde.
Maak eerst een nieuwe tabel met de naam items
met een integer kolom als primaire sleutel:
Code language: SQL (Structured Query Language) (sql)
U kunt INT
of INTEGER
gebruiken in het bovenstaande CREATE TABLE
statement, omdat ze onderling uitwisselbaar zijn. Telkens wanneer u een nieuwe rij invoegt in de tabel items
, wordt de waarde van de kolom item_id
verhoogd met 1.
Naar aanleiding van het volgende INSERT
statement worden drie rijen ingevoegd in de tabel items
.
Code language: SQL (Structured Query Language) (sql)
Vraag vervolgens gegevens op uit de tabel items
met behulp van de volgende SELECT
verklaring:
Code language: SQL (Structured Query Language) (sql)
Voeg daarna een nieuwe rij in waarvan de waarde van de kolom item_id
expliciet wordt opgegeven.
Code language: SQL (Structured Query Language) (sql)
Omdat de huidige waarde van de kolom item_id
10 is, wordt de reeks teruggezet op 11. Als u een nieuwe rij invoegt, zal de AUTO_INCREMENT
kolom 11 gebruiken als de volgende waarde.
Code language: SQL (Structured Query Language) (sql)
Finitief, vraag de gegevens van de items
tabel opnieuw op om het resultaat te zien.
Code language: SQL (Structured Query Language) (sql)
Merk op dat vanaf MySQL 5.1, de AUTO_INCREMENT
kolom alleen positieve waarden accepteert en geen negatieve waarden toestaat.
B) Met behulp van MySQL INT UNSIGNED voorbeeld
Maak eerst een tabel genaamd classes
die de kolom total_member
met het gegevenstype unsigned integer heeft:
Code language: SQL (Structured Query Language) (sql)
Seconde, voeg een nieuwe rij in de tabel classes
:
Code language: SQL (Structured Query Language) (sql)
Het werkte zoals verwacht.
Derde, poging om een negatieve waarde in te voegen in de total_member
kolom:
Code language: SQL (Structured Query Language) (sql)
MySQL gaf de volgende foutmelding:
Code language: SQL (Structured Query Language) (sql)
MySQL INT met het display width attribuut
MySQL biedt een uitbreiding waarmee u de display width samen met het INT
datatype kunt specificeren. De display width wordt tussen haakjes achter het INT
keyword geplaatst, bijvoorbeeld INT(5)
specificeert een INT
met een display width van vijf cijfers.
Het is belangrijk op te merken dat het display width attribuut niet de waardebereiken controleert die de kolom kan opslaan. Het display width attribuut wordt typisch gebruikt door de applicaties om de integer waarden te formatteren. MySQL neemt het display width attribuut op als de metadata van de geretourneerde result set.
MySQL INT met het ZEROFILL attribuut
In aanvulling op het display width attribuut, biedt MySQL een niet-standaard ZEROFILL
attribuut. In dit geval vervangt MySQL spaties door nul. Beschouw het volgende voorbeeld.
Eerst, maak een tabel met de naam zerofill_tests
:
Code language: SQL (Structured Query Language) (sql)
Tweede, voeg een nieuwe rij in de zerofill_tests
tabel.
Code language: SQL (Structured Query Language) (sql)
Derde, query gegevens uit de zerofill_tests
tabel.
Code language: SQL (Structured Query Language) (sql)
Dev1
kolom heeft een display breedte 2 met inbegrip vanZEROFILL.
De waarde ervan is 1, dus je ziet01
in de uitvoer. MySQL vervangt de eerste spatie door 0.
De v2 kolom heeft een display met 3 inclusief ZEROFILL
. De waarde is 6, dus je ziet 00
als de eerste nullen.
De v3 kolom heeft een display breedte 5 met ZEROFILL
, terwijl de waarde 9 is, dus MySQL pads 0000
aan het begin van het nummer in de output.
Noteer op dat als u ZEROFILL
attribuut gebruikt voor een geheel getal kolom, MySQL automatisch een UNSIGNED
attribuut zal toevoegen aan de kolom.
In deze tutorial, heb je geleerd hoe je het MySQL INT
datatype te gebruiken voor het ontwerpen van database tabellen.
- Was deze tutorial nuttig?
- JaNee