1 of 24

Databáze v geoinformatice III.

Mgr. Michal Jakl

ZS 2025

2 of 24

Obsah lekce

  1. SQL

Praktické cvičení:

Procvičení dotazů v SQL – práce s programem pgAdmin

3 of 24

1. SQL - obecně

  • SQL jazyk se výrazně liší od klasických programovacích procedurálních jazyků -> dotazovací jazyk
    • Při řešení úlohy neříkáme databází, jak má požadovaný úkol splnit, ale pouze formulujeme příkaz a specifikujeme naše požadavky.

  • Příkazy, které je schopna databáze zpracovat se dělí do 4 skupin:
  • Manipulaci s daty obstarávají příkazy ze skupiny DML (Data manipulation language)
  • Pro správu datových struktur a objektů jsou určeny DDL (Data definition language) příkazy
  • Třetí skupinou příkazy pro řízení transakcí (TCC)
  • Čtvrtá skupina, DCL (Data control language), je tvořena příkazy pro správu oprávnění jednotlivých databázových uživatelů

Zdroj: https://moodle.fzp.ujep.cz/pluginfile.php/23547/mod_resource/content/1/Databazove_systemy_v_biomedicine-7-8.pdf

4 of 24

1. SQL - historie

  • SQL je zkratka (Structured Query Language) pro standardizovaný strukturovaný dotazovací jazyk, který je používán pro práci s daty v relačních databázích
  • SQL je nástupcem jazyka SEQUEL (anglicky Structured English Query Language)
    • V 70. letech 20. století probíhal ve firmě IBM výzkum relačních databází
    • V r. 1979 uvedla na trh firma Relational Software, Inc. (dnešní Oracle Corporation) svoji relační databázovou platformu Oracle Database.
    • IBM uvedla v roce 1981 nový systém SQL/DS a v roce 1983 systém DB2.
    • Dalšími systémy byly např. Progress, Informix a SyBase
    • Ve všech těchto systémech se používala varianta jazyka SEQUEL, později SQL.
  • Relační databáze byly stále významnější, a bylo nutné jejich jazyk standardizovat
  • Zatím nejnovějším standardem je SQL:2023, který reaguje na potřeby nejmodernějších databází s objektovými prvky.
    • Standardy podporuje prakticky každá relační databáze, ale obvykle nejsou implementovány vždy všechny požadavky normy
    • Naopak, každá z nich obsahuje prvky a konstrukce, které nejsou ve standardech obsaženy. Přenositelnost SQL dotazů mezi jednotlivými databázemi je proto omezená.

Zdroj: https://cs.wikipedia.org/wiki/SQL

5 of 24

1. SQL – základní příkazy - přehled

  • DML příkazy
    • SELECT - výběr a zobrazení dat
    • INSERT - Vkládání dat
    • UPDATE - Změna dat
    • DELETE - Smazání dat
  • DDL příkazy
    • CREATE – vytvoření (tabulky)
    • ALTER – „úpravy“ (tabulky)
    • DROP – zrušení (tabulky)
    • TRUNCATE – vymazání (tabulky)

6 of 24

1. SQL – CREATE, ALTER

Zdroj: https://moodle.fzp.ujep.cz/pluginfile.php/24120/mod_resource/content/1/Inz2.pdf

Obecná formule pro vytvoření

Konkrétní příklad

Vytvoření kopie existující tabulky

Úpravy tabulky pomocí ALTER

Tvorba indexu nad tabulkou

7 of 24

CV – CREATE, ALTER

Vytvořte tabulku „ZAMĚSTNANCI“

8 of 24

CV – CREATE, ALTER

Vytvořte tabulku „POZICE“

Do tabulky „ZAMĚSTNANCI“ přidejte sloupec s datem narození zaměstnanců

9 of 24

1. SQL – INSERT = vložení

  • Počet sloupců musí odpovídat počtu hodnot
  • Pokud tabulka obsahuje další sloupce, bude jejich hodnota buď NULL nebo bude rovna výchozí hodnotě sloupce
  • Výchozí hodnoty sloupců je možné definovat při vytváření tabulky
  • Textové hodnoty je nutné uvádět uzavřené v jednoduchých apostrofech ('textová hodnota')

Možno kombinovat s příkazem SELECT:

10 of 24

CV – INSERT

Vložte do tabulky „POZICE“ pozice „ŘEDITEL“, „BRIGÁDNÍK“ a „ŘADOVÝ PRACOVNÍK“

Vložte do tabulky zaměstnanců alespoň 6 zaměstnanců a přiřaďte jim různé pozice

11 of 24

1. SQL – UPDATE = aktualizace

12 of 24

CV – UPDATE

Zvyšte plat brigádníkům o 1000 Kč

