Souhrn: v tomto kurzu se dozvíte o datovém typu INT v MySQL INT
neboli o celých číslech a o tom, jak je používat při návrhu databázových tabulek. Kromě toho si ukážeme, jak používat atributy šířka zobrazení a ZEROFILL u celočíselného sloupce.
Úvod do MySQL typu INT
V MySQL INT
označuje celé číslo, které je celým číslem. Celé číslo může být zapsáno bez zlomkové složky, např. 1, 100, 4, -10, a nemůže být 1,2, 5/3 atd. Celé číslo může být nulové, kladné i záporné.
MySQL podporuje všechny standardní typy celých čísel SQL INTEGER
nebo INT
a SMALLINT
. Kromě toho MySQL poskytuje TINYINT
MEDIUMINT
a BIGINT
jako rozšíření standardu SQL.
Datový typ MySQL INT
může být se znaménkem a bez znaménka. Následující tabulka znázorňuje vlastnosti jednotlivých celočíselných typů včetně uložení v bajtech, minimální hodnoty a maximální hodnoty.
Typ | Uložení | Minimální hodnota | Maximální hodnota |
---|---|---|---|
(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 | -2147483648 | 2147483647 |
0 | 4294967295 | ||
BIGINT | 8 | -9223372036854775808 | 9223372036854775807 |
0 | 18446744073709551615 |
Příklady datového typu INT v MySQL
Podívejme se na několik příkladů použití datového typu integer.
A) Použití MySQL INT pro příklad sloupce
Protože typ integer reprezentuje přesná čísla, obvykle jej používáte jako primární klíč tabulky. Kromě toho může mít sloupec INT
atribut AUTO_INCREMENT
.
Pokud do sloupce INT AUTO_INCREMENT
vložíte hodnotu NULL
nebo 0, hodnota sloupce se nastaví na další pořadovou hodnotu. Všimněte si, že hodnota sekvence začíná číslem 1.
Když do sloupce AUTO_INCREMENT
vložíte hodnotu, která není NULL
nebo nula, sloupec tuto hodnotu přijme. Navíc se sekvence vynuluje na další hodnotu vložené hodnoty.
Nejprve vytvořte novou tabulku s názvem items
se sloupcem celých čísel jako primárním klíčem:
Code language: SQL (Structured Query Language) (sql)
Ve výše uvedeném příkazu CREATE TABLE
můžete použít buď INT
, nebo INTEGER
, protože jsou zaměnitelné. Při každém vložení nového řádku do tabulky items
se hodnota sloupce item_id
zvýší o 1.
Následující příkaz INSERT
vloží do tabulky items
tři řádky.
Code language: SQL (Structured Query Language) (sql)
Poté se dotazujte na data z tabulky items
pomocí následujícího příkazu SELECT
:
Code language: SQL (Structured Query Language) (sql)
Poté vložte nový řádek, jehož hodnota sloupce item_id
je zadána explicitně.
Code language: SQL (Structured Query Language) (sql)
Protože aktuální hodnota sloupce item_id
je 10, pořadí se vynuluje na 11.
Code language: SQL (Structured Query Language) (sql)
Poté vložte nový řádek, jehož hodnota je zadána explicitně. Pokud vložíte nový řádek, sloupec AUTO_INCREMENT
použije jako další hodnotu 11.
Code language: SQL (Structured Query Language) (sql)
Nakonec se znovu zeptejte na data tabulky items
, abyste viděli výsledek.
Code language: SQL (Structured Query Language) (sql)
Všimněte si, že od verze MySQL 5.1 sloupec AUTO_INCREMENT
přijímá pouze kladné hodnoty a nepřipouští záporné hodnoty.
B) Použití příkladu MySQL INT UNSIGNED
Nejprve vytvořte tabulku classes
, která má sloupec total_member
s datovým typem unsigned integer:
Code language: SQL (Structured Query Language) (sql)
Druhé vložte do tabulky classes
nový řádek:
Code language: SQL (Structured Query Language) (sql)
Fungovalo to podle očekávání.
Zatřetí, pokus o vložení záporné hodnoty do sloupce total_member
:
Code language: SQL (Structured Query Language) (sql)
MySQL vydala následující chybu:
Code language: SQL (Structured Query Language) (sql)
MySQL INT s atributem display width
MySQL poskytuje rozšíření, které umožňuje zadat šířku zobrazení spolu s datovým typem INT
. Šířka zobrazení je zabalena do závorek za klíčovým slovem INT
, např. INT(5)
specifikuje INT
se šířkou zobrazení pět číslic.
Důležité je poznamenat, že atribut šířky zobrazení neovlivňuje rozsahy hodnot, které může sloupec uchovávat. Atribut šířky zobrazení obvykle používají aplikace k formátování celočíselných hodnot. MySQL obsahuje atribut šířky zobrazení jako metadata vrácené sady výsledků.
MySQL INT s atributem ZEROFILL
Kromě atributu šířky zobrazení poskytuje MySQL nestandardní atribut ZEROFILL
. V tomto případě MySQL nahrazuje mezery nulou. Uvažujme následující příklad.
Nejprve vytvořte tabulku s názvem zerofill_tests
:
Code language: SQL (Structured Query Language) (sql)
Druhé vložte do tabulky zerofill_tests
nový řádek.
Code language: SQL (Structured Query Language) (sql)
Třetí dotaz na data z tabulky zerofill_tests
.
Code language: SQL (Structured Query Language) (sql)
Sloupecv1
má šířku zobrazení 2 včetněZEROFILL.
Jeho hodnota je 1, proto se ve výstupu zobrazí01
. MySQL nahradí první mezeru číslem 0.
Sloupec v2 má zobrazení s 3 včetně ZEROFILL
. Jeho hodnota je 6, proto vidíte 00
jako počáteční nuly.
Sloupec v3 má šířku zobrazení 5 s ZEROFILL
, přičemž jeho hodnota je 9, proto MySQL na začátek čísla ve výstupu doplní 0000
.
Poznamenejte, že pokud použijete atribut ZEROFILL
pro sloupec s celým číslem, MySQL automaticky přidá ke sloupci atribut UNSIGNED
.
V tomto kurzu jste se naučili používat datový typ MySQL INT
pro návrh databázových tabulek.
- Pomohl vám tento kurz?
- AnoNe
.