Plnění seznamu přání

Tabulka je hotová, tak ji naplňte. Než obchod seznam přání spustil, požádal několik zákazníků, aby ho vyzkoušeli, a ti si do něj uložili svá první přání. Někteří si přejí hry, které si mezitím koupili, jiní hry, které si nekoupili. Pár z nich si přeje Robot Rebellion a Mystery Manor, které ještě nevyšly, a dva z nich, Filip Beneš a Martin Zeman, si zatím nic neobjednali.

V editoru najdete soubor projektu s řešením minulého cvičení. Odteď jsou dotazy z předchozích cvičení zakomentované, aby Výsledky ukazovaly jen ty nové. CREATE TABLE (a brzy i INSERT) se dál provádí, protože každé spuštění začíná s čerstvou databází.

Pro připomenutí: jeden INSERT může přidat mnoho řádků. Za název tabulky napište do závorek sloupce a za VALUES jednu dvojici závorek pro každý řádek, oddělené čárkami. Text i datum patří do apostrofů:

INSERT INTO recenze (hra_id, zakaznik_id, hvezdicky, komentar)
VALUES
    (9, 4, 4, 'Skvělé hádanky.'),
    (4, 7, 5, NULL);

Teď už platí pravidla, která jste tabulce dali. Přání zákazníka, který neexistuje, například (99, 1, '2025-06-01'), zastaví INSERT chybou FOREIGN KEY constraint failed. Stejná hra dvakrát v seznamu jednoho zákazníka ho zastaví chybou UNIQUE constraint failed: seznam_prani.zakaznik_id, seznam_prani.hra_id: primární klíč nedovolí dva řádky se stejnými hodnotami, stejně jako UNIQUE, a proto zpráva jmenuje oba jeho sloupce. A když jeden řádek příkazu INSERT poruší pravidlo, selže celý příkaz a nepřidá ani jeden ze svých řádků.

Typická chyba: datum bez apostrofů. Pro SQLite není 2025-10-01 datum, ale výpočet, 2025 minus 10 minus 1, takže by přání dostalo datum 2014. A chyba nebude žádná: tabulka STRICT číslo bez námitek převede na text '2014', protože se přitom nic neztratí. Datum proto vždycky pište do apostrofů.

Tabulka plná ID se lidem čte špatně. Abyste viděli, kdo chce kterou hru, spojte seznam přání s tabulkou zakaznici (přes zakaznik_id) a s tabulkou hry (přes hra_id), jak jste se to naučili v lekci o spojování tabulek. S krátkými aliasy tabulek, třeba sp, z a h, zůstane dotaz přehledný.

Pokyny

Pod komentář -- 2. Plnění seznamu přání napište jeden INSERT, který do seznamu přání přidá těchto 15 řádků (sloupce zakaznik_id, hra_id a pridano):

(1, 8, '2025-10-01'),
(1, 18, '2025-03-02'),
(2, 15, '2025-11-15'),
(2, 19, '2025-07-19'),
(3, 15, '2025-11-16'),
(5, 1, '2025-01-10'),
(5, 7, '2025-02-01'),
(6, 5, '2024-05-20'),
(7, 18, '2025-04-11'),
(9, 1, '2025-06-30'),
(10, 15, '2025-11-20'),
(12, 18, '2025-05-10'),
(12, 19, '2025-05-10'),
(13, 10, '2025-08-25'),
(14, 8, '2025-10-05')

Pak ověřte, že jsou tam všechny: pod INSERT ukažte počet řádků tabulky jako sloupec s názvem vsechna_prani:

vsechna_prani
15

Teď seznam přání ukažte tak, aby se dal číst: jméno zákazníka, název hry a datum přidání (sloupce jmeno, nazev a pridano), seřazené podle jména a pak podle názvu. Začíná takto:

jmenonazevpridano
Anna KučerováDragon Forge2025-01-10
Anna KučerováStar Pilots2025-02-01
Eva NovotnáGoal Rush2025-10-01
Eva NovotnáRobot Rebellion2025-03-02
………

Začněte programovat zdarma

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

2/6