basics mysql foreign key constraint with examples
Tento výukový program vysvětluje základy omezení MySQL FOREIGN KEY, jako je jeho syntaxe, jak jej přidat, deklarovat, zrušit a změnit pomocí příkladů:
Zjednodušeně řečeno, FOREIGN KEY se používá k propojení dvou nebo více tabulek v MySQL.
Aby bylo možné dotazovat a aktualizovat různé typy dat v různých časových okamžicích, je třeba připojit tabulky MySQL. Proto je nezbytně nutné mít spojovací bod mezi 2 tabulkami.
V tomto kurzu se budeme zabývat různými způsoby použití cizích klíčů a jak je možné je deklarovat a změnit a jaká omezení má na celkovou strukturu tabulky.
Co se naučíte:
ZAHRANIČNÍ KLÍČ MySQL
Syntax:
CONSTRAINT {constraintName} FOREIGN KEY (referringColumnName) REFERENCES {referredTable}({referredColumn}) ON UPDATE {reference-option} ON DELETE {reference-option}
Nahoře je syntaxe používaná při zadávání FOREIGN KEY proti tabulce při vytváření tabulky nebo s Příkaz ALTER TABLE.
Pojďme pochopit různé komponenty syntaxe:
- jméno konstanta: Toto je symbolický název, který chceme definovat pro zadané omezení FK. Pokud je toto přeskočeno, pak MySQL engine automaticky přiřadí název omezení FK.
- referringColumnName: Toto je sloupec, který by odkazoval na hodnoty v jiné tabulce, jak je uvedeno ve sloupci v uvedené tabulce.
- Doporučená tabulka / nadřazená tabulka: Toto odkazuje na název tabulky, ze které by byly hodnoty odkazovány.
- Doporučený sloupec: Název sloupce v uvedené tabulce.
- Možnost odkazu: Jedná se o akce, které přicházejí do obrazu, když se v tabulce, která obsahuje omezení cizího klíče, provede akce aktualizace nebo odstranění. UPDATE i DELETE mohou mít stejné nebo různé možnosti odkazu.
O různých akcích referenční integrity bychom se dozvěděli dále v tomto kurzu.
Podívejme se na příklad reference ZAHRANIČNÍ KLÍČ pomocí příkladu Zaměstnanec / oddělení. Vytvoříme tabulku Oddělení se sloupci - departmentId (int & PRIMARY KEY) a departmentName (varchar).
CREATE TABLE department(departmentId INT PRIMARY KEY NOT NULL, departmentName VARCHAR(100));
Vytvořte tabulku Zaměstnanec se sloupci níže:
Sloupec | Typ |
---|---|
id | INT (primární klíč) |
název | VARCHAR |
dept_id | INT (cizí klíč) odkazovaný z tabulky oddělení |
adresa | VARCHAR |
stáří | INT |
dob | DATUM |
CREATE TABLE employee(id INT PRIMARY KEY NOT NULL, name VARCHAR(100), address VARCHAR(100), age INT, dob DATE, deptId INT, CONSTRAINT depIdFk FOREIGN KEY (deptId) REFERENCES department(departmentId) ON UPDATE CASCADE ON DELETE CASCADE);
Jak vidíte, ve výše uvedené tabulce Zaměstnanec jsme deklarovali sloupec deptId typu Int a definovali FOREIGN KEY z tabulky Oddělení ve sloupci departmentId.
Co to v podstatě znamená, že sloupec deptId v tabulce Zaměstnanec může obsahovat pouze hodnoty, které jsou v tabulce Oddělení.
jak zkopírovat pole java
Zkusme do těchto tabulek vložit data a podívejme se, jak funguje FOREIGN KEY CONSTRAINT.
- Nejprve vytvořte záznam v tabulce oddělení a přidejte záznam v tabulce zaměstnanců odkazující na ID záznamu, který byl přidán do tabulky oddělení.
INSERT INTO department VALUES (1, 'ENGINEERING') --------- INSERT INTO EMPLOYEE VALUES (1, 'AMIT KUMAR', 'MUMBAI', 32, '1988-02-12',1);
Uvidíte, že oba příkazy by byly provedeny bez chyb.
- Nyní odkazujte na hodnotu pro departmentId, která neexistuje.
Například, v níže uvedeném prohlášení dotazu vytváříme zaměstnance s neexistujícím departmentId -10
INSERT INTO EMPLOYEE VALUES (1, 'DARREN JOHNSON', 'CHICAGO', 32, '1988-02-12',10);
- V tomto scénáři se zobrazí chyba jako níže:
Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`my_sql_foreign_key`.`employee`, CONSTRAINT `depIdFk` FOREIGN KEY (`deptId`) REFERENCES `department` (`departmentId`) ON DELETE CASCADE ON UPDATE CASCADE)
Obecně tedy platí, že když jsou definovány ZAHRANIČNÍ KLÍČOVÉ odkazy, je důležité zajistit, aby tabulka, na kterou se odkazuje, měla mít data před tím, než bude odeslána.
Akce referenční integrity
Nejprve se pokusme pochopit, co přesně je referenční integrita.
Referenční integrita pomáhá udržovat data v čistém a konzistentním stavu, kde existují vzájemně související tabulky se vztahem FOREIGN KEY.
Jednoduše řečeno, Referenční integrita odkazuje na akci, kterou očekáváme od databázového stroje, když dojde k UPDATE nebo DELETE v odkazované tabulce, která obsahuje FOREIGN KEY.
Například, v našem příkladu Zaměstnanec / Oddělení předpokládejme, že změníme ID oddělení pro určitý řádek v DB. Pak by byly ovlivněny všechny odkazující řádky v tabulce Zaměstnanec. Můžeme definovat různé typy scénářů referenční integrity, které lze v takových případech použít.
Poznámka: Referenční integrita je definována během nastavení / deklarace FOREIGN KEY jako součást příkazů / sekcí ON DELETE a ON UPDATE.
Zde se podívejte na ukázkový dotaz (příklad zaměstnance / oddělení):
CREATE TABLE department(departmentId INT PRIMARY KEY NOT NULL, departmentName VARCHAR(100)); CREATE TABLE employee(id INT PRIMARY KEY NOT NULL, name VARCHAR(100), address VARCHAR(100), age INT, dob DATE, deptId INT, CONSTRAINT depIdFk FOREIGN KEY (deptId) REFERENCES department(departmentId) ON UPDATE {ref-integrity-action} ON DELETE {ref integrity action});
Níže vložte některá data do těchto tabulek:
INSERT INTO department VALUES (1, 'ENGINEERING'), (2,'ACCOUNTING'), (3, 'MARKETING'), (4, 'HR'), (5, 'LEGAL'); INSERT INTO EMPLOYEE VALUES (1, 'AMIT KUMAR', 'MUMBAI', 32,'1988-02-12',1), (2, 'RYAN HILMAN', 'SEATTLE',43, '1977-03-15',1), (3, 'KAVITA SINGH', 'DELHI', 42, '1978-02-18',4), (4, 'DAVID BECKHAM', 'LONDON', 40, '1980-07-13',3), (5, 'PRITI KUMARI', 'DELHI', 35, '1985-12-11',2), (6, 'FRANK BALDING', 'NEW YORK', 35, '1985-08-25',5)
MySQL podporuje 4 referenční akce. Pokusme se porozumět každému z nich.
# 1) KASKÁDA
Toto je jedna z nejčastěji používaných akcí referenční integrity. Nastavení DELETE a UPDATE na CASCADE by provedlo změny provedené v referenční tabulce v referenční tabulce, tj. V příkladu Zaměstnanec / oddělení. Předpokládejme, že někdo odstraní řádek v tabulce Oddělení, který musí říkat název oddělení = ÚČETNICTVÍ, pak by byly odstraněny také všechny řádky v tabulce Zaměstnanec, které mají číslo_oddělení jako v tabulce Účetnictví.
Pochopme to na příkladu:
SELECT * FROM employee;
id | název | adresa | stáří | dob | odd |
---|---|---|---|---|---|
1 | AMIT KUMAR | MUMBAI | 32 | 12. 2. 1988 | 1 |
dva | RYAN HILMAN | SEATTLE | 43 | 1977-03-15 | 1 |
3 | KAVITA SINGH | DELHI | 42 | 1978-02-18 | 4 |
4 | DAVID BECKHAM | LONDÝN | 40 | 1980-07-13 | 3 |
5 | PRITI KUMARI | DELHI | 35 | 11.12.1985 | dva |
6 | FRANK BALDING | NEW YORK | 35 | 1985-08-25 | 5 |
Smazat záznam z tabulky oddělení, kde departmentName = ‚ÚČETNICTVÍ '
DELETE from DEPARTMENT WHERE departmentName='ACCOUNTING';
Nyní, protože se jedná o referenční akci CASCADE, bychom očekávali, že budou odstraněny také všechny řádky, které mají departmentID = 2 (což je pro oddělení „ÚČETNICTVÍ). Uděláme znovu dotaz SELECT na tabulce zaměstnanců.
SELECT * FROM employee;
id | název | adresa | stáří | dob | odd |
---|---|---|---|---|---|
1 | AMIT KUMAR | MUMBAI | 32 | 12. 2. 1988 | 1 |
dva | RYAN HILMAN | SEATTLE | 43 | 1977-03-15 | 1 |
3 | KAVITA SINGH | DELHI | 42 | 1978-02-18 | 4 |
4 | DAVID BECKHAM | LONDÝN | 40 | 1980-07-13 | 3 |
6 | FRANK BALDING | NEW YORK | 35 | 1985-08-25 | 5 |
Jak vidíte výše, kvůli referenční integritě CASCADE budou řádky v tabulce Zaměstnanec, které odkazovaly na odstraněný sloupec jako ZAHRANIČNÍ KLÍČ, tyto řádky odstraněny.
# 2) OMEZENÍ / ŽÁDNÁ ČINNOST
Režim OMEZENÍ nebo ŽÁDNÁ AKCE neumožní žádné operace AKTUALIZACE nebo ODSTRANĚNÍ v tabulce se sloupci, na které se v některé tabulce odkazuje jako NA ZAHRANIČNÍ KLÍČ.
Režim NO ACTION lze použít pouhým vynecháním klauzulí ON UPDATE a ON DELETE z deklarace tabulky.
Zkusme stejný příklad a v tomto případě jednoduše přeskočte akce referenční aktualizace ON UPDATE a ON DELETE.
Nyní, když se pokusíme odstranit jakoukoli položku v odkazované tabulce, dostaneme chybu, protože jsme nastavili referenční akci na RESTRICT
DELETE FROM department WHERE departmentName='ACCOUNTING';
Pokud se pokusíte provést výše uvedený příkaz DELETE, zobrazí se chyba podobná níže.
Error Code: 1451. Cannot delete or update a parent row: a foreign key constraint fails (`my_sql_foreign_key`.`employee`, CONSTRAINT `depIdFk` FOREIGN KEY (`deptId`) REFERENCES `department` (`departmentId`))
# 3) NASTAVTE NULL
S SET NULL by jakýkoli UPDATE nebo DELETE v odkazované tabulce způsobil aktualizaci hodnoty NULL oproti hodnotě sloupce, která je v referenční tabulce označena jako FOREIGN KEY.
S touto akcí referenční integrity by se definice tabulky zaměstnanců stala níže:
CREATE TABLE employee(id INT PRIMARY KEY NOT NULL, name VARCHAR(100), address VARCHAR(100), age INT, dob DATE, deptId INT, CONSTRAINT depIdFk FOREIGN KEY (deptId) REFERENCES department(departmentId) ON DELETE SET NULL);
Odstraňte řádek v referenční tabulce, jak je uvedeno níže:
DELETE FROM department WHERE departmentName='ACCOUNTING';
Nyní by v tomto případě byla odkazovaná hodnota v tabulce Zaměstnanec nastavena na NULL. Chcete-li zobrazit výsledky, proveďte v tabulce zaměstnanců dotaz SELECT.
SELECT * FROM employee;
id | název | adresa | stáří | dob | odd |
---|---|---|---|---|---|
1 | AMIT KUMAR | MUMBAI | 32 | 12. 2. 1988 | 1 |
dva | RYAN HILMAN | SEATTLE | 43 | 1977-03-15 | 1 |
3 | KAVITA SINGH | DELHI | 42 | 1978-02-18 | 4 |
4 | DAVID BECKHAM | LONDÝN | 40 | 1980-07-13 | 3 |
5 | PRITI KUMARI | DELHI | 35 | 11.12.1985 | NULA |
6 | FRANK BALDING | NEW YORK | 35 | 1985-08-25 | 5 |
# 4) NASTAVTE VÝCHOZÍ
Režim SET DEFAULT, pokud je zadán, by měl za následek nahrazení výchozí hodnoty pro sloupec (jak je uvedeno během deklarace sloupce), v případě, že se v tabulce odkazuje na DELETES.
Poznámka - Dle Dokumentace MySQL , možnost SET DEFAULT podporuje MySQL Parser, ale ne DB motory jako InnoDB. To může být v budoucnu podporováno.
Chcete-li však takové chování podpořit, můžete zvážit použití SET NULL a definovat v tabulce spouštěč, který by mohl nastavit výchozí hodnotu.
Přidejte omezení FOREIGN KEY pomocí příkazu ALTER TABLE
Mnohokrát se může stát, že bychom chtěli přidat omezení FOREIGN KEY do existující tabulky, která ji nemá.
Předpokládejme, že v příkladu Zaměstnanec a oddělení jsme vytvořili tabulku zaměstnanců bez jakéhokoli omezení FOREIGN KEY a později chceme omezení zavést. Toho lze dosáhnout pomocí příkazu ALTER TABLE.
Zkusme to pochopit na příkladu.
Předpokládejme, že máme tabulku zaměstnanců s níže uvedenou definicí příkazu CREATE.
CREATE TABLE employee(id INT PRIMARY KEY NOT NULL, name VARCHAR(100), address VARCHAR(100), age INT, dob DATE, deptId INT);
Zde máme sloupec deptId, ale žádné omezení FOREIGN KEY. V tomto případě můžeme i bez vkládání záznamů určit jakékoli hodnoty při vkládání záznamů.
Nyní, později předpokládejme, že máme samostatnou tabulku oddělení a chceme tam propojit departmentId jako FOREIGN KEY s tabulkou zaměstnanců.
ALTER TABLE employee ADD CONSTRAINT depIdFk FOREIGN KEY (deptId) REFERENCES department(departmentId) ON UPDATE CASCADE ON DELETE CASCADE;
Co když tato tabulka obsahuje existující data? Můžeme ALTEROVAT tabulku a přidat omezení FOREIGN KEY?
Odpověď je ano - můžeme s podmínkou, že stávající hodnoty ve sloupci, na který se bude odkazovat z jiné tabulky, by měly mít tyto hodnoty existující v samotné nadřazené tabulce.
Vytvořte tabulku zaměstnanců bez omezení FOREIGN KEY, přidejte nějaká data a zkuste přidat omezení FOREIGN KEY pomocí příkazu ALTER.
CREATE TABLE employee(id INT PRIMARY KEY NOT NULL, name VARCHAR(100), address VARCHAR(100), age INT, dob DATE, deptId INT);
INSERT INTO EMPLOYEE VALUES (1, 'DARREN JOHNSON', 'CHICAGO', 32, '1988-02-12',1); INSERT INTO EMPLOYEE VALUES (2, 'ANITA SHERWIN', 'COLUMBIA', 32, '1988-02-12',10);
Vytvořte tabulku oddělení a přidejte ZAHRANIČNÍ KLÍČ do pole „deptId“ v tabulce zaměstnanců, jak je uvedeno níže:
CREATE TABLE department(departmentId INT PRIMARY KEY NOT NULL DEFAULT 1000, departmentName VARCHAR(100));
V tomto okamžiku, pokud se pokusíme přidat omezení FOREIGN KEY,
ALTER TABLE employee ADD CONSTRAINT depIdFk FOREIGN KEY (deptId) REFERENCES department(departmentId) ON UPDATE CASCADE ON DELETE CASCADE;
Pak se zobrazí chyba, protože tabulka Zaměstnanec obsahuje některá data, ale omezení referenční integrity nelze splnit, protože tabulka Oddělení dosud nemá žádná data.
Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`my_sql_foreign_key`.`#sql-63_87`, CONSTRAINT `depIdFk` FOREIGN KEY (`deptId`) REFERENCES `department` (`departmentId`) ON DELETE CASCADE ON UPDATE CASCADE)
Abychom měli omezení FOREIGN KEY, budeme nejprve muset přidat data do tabulky oddělení. Vložme požadované záznamy do tabulky oddělení.
INSERT INTO department VALUES (1, 'ENGINEERING'),(10,'ACCOUNTING');
Přidejte znovu podmínku FOREIGN KEY provedením stejného příkazu ALTER TABLE. Všimnete si, že tentokrát je příkaz úspěšný a tabulka Zaměstnanec je úspěšně aktualizována, aby měl deptId jako FOREIGN KEY z tabulky Oddělení.
Zrušení omezení ZAHRANIČNÍHO KLÍČE
Podobně jako přidání omezení FOREIGN KEY je také možné zrušit / odstranit existující omezení FOREIGN KEY z tabulky.
Toho lze dosáhnout pomocí příkazu ALTER TABLE.
nejlepší anti spyware zdarma pro PC
Syntax:
ALTER TABLE {childTable} DROP FOREIGN KEY {foreign key constraint name};
Zde je „childTable“ název tabulky, která má definované omezení FOREIGN KEY, zatímco „název omezení cizího klíče“ je název / symbol, který byl použit k definování FOREIGN KEY.
Podívejme se na příklad pomocí tabulky Zaměstnanec / oddělení. Chcete-li zrušit omezení s názvem „depIdFk“ z tabulky Zaměstnanec, použijte následující příkaz:
ALTER TABLE employee DROP FOREIGN KEY depIdFk;
Často kladené otázky
Otázka č. 1) Jak mohu změnit cizí klíče v MySQL?
Odpovědět: FOREGIN KEY lze přidat / odebrat pomocí příkazu ALTER TABLE.
Chcete-li změnit nebo přidat nový ZAHRANIČNÍ KLÍČ, můžete použít příkaz ALTER a definovat ZAHRANIČNÍ KLÍČ a odkazovat na sloupec tabulky, na který se bude odkazovat z podřízené tabulky.
Otázka 2) Jak nastavit více cizích klíčů v MySQL?
Odpovědět: Tabulka v MySQL může mít více ZAHRANIČNÍCH KLÁVES, které mohou záviset na stejné nadřazené tabulce nebo různých nadřazených tabulkách.
Použijme tabulku Zaměstnanec / Oddělení a přidejme ZAHRANIČNÍ KLÍČ pro název Oddělení a také DepartmentId v tabulce Zaměstnanec.
Níže si přečtěte příkazy CREATE obou tabulek
CREATE TABLE department(departmentId INT PRIMARY KEY NOT NULL DEFAULT 1000, departmentName VARCHAR(100) UNIQUE NOT NULL); ----xxxxx------xxxxx------xxxxx-------xxxxx------xxxxx CREATE TABLE employee(id INT PRIMARY KEY NOT NULL, name VARCHAR(100), address VARCHAR(100), age INT, dob DATE, deptId INT, depName VARCHAR(100), CONSTRAINT depIdFk FOREIGN KEY (deptId) REFERENCES department(departmentId) ON UPDATE CASCADE ON DELETE CASCADE, CONSTRAINT depNameFk FOREIGN KEY (depName) REFERENCES department(departmentName) ON UPDATE CASCADE ON DELETE CASCADE);
Otázka č. 3) Jak zakázat omezení cizího klíče v MySQL?
Odpovědět: Omezení FOREIGN KEY jsou obvykle vyžadována, když se někdo pokouší zkrátit existující tabulku, na kterou se odkazuje. K tomu můžete použít následující příkaz:
SET FOREIGN_KEY_CHECKS=0;
To by nastavilo proměnnou relace a dočasně deaktivovalo FOREIGN_KEY_CHECKS. Po tomto nastavení můžete pokračovat a provést odstranění / zkrácení, což by jinak nebylo možné.
Zajistěte však, aby se jednalo o oprávnění správce a mělo by být používáno uvážlivě.
Otázka č. 4) Jak najdu odkazy na cizí klíče pro tabulku v MySQL?
Odpovědět: Chcete-li zobrazit seznam všech existujících omezení ZAHRANIČNÍHO KLÍČE, můžete v tabulce „INFORMATION_SCHEMA“ použít tabulku „INNODB_FOREIGN_COLS“.
Jednoduše spusťte příkaz níže a získejte všechna prohlášení FOREIGN KEY existující pro danou instanci serveru MySQL.
ID | FOR_COL_NAME | REF_COL_NAME | POS |
---|---|---|---|
my_sql_foreign_key / depIdFk | odd | ID oddělení | 1 |
Otázka č. 5) Měl by odkazovaný sloupec jako ZAHRANIČNÍ KLÍČ být primárním klíčem v odkazované tabulce?
Odpovědět: Podle definice ZAHRANIČNÍHO KLÍČE by bylo nutné, aby sloupec, na který se odkazuje jako ZAHRANIČNÍ KLÍČ, měl být PRIMÁRNÍM KLÍČEM z tabulky, na kterou se odkazuje.
S novějšími verzemi MySQL a databázovým strojem InnoDB byste však také mohli odkazovat na sloupec, který má FOREIGN KEY, který má UNIQUE omezení a nemusí být nutně PRIMARY KEY.
Otázka č. 6) Vytváří FOREIGN KEY INDEX v MySQL?
Odpovědět: Pro primární klíč i jedinečné omezení MySQL automaticky vytvoří INDEX pro takové sloupce.
Protože již víme, že odkazy FOREIGN KEY lze použít pouze na sloupec, který je primárním klíčem, nebo na sloupce, které mají jedinečné hodnoty, proto všechny sloupce, které jsou označovány jako FOREIGN KEY, mají vytvořený index.
Chcete-li zobrazit index v tabulce, použijte následující příkaz:
SHOW INDEX from {dbName.tableName};
Takže pro náš příklad Zaměstnanec / Oddělení jsme přidali deptId do Zaměstnanec jako ZAHRANIČNÍ KLÍČ z tabulky Oddělení.
Podívejme se na vytvořené indexy v tabulkách Zaměstnanec a Oddělení.
USE my_sql_foreign_key; SHOW INDEX from employee;
Stůl | Non_unique | Key_name | Seq_in_index | Název_sloupce | Třídění | Mohutnost | Pododdíl | Zabaleno | Nula | Typ_indexu |
---|---|---|---|---|---|---|---|---|---|---|
zaměstnanec | 0 | HLAVNÍ | 1 | id | NA | 0 | NULA | NULA | BTREE | |
zaměstnanec | 1 | depIdFk | 1 | odd | NA | 0 | NULA | NULA | ANO | BTREE |
Můžete vidět 2 indexy - jeden je primární klíč pro tabulku zaměstnanců a druhý je pro DEVIČNÍ KLÍČ, na který se odkazuje z tabulky oddělení.
SHOW INDEX from department;
Stůl | Non_unique | Key_name | Seq_in_index | Název_sloupce | Třídění | Mohutnost | Pododdíl | Zabaleno | Nula | Typ_indexu |
---|---|---|---|---|---|---|---|---|---|---|
oddělení | 0 | HLAVNÍ | 1 | ID oddělení | NA | 0 | NULA | NULA | BTREE |
Zde vidíte, že pro tabulku oddělení máme pouze 1 index pro primární klíč (který je v tabulce zaměstnanců označován jako ZAHRANIČNÍ KLÍČ).
Otázka č. 7) Může být FOREIGN KEY v MySQL NULL?
Odpovědět: Ano, je naprosto v pořádku mít NULL pro sloupec, který má závislost FOREIGN KEY na jiné tabulce. To také naráží na skutečnost, že NULL není skutečná hodnota, a proto není porovnávána / porovnávána s hodnotami v nadřazené tabulce.
Závěr
V tomto kurzu jsme se dozvěděli o různých koncepcích souvisejících s používáním ZAHRANIČNÍCH KLÍČŮ v databázích MySQL.
FOREIGN KEY usnadňuje aktualizace a mazání s příslušnými omezeními, ale někdy mít mnoho takových vztahů může způsobit, že celý proces vkládání a / nebo mazání bude docela těžkopádný.
Naučili jsme se, jak vytvořit ZAHRANIČNÍ KLÁVESY a jak můžeme aktualizovat a zrušit existující ZAHRANIČNÍ KLÍČ z podřízené tabulky. Dozvěděli jsme se také o různých akcích referenční integrity a o tom, jak můžeme dosáhnout odlišného chování pomocí různých dostupných možností, jako je CASCADE, NO ACTION, SET NULL atd.
Doporučené čtení
- MySQL Vytvoření výukové tabulky s příklady
- MySQL Vložit do tabulky - Vložit syntaxi výpisu a příklady
- MySQL Create View Tutorial s příklady kódu
- Funkce MySQL CONCAT a GROUP_CONCAT s příklady
- Výukový program pro transakce MySQL s příklady programování
- MySQL UNION - komplexní výukový program s příklady Unie
- Jak stáhnout MySQL pro Windows a Mac
- Rozdíl mezi SQL Vs MySQL Vs SQL Server (s příklady)