Cvičení 2

Opakování z přednášky

TBA

Témata cvičení

Úprava tabulek (ALTER TABLE)

Minule někteří z nás narazili na potřebu změnit nějakou tabulku, ať už kvůli překlepu při jejím vytváření, kvůli změně názoru na vhodný typ sloupce, nebo z jiných důvodů. K tomu v SQL slouží příkaz ALTER TABLE.

Nás zajímají zejména varianty:

Z dokumentace “The key word COLUMN is noise and can be omitted.

(ukázky)

Dotazy na tabulku - SELECT

Pár příkladů použití SELECT.

Předpokládejme tabulku zvire se sloupci:

Výběr sloupců tabulky

Mohou nás zajímat jen některé sloupce tabulky, pak použijeme příkaz SELECT následovně:

SELECT col_1, col_2, ... , col_n FROM name;	

(ukázka - příkaz vracející projekci tabulky zvire na sloupce vek, pocet_nohou a mame_radi.)

Výběr všech sloupců pomocí *.

Podmínky a SELECT výraz

Stejně tak nás mohou zajímat jen některé řádky tabulky. To ale znamená, že musíme nějak specifikovat které. K tomu slouží další forma příkazu SELECT, kdy condition je podmínka, kterou musí splnit řádek, pokud má být ve výsledné tabulce:

SELECT * FROM name WHERE condition;

(ukázky - příkaz vracející restrikci tabulky na: zvířata se srstí; zvířata s alespoň 2 nohama, která máme rádi; alespoň 5 let stará zvířata, která nemáme rádi)

Kombinace

Obojí lze samozřejmě kombinovat.

SELECT col_1, col_2, ... , col_n FROM name WHERE condition;

(ukázka - výběr druhu a počtu nohou u zvířat, která máme rádi)

Příkazy UPDATE a DELETE

Příkaz UPDATE umožňuje měnit hodnoty atributů v n-ticích splňujících dané podmínky.

UPDATE name SET col1 = val1, col2 = val2,  ... , coln = valn WHERE condition;

(ukázka)

Příkaz DELETE umožňuje mazat n-tice splňující dané podmínky.

DELETE FROM name WHERE condition;

(ukázka)

Napojení na databázi z programu

K databázi se samozřejmě lze připojit i přímo z nějakého námi vytvářeného programu. Snad každý dostatečně zavedený jazyk má nějakou knihovnu umožňující pohodlnou práci s PostgreSQL.

Úkoly

  1. Pomocí příkazu/ů ALTER TABLE upravte tabulky se zaměstnanci z minulého cvičení do tvaru

    • jméno tabulky: employee
    • sloupce:
      • name typu varchar(20)
      • surname typu varchar(20)
      • birthday typu date
      • job_start_day type date
      • office typu int
      • email type varchar(50)
      • web typu varchar(50)
      • children_count typu smallint
      • gender typu char(1)
  2. Napište příkazy SELECT nad tabulkou employe s touto charakteristickou vlastností:

    • Bezdětný zaměstnanec (a varianta jen s jménem a příjmením).
    • Zaměstnanec s kanceláří číslo 007.
    • Zaměstnanec, který do zaměstnání nastoupil ještě před vlastním narozením. A variantu pouze s jménem, pohlavím, datem narození a datem nástupu.
    • Zaměstnanec který má více dětí než je číslo jeho/její kanceláře.
  3. Přidejte do tabulky employee nové řádky tak, aby každý z příkazů z předchozího úkolu vrátil jedinečný výsledek.

  4. Zksute si nad tabulkou employee libovolné úpravy a mazání ntic.

  5. Zkuste se připojit k databázi na database.inf.upol.cz ze svého oblíbeného programovacího jazyka a něco udělat (CREATE TABLE, SELECT, ALTER TABLE, DROP TABLE, …)