Datový typ INT v MySQL

author
4 minutes, 30 seconds Read

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)


Sloupecv1má šíř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

.

Similar Posts

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.