Összefoglaló: ebben a bemutatóban a MySQL INT
vagy integer adattípusról és annak használatáról fogsz tanulni az adatbázis táblázatok tervezésében. Ezenkívül megmutatjuk, hogyan használhatja egy egész szám oszlop megjelenítési szélességét és ZEROFILL attribútumait.
Bevezetés a MySQL INT típusba
A MySQL-ben a INT
az egész számot jelentő egész számot jelenti. Egész számot tört összetevő nélkül lehet írni, pl. 1, 100, 4, -10, és nem lehet 1,2, 5/3 stb. Az egész szám lehet nulla, pozitív és negatív.
A MySQL támogatja az összes szabványos SQL egész szám típust INTEGER
vagy INT
és SMALLINT
. Ezenkívül a MySQL az SQL-szabvány kiterjesztéseként a TINYINT
MEDIUMINT
és BIGINT
típusokat is biztosítja.
A MySQL INT
adattípusa lehet előjeles és előjel nélküli. A következő táblázat szemlélteti az egyes egész számtípusok jellemzőit, beleértve a bájtokban való tárolást, a minimális és a maximális értéket.
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 adattípus példák
Nézzünk néhány példát az integer adattípus használatára.
A) A MySQL INT használata egy oszlop példájaként
Mivel az integer típus pontos számokat reprezentál, általában egy táblázat elsődleges kulcsaként használjuk. Ezenkívül a INT
oszlopnak lehet AUTO_INCREMENT
attribútuma.
Amikor a INT AUTO_INCREMENT
oszlopba NULL
értéket vagy 0-t szúr be, az oszlop értéke a következő sorszámértékre áll be. Vegye észre, hogy a sorrendérték 1-gyel kezdődik.
Ha a AUTO_INCREMENT
oszlopba olyan értéket illeszt be, amely nem NULL
vagy nulla, az oszlop elfogadja az értéket. Ezenkívül a szekvencia a beillesztett értéket követő értékre áll vissza.
Először hozzon létre egy új, items
nevű táblát, amelynek elsődleges kulcsa egy egész szám oszlop:
Code language: SQL (Structured Query Language) (sql)
A fenti CREATE TABLE
utasításban használhatja a INT
vagy a INTEGER
értéket, mivel ezek felcserélhetők. Valahányszor új sort szúr be a items
táblába, a item_id
oszlop értéke 1-gyel nő.
A következő INSERT
utasítás három sort szúr be a items
táblába.
Code language: SQL (Structured Query Language) (sql)
Ezután a következő SELECT
utasítással lekérdezünk adatokat a items
táblából:
Code language: SQL (Structured Query Language) (sql)
Ezután beszúrunk egy új sort, amelynek a item_id
oszlop értékét kifejezetten megadjuk.
Code language: SQL (Structured Query Language) (sql)
Mivel a item_id
oszlop jelenlegi értéke 10, a sorrend visszaáll 11-re. Ha új sort illesztünk be, a AUTO_INCREMENT
oszlop a 11-es értéket fogja használni következő értékként.
Code language: SQL (Structured Query Language) (sql)
Végül ismét lekérdezzük a items
tábla adatait, hogy lássuk az eredményt.
Code language: SQL (Structured Query Language) (sql)
Megjegyezzük, hogy a MySQL 5.1-től kezdve a AUTO_INCREMENT
oszlop csak pozitív értékeket fogad el, negatív értékeket nem enged.
B) A MySQL INT UNSIGNED példa
Először hozzon létre egy classes
nevű táblát, amelynek total_member
oszlopa előjel nélküli egész szám adattípusú:
Code language: SQL (Structured Query Language) (sql)
Második lépésként szúrjon be egy új sort a classes
táblába:
Code language: SQL (Structured Query Language) (sql)
Ez a várt módon működött.
Harmadszor, kísérlet negatív érték beszúrására a total_member
oszlopba:
Code language: SQL (Structured Query Language) (sql)
MySQL a következő hibát adta ki:
Code language: SQL (Structured Query Language) (sql)
MySQL INT a display width attribútummal
MySQL olyan kiterjesztést biztosít, amely lehetővé teszi a INT
adattípussal együtt a display width megadását. A megjelenítési szélesség a INT
kulcsszót követő zárójelekbe van csomagolva, pl. a INT(5)
egy INT
-t ad meg, amelynek megjelenítési szélessége öt számjegy.
Fontos megjegyezni, hogy a megjelenítési szélesség attribútum nem szabályozza az oszlop által tárolható értéktartományokat. A display width attribútumot jellemzően az alkalmazások használják az egészértékű értékek formázására. A MySQL a display width attribútumot a visszaküldött eredményhalmaz metaadataként tartalmazza.
MySQL INT a ZEROFILL attribútummal
A display width attribútumon kívül a MySQL egy nem szabványos ZEROFILL
attribútumot is biztosít. Ebben az esetben a MySQL a szóközöket nullával helyettesíti. Tekintsük a következő példát.
Először hozzon létre egy zerofill_tests
nevű táblát :
Code language: SQL (Structured Query Language) (sql)
Másodszor, szúrjon be egy új sort a zerofill_tests
táblába.
Code language: SQL (Structured Query Language) (sql)
Harmadszor, kérjen le adatokat a zerofill_tests
táblából.
Code language: SQL (Structured Query Language) (sql)
Av1
oszlop megjelenítési szélessége 2, beleértveZEROFILL.
Az értéke 1, ezért a kimeneten01
látható. A MySQL az első szóközt 0-val helyettesíti.
A v2 oszlop megjelenítési szélessége 3, beleértve ZEROFILL
. Az értéke 6, ezért 00
látja a vezető nullákat.
A v3 oszlop megjelenítési szélessége 5 a ZEROFILL
-val, míg az értéke 9, ezért a MySQL a kimeneten a szám elejére 0000
betétet tesz.
Megjegyezzük, hogy ha ZEROFILL
attribútumot használunk egy egész szám oszlophoz, a MySQL automatikusan hozzáad egy UNSIGNED
attribútumot az oszlophoz.
Ezzel a bemutatóval megtanultuk, hogyan használhatjuk a MySQL INT
adattípusát adatbázis táblák tervezéséhez.
- Hasznos volt ez a bemutató?
- IgenNem