SQL od nuly – první kroky v Neonu
SQL od nuly – první kroky v Neonu
Krátká příručka před prvním větším SQL cvičením
|
Cíl: Nebát se SQL. Naučíš se přečíst jednoduchý příkaz, vytvořit malou tabulku, vložit do ní data, zobrazit je a pochopit první jednoduchou relaci mezi tabulkami. |
1. Co je SQL?
SQL je jazyk, kterým dáváme pokyny relační databázi. Nemusíš se učit dlouhý program – většinou napíšeš krátký příkaz a databáze odpoví výsledkem.
|
Příkaz |
Čti si ho jako… |
|
CREATE TABLE |
vytvoř tabulku |
|
INSERT INTO |
vlož data do tabulky |
|
SELECT |
ukaž mi data |
|
WHERE |
vyber jen řádky, které splňují podmínku |
|
ORDER BY |
seřaď výsledek |
|
Důležité: SQL se zpočátku neuč nazpaměť. Zkus každý příkaz přečíst jako obyčejnou českou větu. |
2. Jak pracovat v SQL Editoru v Neonu
• Otevři svůj projekt v Neonu a přejdi do SQL Editoru.
• Do editoru vlož jeden krátký SQL příkaz.
• Klikni na Run. Pod editorem se zobrazí výsledek nebo chybová zpráva.
• Příkaz uprav a spusť znovu. Chyba je běžná součást učení SQL.
První test – tento příkaz nic nevytváří, jen vrátí text:
|
SELECT 'SQL funguje!' AS zprava; |

Když se zobrazí „SQL funguje!“, editor komunikuje s PostgreSQL databází správně.
3. Čtyři drobnosti, které u SQL hlídej
|
Znak / pravidlo |
Co znamená |
|
; |
středník ukončuje příkaz |
|
'text' |
text zapisujeme do jednoduchých uvozovek |
|
1, 2, 3 |
čísla obvykle zapisujeme bez uvozovek |
|
, |
čárka odděluje sloupce nebo hodnoty |
|
( ) |
závorky seskupují sloupce a hodnoty |
|
Tip: SQL nerozlišuje, jestli napíšeš SELECT nebo select. Velká písmena u příkazů používáme hlavně proto, aby se kód lépe četl. |
První tabulka – trida
Nejprve struktura, potom data
4. CREATE TABLE – vytvoření tabulky
Začneme tabulkou trida. Stejný název i pole později použiješ ve větším cvičení.
Spusť v SQL Editoru:

|
CREATE TABLE trida (
trida_id INTEGER PRIMARY KEY, nazev VARCHAR(10), obor VARCHAR(80) ); |
|
Část příkazu |
Význam |
|
CREATE TABLE trida |
vytvoř tabulku s názvem trida |
|
trida_id |
název prvního sloupce |
|
INTEGER |
celé číslo |
|
PRIMARY KEY |
ID se nesmí opakovat |
|
VARCHAR(10) |
krátký text, nejvýše 10 znaků |
|
VARCHAR(80) |
text, nejvýše 80 znaků |
|
Jak to číst: „Vytvoř tabulku trida se třemi sloupci: ID, název a obor. ID je jedinečný primární klíč.“ |
5. INSERT INTO – vložení prvních řádků
Prázdná tabulka ještě neobsahuje žádné záznamy. Data vložíme příkazem INSERT INTO.
Vlož první třídu:

|
INSERT INTO trida (trida_id, nazev, obor) VALUES (1, '3.A', 'Mechanik elektronických zařízení'); |
Vlož druhou třídu:

|
INSERT INTO trida (trida_id, nazev, obor) VALUES (2, '3.B', 'Informační technologie'); |
Pořadí hodnot za VALUES odpovídá pořadí sloupců uvedených za názvem tabulky.
|
Sloupec |
Vložená hodnota |
|
trida_id |
1 |
|
nazev |
'3.A' |
|
obor |
'Mechanik elektronických zařízení' |
6. SELECT – zobraz data
Zobraz všechny sloupce a všechny řádky:
|
SELECT * FROM trida; |

Hvězdička * znamená „všechny sloupce“. Po spuštění bys měl vidět dva řádky – 3.A a 3.B.
Zobraz jen vybrané sloupce:
|
SELECT nazev, obor FROM trida; |
|
Malý test: Změň druhý SELECT tak, aby zobrazil pouze sloupec nazev. Spusť ho a zkontroluj výsledek. |
Výběr dat a první relace
Teď přidáme žáky a propojíme je s třídou
7. WHERE – vyber jen to, co potřebuješ
Najdi pouze třídu s ID 2:

