V MySQL můžete vytvářet tabulky pomocí GUI nebo spuštěním SQL kódu. Zde je shrnutí obou metod.
Nyní, když jsme vytvořili naši databázi, pojďme vytvořit nějaké tabulky.
Vytváření tabulek prostřednictvím GUI
Jedním ze způsobů vytvoření tabulky je grafické rozhraní MySQL Workbench. Toto je snadná volba pro ty, kteří preferují grafické uživatelské rozhraní.
I když začnete používat GUI, doporučuji, abyste se seznámili s programovým vytvářením tabulek pomocí CREATE TABLE
prohlášení.
CREATE TABLE
Prohlášení
CREATE TABLE
příkaz dělá přesně tak, jak název napovídá – vytváří tabulku.
Musíte však poskytnout informace o tabulce, kterou má MySQL vytvořit. Například název tabulky, názvy sloupců a jejich datové typy, výchozí hodnoty, omezení atd.
Zde je příklad, který jsme použili na předchozí stránce:
CREATE TABLE Fruit (FruitName VARCHAR(20), DateEntered DATETIME);
Tím se vytvoří tabulka s názvem Fruit
který obsahuje dva sloupce:FruitName
a DateEntered
.
FruitName
sloupec používá datový typ VARCHAR(20)
, což znamená, že přijímá data, která jsou VARCHAR
(řetězec s proměnnou délkou) až 20 znaků dlouhý.
DateEntered
sloupec používá datový typ DATETIME
což znamená, že sloupec přijímá formát DATETIME (datum a čas) v následujícím formátu YYYY-MM-DD HH:MM:SS
.
Můžete určit, že sloupec by měl vždy obsahovat hodnotu (že by neměl být "null"). Chcete-li to provést, zadejte NOT NULL
ve specifikacích tohoto sloupce (příklad níže).
Pokud se pokusíte vložit data, která nejsou ve formátu určeném pro daný sloupec, zobrazí se chyba.
Vytvoření více tabulek
Chcete-li vytvořit více tabulek, jednoduše přidejte CREATE TABLE
pro každou tabulku, kterou potřebujete vytvořit.
CREATE TABLE table_1 (...); CREATE TABLE table_2 (...);
Příklad
Dříve jsme vytvořili prázdnou databázi s názvem „FruitShop“. Ale v té době jsme žádné tabulky nevytvářeli. Upravme skript tak, aby vytvořil databázi a dvě tabulky. Do kódu přidáme další věci.
DROP DATABASE IF EXISTS FruitShop; CREATE DATABASE FruitShop; USE FruitShop; CREATE TABLE Units ( UnitId TINYINT UNSIGNED NOT NULL AUTO_INCREMENT, UnitName VARCHAR(10) NOT NULL, DateEntered DATETIME NOT NULL, DateUpdated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (UnitId) )ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE Fruit ( FruitId SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, FruitName VARCHAR(45) NOT NULL, Inventory SMALLINT UNSIGNED NOT NULL, UnitId TINYINT UNSIGNED NOT NULL, DateEntered DATETIME NOT NULL, DateUpdated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (FruitId), CONSTRAINT fkFruitUnits FOREIGN KEY (UnitId) REFERENCES Units (UnitId) ON DELETE RESTRICT ON UPDATE CASCADE )ENGINE=InnoDB DEFAULT CHARSET=utf8;
Spusťte výše uvedený skript a poté obnovte levý sloupec MySQL Workbench. Měli byste vidět svůj nově vytvořený FruitShop databáze uvedená pod SCHEMAS kartu.
Rozbalte Tabulky node a uvidíte tabulky, které jste právě vytvořili:
Každou tabulku můžete také rozbalit, abyste viděli její sloupce a jakékoli další objekty, které jste pro danou tabulku vytvořili.
Programově zobrazit informace o tabulce
Informace o tabulce můžete zobrazit také programově. To znamená zadáním příkazu SQL pro zobrazení informací, které potřebujete.
V následujícím příkladu nastavíme výchozí databázi na FruitShop
pomocí USE FruitShop
. Poté požádáme MySQL o zobrazení všech tabulek pro výchozí databázi (pomocí SHOW TABLES
):
USE FruitShop; SHOW TABLES;
Strukturu dané tabulky můžete také zjistit pomocí následujícího příkazu (stačí nahradit název tabulky tabulkou, jejíž strukturu potřebujete):
DESCRIBE Fruit;
Zde je výsledek tohoto příkazu v naší databázi: