Přidání řádků: INSERT
Zatím vaše dotazy data jen četly: ať jste se ptali na cokoli, tabulky zůstaly stejné. Data obchodu se ale mění pořád. Přibývají noví zákazníci, ceny stoupají a klesají, chodí objednávky. V této lekci se naučíte příkazy, které data mění: INSERT řádky přidává, UPDATE je mění a DELETE maže.
Nový řádek přidáte příkazem INSERT INTO (vlož do). Tento příkaz přidá do obchodu novou hru:
INSERT INTO hry (id, nazev, zanr, cena, vydano, vek_od)
VALUES (21, 'Snow Patrol', 'Akční', 499, '2026-03-12', 12);Za INSERT INTO následuje tabulka a v závorce sloupce, které vyplňujete. Za VALUES (hodnoty) jsou hodnoty, také v závorce a ve stejném pořadí: první hodnota patří do prvního sloupce, druhá do druhého a tak dál. Text a datum se píšou do apostrofů, čísla bez nich, stejně jako ve WHERE. A NULL znamená jako vždy žádnou hodnotu.
INSERT žádné řádky nenachází, a tak nemá tabulku s výsledkem. Na kartě Výsledky místo ní uvidíte, kolik řádků změnil: Změněné řádky: 1. Nový řádek uvidíte, když se na něj ve stejném souboru pod INSERT zeptáte dotazem:
SELECT *
FROM hry
WHERE id = 21;| id | nazev | zanr | cena | vydano | vek_od |
|---|---|---|---|---|---|
| 21 | Snow Patrol | Akční | 499 | 2026-03-12 | 12 |
Každé spuštění začíná s čerstvou kopií databáze. INSERT přidá Snow Patrol, dotaz pod ním hru ukáže, a když znovu kliknete na Spustit, je databáze zase taková jako na začátku a INSERT přidá hru znovu. V tomto kurzu tedy nemůžete nic pokazit: zkoušejte, co vás napadne. Zároveň to znamená, že příkazy, které data mění, a dotazy, které změnu ukazují, musí být ve stejném souboru. Karta Tabulky ukazuje tabulky vždycky tak, jak jsou na začátku, než se vaše příkazy provedou. (Ve skutečné databázi změna zůstane natrvalo. Proto se v této lekci naučíte i opatrnosti.)
Seznam sloupců můžete vynechat: INSERT INTO hry VALUES (21, 'Snow Patrol', …); pak potřebuje hodnotu pro každý sloupec tabulky, v pořadí, v jakém je tabulka má. Programátoři se tomu vyhýbají. Takový příkaz se hůř čte (které číslo je cena a které věk?), a až tabulka jednou dostane nový sloupec, přestane fungovat. Sloupce vždycky vypisujte.
Typická chyba: hodnoty nesedí na sloupce. Když je hodnot víc nebo míň než sloupců, SQLite to řekne, například 4 values for 3 columns (4 hodnoty pro 3 sloupce). Horší jsou hodnoty v jiném pořadí: s (cena, vek_od) a VALUES (12, 499) stojí hra 12 Kč a je vhodná od 499 let, a žádná chyba vás neupozorní. Zkontrolujte, že je každá hodnota pod svým sloupcem.
Jak psát:
Pokyny
Do obchodu se právě zaregistrovala nová zákaznice: Lucie Malá z Ostravy s e-mailem lucie.mala@mail.cz. Registrovala se 2026-01-12 a obchod jí doporučil Lukáš Procházka, zákazník s ID 4. Přidejte ji do tabulky zakaznici s ID 15. V INSERT vypište všech šest sloupců.
Pod INSERT ukažte všechny sloupce zákazníků, jejichž ID je větší než 12, seřazené podle ID. Poslední řádek je Lucie:
| id | jmeno | mesto | registrace | doporucil | |
|---|---|---|---|---|---|
| 13 | Kristýna Fialová | kristyna.fialova@mail.cz | Brno | 2025-08-21 | 11 |
| 14 | Martin Zeman | martin.zeman@mail.cz | Plzeň | 2025-10-03 | NULL |
| 15 | Lucie Malá | lucie.mala@mail.cz | Ostrava | 2026-01-12 | 4 |
Obchod bude prodávat i novou hru: Pirate's Cove, adventuru za 649 Kč od 12 let, která vyjde 2026-04-03. Přidejte ji s ID 21 (pozor na apostrof v názvu). Pak ukažte název, cenu a datum vydání všech adventur (žánr Adventura), seřazené podle názvu:
| nazev | cena | vydano |
|---|---|---|
| Lost Temple | 499 | 2022-04-07 |
| Mystery Manor | 649 | NULL |
| Ocean Deep | 399 | 2021-08-30 |
| Pirate's Cove | 649 | 2026-04-03 |
Začněte programovat zdarma
1/9