Sobes.tech
Junior

Čo vieš o vzorkoch a spojeniach v databázach?

sobes.tech AI

Odpoveď od AI

Vzorky (dotazy SELECT) extrahujú údaje z jednej alebo viacerých tabuliek. Spojenia (JOIN) kombinujú riadky z dvoch alebo viacerých tabuliek na základe spojenej stĺpca medzi nimi.

Typy spojení:

  • INNER JOIN: Vracia riadky, ktoré majú zhody v oboch tabuľkách.
  • LEFT JOIN (LEFT OUTER JOIN): Vracia všetky riadky z ľavej tabuľky a zodpovedajúce riadky z pravej. Ak zhoda chýba, vráti NULL pre pravú tabuľku.
  • RIGHT JOIN (RIGHT OUTER JOIN): Vracia všetky riadky z pravej tabuľky a zodpovedajúce riadky z ľavej. Ak zhoda chýba, vráti NULL pre ľavú tabuľku.
  • FULL JOIN (FULL OUTER JOIN): Vracia všetky riadky, ak je zhoda aspoň v jednej z tabuliek. Ak zhoda chýba, vráti NULL pre chýbajúce polia. (Nie je podporované všetkými SGBD, napríklad MySQL používa UNION na emuláciu).
  • CROSS JOIN: Vracia kartézsky súčin riadkov oboch tabuliek (každý riadok prvej tabuľky sa kombinuje s každým riadkom druhej).

Príklady syntaxe:

-- INNER JOIN
SELECT *
FROM table1
INNER JOIN table2 ON table1.id = table2.foreign_id;
-- LEFT JOIN
SELECT customer.name, order.order_id
FROM customer
LEFT JOIN order ON customer.id = order.customer_id;

Kľúčové slová pre dotazy:

  • SELECT: Určuje stĺpce na extrahovanie.
  • FROM: Uvádza tabuľku(y).
  • WHERE: Filtruje riadky podľa zadaných podmienok.
  • GROUP BY: Zoskupuje riadky s rovnakými hodnotami do jednej zhrnujúcej riadky.
  • HAVING: Filtruje skupiny po GROUP BY.
  • ORDER BY: Zoradí výsledok.
  • LIMIT / OFFSET: Obmedzuje počet vrátených riadkov.

Optimalizácia dotazov a spojení je dôležitá pre výkon databázy. Používajú sa indexy, správne definície typov údajov, vyhýbanie sa SELECT * (ak je to možné), optimalizácia podmienok v WHERE.

V PHP sa na prácu s dotazmi a spojeniami používajú rozšírenia ako PDO alebo MySQLi, ktoré poskytujú API na vykonávanie SQL dotazov.