MySQL INT-datatyp

author
4 minutes, 19 seconds Read

Sammanfattning: I den här handledningen kommer du att lära dig om MySQL INT eller heltalsdatatyp och hur du använder den i din databastabelldesign. Dessutom kommer vi att visa hur du använder attributen visningsbredd och ZEROFILL för en heltalskolumn.

Introduktion till MySQL INT-typ

I MySQL står INT för heltal som är ett heltal. Ett heltal kan skrivas utan en bråkdel, t.ex. 1, 100, 4, -10, och det kan inte vara 1,2, 5/3 osv. Ett heltal kan vara noll, positivt och negativt.

MySQL har stöd för alla standard SQL heltalstyper INTEGER eller INT och SMALLINT. Dessutom tillhandahåller MySQL TINYINT MEDIUMINT och BIGINT som tillägg till SQL-standarden.

MySQL INT datatyp kan vara signerad och osignerad. Följande tabell illustrerar egenskaperna för varje heltalstyp, inklusive lagring i bytes, lägsta värde och högsta värde.

Type Storage Minimum Value Maximum Value
(Bytes) (Signed/Unsigned) (Signed/Unsigned)
TINYINT 1 -128 127
0 255
SMALLINT 2 -32768 32767
0 65535
MEDIUMINT 3 -8388608 8388607
0 16777215
INT 4 -214748483648 2147483647
0 4294967295
BIGINT 8 -9223372036854775808 9223372036854775807
0 18446744073709551615

MySQL INT-datatypen exempel

Vi ska titta på några exempel på hur man använder heltalsdatatypen.

A) Användning av MySQL INT för en kolumn exempel

Då heltalstypen representerar exakta tal, använder man den vanligtvis som primärnyckel i en tabell. Dessutom kan INT-kolonnen ha ett AUTO_INCREMENT attribut.

När du infogar ett NULL-värde eller 0 i INT AUTO_INCREMENT-kolonnen sätts kolonnens värde till nästa sekvensvärde. Observera att sekvensvärdet börjar med 1.

När du infogar ett värde, som inte är NULL eller noll, i kolumnen AUTO_INCREMENT accepterar kolumnen värdet. Dessutom återställs sekvensen till nästa värde för det infogade värdet.

Skapa först en ny tabell som heter items med en heltalskolumn som primärnyckel:

Code language: SQL (Structured Query Language) (sql)

Du kan använda antingen INT eller INTEGER i CREATE TABLE-angivelsen ovan eftersom de är utbytbara. När du infogar en ny rad i tabellen items ökas värdet av kolumnen item_id med 1.

Nästan, följande INSERT-anvisning infogar tre rader i tabellen items.

Code language: SQL (Structured Query Language) (sql)

Förfrågan sedan data från tabellen items med följande SELECT-anvisning:

Code language: SQL (Structured Query Language) (sql)

Efter det infogar du en ny rad vars värde för kolumnen item_id specificeras uttryckligen.

Code language: SQL (Structured Query Language) (sql)

Då det aktuella värdet för kolumnen item_id är 10, återställs ordningen till 11. Om du infogar en ny rad kommer AUTO_INCREMENT-kolumnen att använda 11 som nästa värde.

Code language: SQL (Structured Query Language) (sql)

Förfrågan slutligen om data i items-tabellen igen för att se resultatet.

Code language: SQL (Structured Query Language) (sql)

Notera att AUTO_INCREMENT-kolumnen från och med MySQL 5.1 endast accepterar positiva värden och tillåter inte negativa värden.

B) Använda MySQL INT UNSIGNED exempel

För det första skapar du en tabell som heter classes som har kolumnen total_member med datatypen unsigned heltal:

Code language: SQL (Structured Query Language) (sql)

För det andra infogar du en ny rad i tabellen classes:

Code language: SQL (Structured Query Language) (sql)

Det fungerade som förväntat.

Tredje försöket att infoga ett negativt värde i kolumnen total_member:

Code language: SQL (Structured Query Language) (sql)

MySQL utfärdade följande fel:

Code language: SQL (Structured Query Language) (sql)

MySQL INT med attributet display width

MySQL tillhandahåller ett tillägg som gör det möjligt att ange display width tillsammans med datatypen INT. Visningsbredden är inplastad inom parentes efter nyckelordet INT t.ex. INT(5) anger en INT med en visningsbredd på fem siffror.

Det är viktigt att notera att attributet visningsbredd inte kontrollerar de värdeområden som kolumnen kan lagra. Attributet visningsbredd används vanligtvis av programmen för att formatera de heltaliga värdena. MySQL inkluderar display width-attributet som metadata för den returnerade resultatuppsättningen.

MySQL INT med ZEROFILL-attributet

Inom display width-attributet tillhandahåller MySQL ett icke-standardiserat ZEROFILL-attribut. I det här fallet ersätter MySQL mellanslag med noll. Tänk på följande exempel:

Först skapar du en tabell med namnet zerofill_tests :

Code language: SQL (Structured Query Language) (sql)

För det andra infogar du en ny rad i tabellen zerofill_tests.

Code language: SQL (Structured Query Language) (sql)

För det tredje frågar du efter data från tabellen zerofill_tests .

Code language: SQL (Structured Query Language) (sql)


Kolumnenv1har en visningsbredd på 2 inklusiveZEROFILL.Värdet är 1, därför visas01i utdata. MySQL ersätter det första mellanslaget med 0.

Kolumnen v2 har en visningsbredd på 3 inklusive ZEROFILL. Dess värde är 6 därför ser du 00 som ledande nollor.

Kolumnen v3 har visningsbredden 5 med ZEROFILL, medan dess värde är 9. MySQL fyller därför 0000 i början av talet i utmatningen.

Observera att om du använder ZEROFILL-attributet för en heltalskolumn kommer MySQL automatiskt att lägga till ett UNSIGNED-attribut till kolumnen.

I den här handledningen har du lärt dig hur du använder MySQL:s INT-datatyp för att utforma databastabeller.

  • Har du nytta av den här handledningen?
  • JaNej

Similar Posts

Lämna ett svar

Din e-postadress kommer inte publiceras.