Přejít na obsah

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ů.

 


V tomto kurzu nejsou povoleny komentáře.