Změňte jméno jednomu ze zaměstnanců

13 of 24

1. SQL – SELECT = výběr

CO?

ODKUD?

PODMÍNKA = restrikce

Vrátí odpovídající (záznamy) řádky z dané tabulky

ŘAZENÍ výpisu

Agregační FUNKCE:

COUNT, MAX, MIN, AVG, SUM

LIMIT X

GROUP BY sloupec HAVING podmínka pro skupinu

14 of 24

1. SQL – SELECT = výběr

Obecná formule pro SELECT

SELECT DISTINCT sloupec … <- pro výběr unikátních hodnot

15 of 24

1. SQL – operátory

  • Základní operátory
    • +
    • -
    • *
    • /
  • Logické operátory (za WHERE)
    • AND
    • OR
    • NOT
  • Množinové operátory
    • UNION
    • UNION ALL
    • INTERSECT
    • MINUS

Zdroj: https://moodle.fzp.ujep.cz/pluginfile.php/23547/mod_resource/content/1/Databazove_systemy_v_biomedicine-7-8.pdf

16 of 24

CV – SELECT

17 of 24

CV – SELECT

Zjistěte pomocí SELECT odpovědi na následující dotazy:

    • Zobrazte všechny zaměstnance, ve druhé záložce zobrazte všechny pozice
    • Zobrazte pouze jména a příjmení zaměstnanců
    • Zobrazte pouze řadové zaměstnance
    • Zobrazte počty zaměstnanců pro jednotlivé pozice
    • Zobrazte zaměstnance, jejichž příjmení začíná na „V“
    • Zobrazte seznam všech zaměstnanců seřazený od nejstaršího po nejmladšího

18 of 24

1. SQL – DELETE = smazání

DELETE FROM tabulka WHERE sloupec1 = hodnota1

19 of 24

CV – DELETE

Odstraňte nejmladšího zaměstnance

20 of 24

1. SQL –DROP, TRUNCATE

DROP TABLE tabulka1 X TRUNCATE TABLE tabulka1

SMAZÁNÍ

VÝMAZ

21 of 24

1. SQL – funkce

  • GREATEST
  • LEAST
  • CURRENT_TIMESTAMP
  • REPLACE
  • LENGTH
  • LOWER
  • UPPER

  • Agregační - COUNT, MAX, MIN, AVG, SUM…
  • Matematické - SIN, COS, TAN, ABS, SQRT, POWER, ROUND, MOD…

Testování funkcí

Funkce a operátory se v SQL konstrukcích aplikují na jednotlivé řádky z databáze získaných dat. Pokud si chceme vyzkoušet některou funkci, je nejpřehlednější testovat s co

nejjednodušším SQL dotazem a ideálně na jednom záznamu.

Nejjednodušší SQL dotaz je:

  • SELECT 1+1 FROM tabulka_s_jednim_radkem

Databáze POSTGRESQL umožňuje pro testování funkcí dokonce jednodušší podobu:

  • SELECT 1 + 1

V databázi PGSQL jako generátor řádků slouží funkce generate_series(od, do). Tatocfunkce vrací řádky v intervalu parametrů od do.

  • SELECT 1 + 1 FROM GENERATE_SERIES(1,1)
    • vrátí 1 řádek
  • SELECT cislo + 1 FROM GENERATE_SERIES(5,9) as cislo
    • vrátí 5 řádků s čísly 6 až 10

22 of 24

Praktické cvičení

  • Procvičení dotazů v SQL – práce s programem pgAdmin

PROBĚHLO V RÁMCI PŘEDNÁŠKY

23 of 24

Na doma

  1. Vytvořte nové pracovní pozice „Mechanik“ a „Zdravotník“
  2. Přidejte alespoň 5 dalších zaměstnanců (některým dejte i nové pozice)
  3. Přidejte zaměstnancům adresy (pozor na normalizaci!)
  4. Vytvořte tabulku „DRUHY ZVÍŘAT“, sloupce budou ID, název, cena
  5. Přidejte do tabulky druhů zvířat položky skot, slepice, vepř
  6. Vytvořte tabulku „VÝBĚHY“, sloupce budou ID, název, rozloha
  7. Vytvořte alespoň 5 výběhů
  8. Vytvořte tabulku „ZVÍŘATA“, sloupce budou ID, druh zvířete (pomocí klíče), výběh (pomocí klíče), narození zvířete
  9. Vložte do tabulky zvířat alespoň 20 záznamů. Kombinujte logicky různé druhy zvířat i výběhů.

24 of 24

Děkuji za pozornost a těším se příště!��Prostor pro zpětnou vazbu

mail@mjakl.cz

Tel. 608 544 839

Web: mjakl.cz