Lekce 2.2

SQL v praxi

Výběr, filtrování a řazení dat, vkládání, úpravy a mazání záznamů, potom JOINy včetně rozdílu LEFT a RIGHT a agregace – vše nad připravenou databází e-shopu.

Cvičení 1

Sneaker shop

Co si vyzkoušíte

Budete psát dotazy nad databází e-shopu s teniskami a oblečením, nejdřív jen čtecí, potom i takové, které data mění. Databáze běží na stránce Sneaker shop, kde máte vlevo přehled tabulek a sloupců. Když se data rozbijí, tlačítko Obnovit databázi je vrátí do výchozího stavu.

Zadání

  1. Vypište celou tabulku products. Kolik produktů obchod nabízí a do jakých kategorií je dělí?
  2. Vypište název, značku a cenu všech tenisek, seřazené od nejdražších.
  3. Najděte tři nejlevnější produkty, které jsou skladem.
  4. Vypište zákazníky z Prahy a Brna seřazené podle data registrace, od nejnovějších.
  5. Jeden zákazník nemá vyplněné město. Najděte ho dotazem.
  6. Vložte do tabulky customers nového zákazníka s vymyšleným jménem a e-mailem. Dotazem ověřte, že v tabulce je. Jaké id mu databáze přidělila?
  7. Tereza Svobodová si změnila e-mail na tereza.s@example.cz. Upravte ho a ověřte, že se změnil jen její řádek.
  8. Obchod zdražuje všechny mikiny o 10 %. Upravte jejich ceny jedním příkazem a zaokrouhlete je na celé koruny. Funkce ROUND(price * 1.1) vrátí novou cenu zaokrouhlenou na celé číslo.
  9. Smažte zákazníka Davida Pospíšila. Než příkaz spustíte, ověřte podmínku dotazem SELECT.
  10. Zkuste stejně smazat zákaznici Terezu Svobodovou. Opište hlášku, kterou databáze vypíše, a vysvětlete, proč smazání odmítla. Co by se muselo stát, aby šla smazat?

Bonus

  1. Smažte objednávku 101 a zjistěte, co se stalo s jejími řádky v order_items. Proč tady databáze smazání neodmítla?
  2. Zkuste vložit zákazníka s e-mailem, který už v tabulce je, a potom objednávku pro zákazníka s id 99. Které pravidlo databáze v každém z obou případů hlídá?
  3. Vypište všechny značky, které obchod prodává, každou jen jednou.