Každý sloupec v databázové tabulce musí mít svůj název a datový typ. V MySQL máme tři druhy základních datových typů a to čísla, řetězce, datum a čas. V minulém tutorialu jsme si vytvořili základní tabulku, tu si nyní naplníme obsahem a potom si vypíšeme data příkazem „SELECT“.
Datové typy – řetězce
Většinu dat, kterou budete ukládat, bude ve formátu řetězce. Tento seznam popisuje běžné datové typy řetězců v MySQL. Pole datového typu řetězce může obsahovat libovolné abecední a číselné znaky pro definování malého a velkého textu, jako je jméno, adresa, popis atd. Nebo i binární obsah, jako je obrázek nebo zvukový soubor.
Datový typ | Popis |
---|---|
CHAR(M) | Řetězec s pevnou délkou mezi 1 a 255 znaky (například CHAR(5)), doplněný zprava mezerami na zadanou délku při uložení. Definování délky není povinné, ale výchozí hodnota je 1. |
VARCHAR(M) | Řetězec s proměnnou délkou o délce 1 až 255 znaků. Například VARCHAR(25). Při vytváření pole VARCHAR musíte definovat délku. |
BLOB nebo TEXT | Pole s maximální délkou 65535 znaků. Objekty BLOB jsou „binární velké objekty“ a používají se k ukládání velkého množství binárních dat, jako jsou obrázky nebo jiné typy souborů. Pole definovaná jako TEXT také obsahují velké množství dat. Rozdíl mezi nimi je v tom, že řazení a porovnání uložených dat rozlišují malá a velká písmena u objektů BLOB a nerozlišují malá a velká písmena v polích TEXT. Pomocí BLOB nebo TEXT nezadáte délku. |
TINYBLOB nebo TINYTEXT | Sloupec BLOB nebo TEXT s maximální délkou 255 znaků. Pomocí TINYBLOB nebo TINYTEXT nezadáváte délku. |
MEDIUMBLOB nebo MEDIUMTEXT | Sloupec BLOB nebo TEXT s maximální délkou 16777215 znaků. Pomocí MEDIUMBLOB nebo MEDIUMTEXT nezadáváte délku. |
LONGBLOB nebo LONGTEXT | Sloupec BLOB nebo TEXT s maximální délkou 4294967295 znaků. Pomocí LONGBLOB nebo LONGTEXT nezadáváte délku. |
ENUM | Výčet, což je módní výraz pro seznam. Při definování ENUM vytváříte seznam položek, ze kterých je třeba vybrat hodnotu (nebo může být NULL). Pokud byste například chtěli, aby vaše pole obsahovalo „A“ nebo „B“ nebo „C“, definovali byste svůj ENUM jako ENUM (‚A‘, ‚B‘, ‚C‘) a pouze tyto hodnoty (nebo NULL) mohl někdy zalidnit to pole. |
Datové typy – čísla
MySQL používá všechny standardní ANSI SQL číselné datové typy. Pole typu číselných dat ukládá celá čísla, jako je ID, bezpečnostní čísla, zlomkové čísla jako je cena, CGPA a další. Více je popsané níže:
Datový typ | Popis |
---|---|
INT | Celé číslo normální velikosti, které může být se znaménkem nebo bez znaménka. Pokud je podepsáno, je povolený rozsah od -2147483648 do 2147483647. Pokud není podepsán, je povolený rozsah od 0 do 4294967295. Můžete zadat šířku až 11 číslic. |
TINYINT | Velmi malé celé číslo, které může být se znaménkem nebo bez znaménka. Pokud je podepsáno, je povolený rozsah od -128 do 127. Pokud není podepsán, je povolený rozsah od 0 do 255. Můžete zadat šířku až 4 číslic. |
SMALLINT | Malé celé číslo, které může být se znaménkem nebo bez znaménka. Pokud je podepsáno, je povolený rozsah od -32768 do 32767. Pokud není podepsán, je povolený rozsah od 0 do 65535. Můžete zadat šířku až 5 číslic. |
MEDIUMINT | Středně velké celé číslo, které může být se znaménkem nebo bez znaménka. Pokud je podepsáno, je povolený rozsah od -8388608 do 8388607. Pokud není podepsán, je povolený rozsah od 0 do 16777215. Můžete zadat šířku až 9 číslic. |
BIGINT | Velké celé číslo, které může být se znaménkem nebo bez znaménka. Pokud je podepsáno, je povolený rozsah od -9223372036854775808 do 9223372036854775807. Pokud není podepsán, je povolený rozsah od 0 do 18446744073709551615. Můžete zadat šířku až 2 číslic. |
FLOAT(M,D) | Číslo s plovoucí desetinnou čárkou, které nemůže být bez znaménka. Můžete definovat délku zobrazení (M) a počet desetinných míst (D). Toto není vyžadováno a výchozí hodnota bude 10,2, kde 2 je počet desetinných míst a 10 je celkový počet číslic (včetně desetinných míst). Desetinná přesnost může dosáhnout 24 míst pro FLOAT. |
DOUBLE(M,D) | Číslo s plovoucí desetinnou čárkou s dvojitou přesností, které nelze oddělit. Můžete definovat délku zobrazení (M) a počet desetinných míst (D). Toto není vyžadováno a výchozí hodnota bude 16,4, kde 4 je počet desetinných míst. Desetinná přesnost může dosahovat až 53 míst za DVOJNÁSOBEK. REAL je synonymem pro DOUBLE. |
DECIMAL(M,D) | Rozbalené číslo s pohyblivou řádovou čárkou, které nelze zrušit. V rozbalených desítkách odpovídá každé desetinné místo jednomu bajtu. Je nutné definovat délku zobrazení (M) a počet desetinných míst (D). NUMERIC je synonymem pro DECIMAL. |
Datové typy – čas a datum
Tento datový typ se používá k ukládání hodnot souvisejících s datem a časem. Pole typu datum a čas může ukládat hodnoty data, času, data a času, roku a časového razítka. Pokud jsou pro hodnotu pole datum a čas zadána neplatná data, bude vložena hodnota NULL. Různé datové typy pro datum a čas jsou popsány níže.
Datový typ | Popis |
---|---|
DATE | Datum ve formátu RRRR-MM-DD mezi 1000-01-01 a 9999-12-31. Například 30. prosinec 1973 bude uložen jako 1973-12-30. |
DATETIME | Kombinace data a času ve formátu YYYY-MM-DD HH:MM:SS, mezi 1000-01-01 00:00:00 a 9999-12-31 23:59:59. Například 3:30 odpoledne 30. prosince 1973 bude uloženo jako 1973-12-30 15:30:00. |
TIMESTAMP | časové razítko mezi půlnocí, 1. lednem 1970 a někdy v roce 2037. Vypadá to jako předchozí formát DATETIME, pouze bez pomlček mezi čísly; 3:30 odpoledne 30. prosince 1973 bude uloženo jako 19731230153000 (RRRRMMDDHHMMSS). |
TIME | Ukládá čas ve formátu HH:MM:SS. |
YEAR(M) | Ukládá rok ve 2místném nebo 4místném formátu. Pokud je délka zadána jako 2 (například YEAR(2)), YEAR může být mezi 1970 až 2069 (70 až 69). Pokud je délka zadána jako 4, pak YEAR může být 1901 až 2155. Výchozí délka je 4. |
Naplnění tabulky „INSERT INTO“
Teď když znáte základní datové typy, se můžeme podívat na naší tabulku vytvořenou v databázy „doghouse“. Tabulku si naplníme obsahem a budeme pomocí příkazu „SELECT“ trénovat výpis dat. Spustíme si tedy MySQL Workbench a označíme si klikem naší databázy. Databáze se nám označí tučně. Protože budeme tvořit databázy psů, vložíme informace o našich pejskách ID, Jméno, Rasu, Město a Věk. ID nám bude tvořit primární klíč, každá tabulka by měla mít sloupec který nám bude jednoznačným způsobem charakterizovat záznamy. Tento index nám pomůže v tom, abychom mohli v budoucnu i filtrovat podle pořadí. Pomocí klíče vedle názvu tabulky si vybereme detail, kde uvidíme jednotlivé sloupce naší tabulky. Sloupec ID si označíme jako PK (PRIMARY KEY) NN (NOT NULL) a potvrdíme „Apply“. Sloupce můžou běžně obsahovat hodnoty NULL. Omezení NOT NULL nám vynucuje, aby sloupec nepřijímal hodnoty NULL. Pole tedy bude muset vždy obsahovat hodnotu, což znamená, že nebudeme moci vložit nový záznam nebo aktualizovat záznam bez přidání hodnoty do tohoto pole.
INSERT INTO tab_dogs (dog_id, dogName, dogBreed, dogCity, dogAge)
VALUES ('1', 'Darcy', 'Bišonek', 'Praha', '1');
Nyní máme základní data v tabulce nahrané a může přejít k výpu dat. Data lze vypsat pomocí příkazu „SELECT“ a to z jedné i více tabulek najednou. To si ukážeme na jednoduchém příkladu níže.
Získávání dat pomocí příkazu „SELECT FROM“
Pomocí příkazu „SELECT“ můžeme zobrazovat sloupce z tabulky, řadit zobrazené řádky podle jednoho nebo více sloupců, zobrazovat jen některé řádky podle určených kritérií, spojovat záznamy ze dvou nebo více tabulek, počítač jednoduché součty a souhrny a vytvářet sloučení nebo průniky záznamů. Proto abychom si vypsali data z naší tabulky „tab_dogs“ použijeme příkaz níže. (*) nám říká že chceme vybrat všechny záznamy (sloupce) z tabulky „tab_dogs“.
SELECT * FROM tab_dogs;