Databáze 2

37. hodina DVOP WBB


Matěj Cajthaml — SSPŠ

©

Opakování

Jaké příkazy patří do DML?
Jaké znáte kardinality?
K čemu slouží .sort na poli? Co přijímá jako argument?
Jaký je rozdíl mezi tabulkou, sloupcem a řádkem?
Co je to merge conflict?

Další příkazy

Smazání řádku

Pořadí

Více pořadí

Limitování a posun

Unikátní hodnoty

Agregace

Co je to agregace?

Agregace

  • seskupení řádků do jedné či více hodnot
  • příklady: AVG, SUM, MIN, MAX, COUNT

Počet

Suma, min, max, průměr

Pojmenování

Seskupení

Seskupení s agregací

Having

Práce

Zjistěte, k čemu slouží HAVING.

Sekvence

Co je to primární klíč?

Primární klíč

  • sloupec, který je jedinečný
  • sloupec, který je neprázdný
  • sloupec, který není NULL

  • určuje, jak poznáme jedinečný řádek

Může mít tabulka více primárních klíčů?

serial

  • autoincrement
  • speciální datový typ
  • při vytvoření řádky se do sloupce vloží hodnota o jedna větší než byla předtím
  • sekvence
  • sekvence jsou sdílené v DB a mohou být použity ve více tabulkách

Indexy

  • několik typů
  • při vytváření tabulky
    • UNIQUE: sloupec musí být unikátní
    • PRIMARY KEY: sloupec je primární klíč
    • FOREIGN KEY: sloupec je cizí klíč (více později)
    • INDEX: sloupec je indexovaný

Klíč a AI

Ukázky v pg

Ukázky v pg

Je dříve uvedený kód v pořádku?

SQL Injection

  • bezpečnostní chyba
  • do parametru můžeme vložit vlastní SQL kód
  • co bychom mohli provést pomocí SQL Injection v minulém příkladu?

Řešení SQL Injection

  • nepoužívat čisté vkládání do SQL dotazu
  • použít správné metody nebo escapovat vstup
  • často taktéž tzv. prepared statements

Řešení SQL Injection

Pokročilé dotazy

Joiny

  • slouží k spojení dvou tabulek
  • pomocí podmínek
  • různé typy: INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN a další

Inner join

Join s podmínkou

Děkuji za pozornost!

  • matej.cajthaml@ssps.cz
  • https://ssps.cajthaml.eu/