|
SELECT * FROM trida WHERE trida_id = 2; |
WHERE je podmínka. Databáze zobrazí jen řádky, pro které je podmínka pravdivá.
Stejný princip můžeme použít i pro text:

|
SELECT * FROM trida WHERE nazev = '3.A'; |
ORDER BY seřadí výsledek:

|
SELECT * FROM trida ORDER BY nazev; |
8. Co je primární a cizí klíč – bez složité teorie
|
Pojem |
Jednoduše |
|
Primární klíč (PRIMARY KEY) |
jedinečné ID řádku; nesmí se opakovat |
|
Cizí klíč (FOREIGN KEY) |
ID, které odkazuje na řádek v jiné tabulce |
|
Příklad: Třída 3.A má trida_id = 1. Když má žák trida_id = 1, víme, že patří do 3.A. |
9. Vytvoř tabulku zak a jednoduchou relaci 1 : N
Spusť až po vytvoření tabulky trida:
|
CREATE TABLE zak ( zak_id INTEGER PRIMARY KEY, jmeno VARCHAR(60), prijmeni VARCHAR(60), trida_id INTEGER, FOREIGN KEY (trida_id) REFERENCES trida(trida_id) ); |
Poslední řádek říká: hodnota zak.trida_id musí odkazovat na existující trida.trida_id.
|
Relace 1 : N: Jedna třída může mít více žáků. Jeden žák v tomto jednoduchém příkladu patří do jedné třídy. |
10. Vlož dva žáky
Všimni si poslední hodnoty – je to ID třídy:

|
INSERT INTO zak (zak_id, jmeno, prijmeni, trida_id) VALUES (1, 'Jan', 'Novák', 1);
INSERT INTO zak (zak_id, jmeno, prijmeni, trida_id) VALUES (3, 'Tomáš', 'Veselý', 2); |
Zkontroluj vložené žáky:

|
SELECT * FROM zak; |
|
Zkus přemýšlet: Jan Novák má trida_id = 1. Do které třídy patří? Odpověď najdeš v tabulce trida, kde trida_id = 1. |
Krátké procvičení
Zkus nejdříve sám, až potom se vrať k příkladům
11. Úkol A – vytvoř jednoduchou tabulku predmet
Vytvoř tabulku predmet se dvěma sloupci. Nejdříve si zkus příkaz sestavit sám podle vzoru tabulky trida.
|
Sloupec |
Datový typ |
Nastavení |
|
predmet_id |
INTEGER |
PRIMARY KEY |
|
nazev |
VARCHAR(100) |
- |
|
Kontrola: Příkaz musí začínat CREATE TABLE predmet a mezi definicemi sloupců musí být čárka. |
12. Úkol B – vlož dva předměty
|
predmet_id |
nazev |
|
1 |
Databáze |
|
2 |
Počítačové sítě |
Použij INSERT INTO a potom zkontroluj výsledek příkazem SELECT * FROM predmet;
13. Úkol C – zkus jednoduché dotazy
☐ Zobraz všechny třídy.
☐ Zobraz pouze sloupce jmeno a prijmeni z tabulky zak.
☐ Zobraz pouze žáky, kteří mají trida_id = 1.
☐ Seřaď žáky podle prijmeni.
☐ Zobraz všechny předměty.
14. Neboj se chybových zpráv
|
Když vidíš… |
Co nejdříve zkontroluj |
|
syntax error |
čárky, závorky, uvozovky a středník |
|
relation … already exists |
tabulka už byla vytvořena |
|
duplicate key |
opakované ID v PRIMARY KEY |
|
foreign key violation |
odkazuješ na ID, které v rodičovské tabulce neexistuje |
|
Dobré pravidlo: Neopravuj pět věcí najednou. Najdi první chybu, oprav ji, spusť příkaz znovu a sleduj, co se změnilo. |
15. Co máš umět před dalším cvičením
☐ Vysvětlit vlastními slovy, k čemu slouží SQL.
☐ Vytvořit jednoduchou tabulku pomocí CREATE TABLE.
☐ Rozlišit INTEGER a VARCHAR.
☐ Vložit řádek pomocí INSERT INTO … VALUES.
☐ Zobrazit data pomocí SELECT a vybrat řádky pomocí WHERE.
☐ Vysvětlit, co dělá PRIMARY KEY a proč může být trida_id cizím klíčem.
|
Co bude následovat: V dalším cvičení použiješ stejné principy na šest tabulek: student, studentska_karta, trida, zak, predmet a zapis. Nebude to nový jazyk – jen více stejných jednoduchých kroků. |