PostgreSQL

logo PostgreSQL

Logo PostgreSQL (Slonik)

Tento tutoriál je o databázovém systému PostgreSQL a o SQL jazyku obecně. Dozvíte se, co to je databázový systém, jak pracovat s databázemi pomocí jazyka SQL.

Výuku SQL ukazovat především v PostgreSQL, ale rozhodl jsem se doplnit informace i o několika dalších slavných SQL databázích. A to o MySQL (MariaDB), Oracle a SQLite 3.

Ukázky budou z OS Linux, ale všechny zmiňované databáze mohou běžet i na jiných operačních systémech (ano, mluvím o tobě, Windows). Na to, co je v jiných OS jinak, si už budete muset přijít sami. Jsem si však jist, že toho nebude mnoho (zásadní rozdíl je snad jen v instalaci a spouštění databázových systémů).

V tomto tutoriálu nepůjdu příliš do hloubky, ale pokusím se vysvětlit základy tak, aby je pochopil každý. Po přečtení tohoto tutoriálu budete schopni psát SQL příkazy, triggery, seznámíte se s PostgreSQL a pochopíte rozdíly mezi dalšími databázemi. Dostane se i na trochu teorie a pár pokročilejších témat, o kterých se ve škole obvykle nemluví :-). Dozvíte se toho dost na to, abyste mohli SQL databáze aktivně využívat a snadno si rozšiřovat obzory studiem oficiální dokumentace nebo dalších knih a tutoriálů.

Verze popisovaných databází jsou: PostgreSQL 9.4, MySQL 5.6 (MariaDB 10.1), SQLite 3.8 a Oracle Database XE 11.2g.

Obsah

PostgreSQL

  1. Instalace
    Instalace PostgreSQL a dalších SQL databází.
  2. Úvod do jazyka SQL
    Základní pojmy, co to SQL vlastně je.
  3. Začínáme s PostgreSQL
    Vytvoření databáze, práce s databází (dump databáze, export, import), metapříkazy.
  4. První tabulka
    Datové typy, práce s tabulkou, základní příkazy SQL:
    CREATE TABLE, INSERT, SELECT, DROP TABLE.
  5. Úprava tabulky
    Podmínka WHERE, Příkazy DELETE, UPDATE, ALTER TABLE.
  6. Sloupcová omezení, Indexy
    DEFAULT, CHECK, NOT NULL, UNIQUE, Index a DROP INDEX.
  7. Vytváření relací
    Relace - PRIMARY KEY, REFERENCES, příklad relační databáze.
  8. SELECT I a VIEW
    Výběr sloupců, relace, CREATE VIEW, CREATE TABLE AS.
  9. Opakování
    Příklady plnohodnotného využití příkazů SQL.
  10. SELECT II
    ORDER BY, GROUP BY, HAVING; COUNT, AVG, MIN, MAX, SUM …
  11. Funkce
    Co to je funkce, použití funkcí, jaké funkce existují.
  12. Podmíněné výrazy
    CASE, COALESCE, NULLIF, GREATEST, LEAST, IF.
  13. Telefonní databáze
    Příklad telefonní databáze. Vytvoření složeného unikátního klíče. Vytvoření složeného primárního klíče.
  14. SELECT III - Slučování tabulek
    Aliasy tabulek, používání příkazu CROSS/INNER/LEFT/RIGHT/FULL JOIN, UNION, INTERSECT, EXCEPT.
  15. SELECT IV - poddotazy
    Poddotazy, ALL, Korelovaný dotaz.
  16. Schémata
    Databáze versus Schéma, catalog, informační schéma, pg_catalog.
  17. Analytické funkce
    Analytické funkce, funkce závislé na pořadí řádků / WINDOW funkce. OVER - PARTITION BY klauzule.

Trocha teorie

  1. Normalizace
    Normální formy, 1NF, 2NF, 3NF a 3.5NF(BCNF).
  2. Transakce
    Transakce, úrovně izolace, typy konfliktů.
  3. ERD
    Entity Relationship diagram
  4. ERD 2
    Čtení ERD diagramu (tzv. ERDish jazyk), pokročilejší techniky kreslení ERD diagramů (XOR, hierarchie, rekurze, supertypy, subtypy).
  5. ERD - fyzický model
    Řešení relací M:M, supertypů a subtypů, převod do fyzického modelu.
  6. Indexy
    B-tree, organizace tabulek (halda, klastrovaný index), binární index.

Něco pro pokročilé

  1. Sekvence a Indexy
    Sekvence pro DEFAULTní hodnoty, vytváření a mazání indexů. Příkaz EXPLAIN.
  2. Úprava tabulky
    ALTER TABLE - přidání DEFAULT hodnoty do sloupce, vytvoření sloupce „serial“.
  3. Transakce prakticky
    BEGIN, COMMIT, ROLLBACK, SAVEPOINT. Izolace transakcí
  4. Datum a čas
    Ukládání data, času a časových zón. Aritmetika s časem.
  5. Přístupová práva
    GRANT, REVOKE, CREATE USER, SET ROLE.
  6. Vytváření funkcí
    CREATE FUNCTION, DROP FUNCTION, Jazyky SQL, PL/pgSQL a PL/Python.
  7. Triggery
    Příklady vytvářní triggerů v PL/pgSQL, MySQL, SQLite i Oracle.
  8. Materializované pohledy
    K čemu jsou materializované pohledy a jak je používat.
  9. Konfigurace
    Přehled konfigurace serveru i klienta, konfigurační soubory a adresáře s daty.

Bonus

  1. Kalendář (Svátky)
    SQL struktura a data kalendáře českých svátků, kterou používám na stránce Kalendář.
Komentář Hlášení chyby
Vytvořeno: 11.9.2005
Naposledy upraveno: 5.11.2016
Tato stánka používá ke svému běhu cookies, díky kterým je možné monitorovat, co tu provádíte (ne že bych to bez cookies nezvládl). Také vás tu bude špehovat google analytics. Jestli si myslíte, že je to problém, vypněte si cookies ve vašem prohlížeči, nebo odejděte a už se nevracejte :-). Prohlížením tohoto webu souhlasíte s používáním cookies. Dozvědět se více..