If you're seeing this message, it means we're having trouble loading external resources on our website.

Pokud používáš webový filtr, ujisti se, že domény: *.kastatic.org and *.kasandbox.org jsou vyloučeny z filtrování.

Hlavní obsah

Aktualizace databáze pomocí SQL

V průběhu celého kurzu jsme si několikrát řekli, že existuje spousta případů, kdy můžeme využít SQL nebo jemu podobné jazyky. O některých těchto použitích můžeme mluvit jako o 'operacích jen pro čtení' a o některých jako o 'operacích pro čtení/zápis'.
Příkladem operace 'jen pro čtení' je například analýza dat nějakých aplikací nebo z dat výzkumných studií. Tak třeba, když bych byla datový analytik pracující pro deníkovou aplikaci, třeba bych potřebovala zjistit, jaké procento uživatelů si dá zmrzlinu v ten samý den, kdy si byli zaběhat, abych zjistila, jestli se lidé po cvičení rádi odměňují:
SELECT * FROM deník WHERE
       jídlo LIKE "%zmrzlina%" AND aktivita LIKE "%běhání%";
Pokud bych dělala takovéto analýzy, potom bych prováděla pouze příkaz SELECT - tedy jen pro čtení. Nevytváříme žádná nová data, pouze se dotazujeme na data již existující. V tomto případě musíme být velmi dobří v používání příkazu SELECT, ale už nepotřebujeme tak dobře umět vytvářet tabulky, upravovat řádky, a tak podobně.
Příkladem operace čtení/zápis je pak softwarové inženýrství, programující veškeré potřebné nástroje (backend) pro webovou aplikaci. Když bych byla softwarová inženýrka pracující na aplikaci monitorující zdraví, chtěla bych například napsat kód, který vloží do databáze denní záznam pokaždé, když uživatel odešle formulář:
INSERT INTO deník (id, food, activity)
            VALUES (123, "zmrzlina", "běhání");
V tomto případě bych nejspíše zadávala tento SQL dotaz pomocí programovacího jazyka na straně serveru, pravděpodobně pomocí nějaké knihovny, aby celé vytváření příkazů bylo jednodušší. Takto by tento příkaz vypadal za použití jazyka Python s knihovnou SQLAlchemy:
deník.insert().values(id=123, food="zmrzlina", activity='běhání')
Také bych měla umět napsat SQL dotaz k úpravě databáze pro případy, kdy uživatel změnil svůj denní záznam, smazal tento záznam, nebo dokonce smazal svůj účet. Nebo by se vývojářský tým rozhodl přidat další funkce, například použití smajlíků v novém sloupci k vyjádření toho, jak moc šťastní byli uživatelé, když si po běhání dali zmrzlinu (předpokládám, že velmi spokojení). Pak bych musela napsat takový SQL dotaz, který by pozměnil celé tabulkové schéma.
Tohle všechno jsou operace pro zápis, které jsou nezbytné pro ukládání a změnu údajů v databázi. Příkaz INSERT je docela bezpečný, protože pouze přidává data, ale příkazy jako UPDATE, DELETE, DROP, nebo ALTER jsou mnohem nebezpečnější, protože pozměňují již existující data. Proto je nezbytně nutné tyto příkazy velmi dobře znát a používat je opatrně. Pojďme se je naučit používat!

Chceš se zapojit do diskuze?

Zatím žádné příspěvky.
Umíš anglicky? Kliknutím zobrazíš diskuzi anglické verze Khan Academy.