MySQL: Manipulujeme s daty s použitím příkazů Insert, Update, Merge, Delete



Minule jsme se tu věnovali SQL příkazu Select, dnes se podíváme na čtveřici Insert, Update, Merge a Delete. Jak už jejich názvy napovídají, bude tu tedy řeč o vkládání, změnách a mazání dat v databázi.

Příkazy pro modifikaci dat je pochopitelně nutné používat s rozmyslem. Jeden špatně promyšlený SQL příkaz může napáchat nedozírné škody.
Příkazy pro modifikaci dat je pochopitelně nutné používat s rozmyslem. Jeden špatně promyšlený SQL příkaz může napáchat nedozírné škody.
Jak už jste se mohli dočíst v našich předchozích článcích o SQL, budeme vycházet ze syntaxe příkazů tak, jak jsou implementovány v oblíbeném databázovém systému MySQL; nicméně většina zde uvedených informací platí pro jazyk SQL obecně, nezávisle na implementaci.

A ještě ke způsobu zápisu syntaxe: Příkazy v hranatých závorkách jsou volitelné, použít je tedy lze, ale nejsou nezbytné.

Vkládáme data

Data do tabulky lze vložit příkazem INSERT. Jeho syntaxe vypadá takto: INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] tabulka [(nazev_sloupce,...)] {VALUES | VALUE} ({vyraz | DEFAULT},...),(...),... [ ON DUPLICATE KEY UPDATE sloupec=vyraz [, col_name=expr] ... ]. Jakkoli to na první pohled může vypadat komplikovaně, v praxi je použití velmi snadné. Příklad příkazu Insert může vypadat třeba takto: INSERT INTO zamestnanci VALUES (‘Jan Novak‘). I když, po pravdě, takový příkaz by předpokládal, že máte v tabulce pouze sloupec s kompletními jmény zaměstnanců, což není příliš pravděpodobné. Reálnější příklad by už tedy mohl být: INSERT INTO zamestnanci(jmeno, prijmeni, mzda) VALUES (‘Jan‘, ‘Novak‘, 50000).

Upravujeme data s Update

Příkaz Update slouží ke změně (updatu) dat v tabulce a jeho použití může vypadat třeba takto: UPDATE tab1 SET mzda = 55000 WHERE jmeno LIKE 'Novak'. Zde tedy dojde ke změně sloupce mzda u člověka z tabulky tab1 se jmenem Novak na 55000. (Ne, že by zrovna takto definovaný příkaz Update byl tou nejlepší volbou, třeba kvůli duplicitě jmen, že ano). Kromě hodnot, na kterou se mají sloupce změnit (opět lze zadat více sloupců oddělených čárkou), lze zadat i výrazy.

Rovněž lze na konci příkazu použít modifikátory [ORDER BY ...] [LIMIT pocet]. LIMIT omezuje počet změněných řádků – a v tom okamžiku dává smysl o modifikátor ORDER BY, tedy seřaď podle.

Příkazy Merge a Delete

Příkaz MERGE kombinuje příkazy INSERT a UPDATE. Data tedy buď vloží, pokud neexistuje odpovídající klíč, nebo změní, pokud existuje. U MySQL místo příkazu Merge můžete použít příkazu Insert s modifikátorem ON DUPLICATE KEY UPDATE, který můžete vidět v obecném zápisu syntaxe příkazu Insert výše.

A konečně příkaz Delete maže záznamy v tabulce. Způsob použití je velmi podobný příkazu Update, jen pochopitelně není třeba definovat, jaký sloupec se má jak změnit. Příkladem tedy může být tedy třeba příkaz DELETE FROM tab1 WHERE id=5, kdy dojde ke smazání řádku (nebo řádků) s id=5 z tabulky tab1. Opět lze použít modifikátory [ORDER BY ...] [LIMIT pocet], kde LIMIT omezuje počet smazaných řádků – a spolu s ním tedy opět dává smysl i modifikátor ORDER BY, tedy seřaď podle.

Na závěr

Výše je tedy uvedeno základní použití SQL příkazů Insert, Update, Merge a Delete, nicméně opět možností a způsobů využití je výrazně více, jak je ostatně vidět například z výše nastíněné syntaxe příkazu Insert. Věříme však, že pro základní představu uvedené příklady postačí.


(23. 9. 2013 | redakce2)


Předcházející článek: <<< MySQL: Manipulujeme s daty příkazem Select <<<
Následující článek: >>> MySQL: A ještě příkazy pro řízení práce s daty >>>

Tento článek je součástí speciálu:

Jazyk SQL v kostce: Od Select po Commit


Příkazy jazyka SQL lze rozdělit do několika skupin, podle toho, co je jejich účelem.

Jazyk SQL (z anglického Structured Query Language) asi není třeba dlouze představovat: Řada uživatelů počítačů jej zná z desktopových databází a snad všichni, kdo se někdy zabývali tvorbou webu, jej pak používají pro propojení skriptovacího jazyka stránek – nejčastěji PHP – s backendovou databází – nejčastěji MySQL. Pojďme se tedy společně podívat jak na základy, tak na některá zákoutí SQL.



Komentáře, názory a rady

Zatím sem nikdo nevložil žádný komentář. Buďte první...

>>> Číst a vkládat komentáře <<<

Tip - Konference: Mobilní řešení pro byznys - 21.9.2017!


Otázky a odpovědi z IT: Diskusní portál Bizio.cz
Pozoruhodné IT produkty pro rok 2017
Věříme, že v tomto přehledu pozoruhodných produktů najdete ty, které vám pomohou ve vaší práci v IT.




Anketa


©2011-2017 BusinessIT.cz, ISSN 1805-0522 | Názvy použité v textech mohou být ochrannými známkami příslušných vlastníků.
Provozovatel: Bispiral, s.r.o., kontakt: BusinessIT(at)Bispiral.com | Inzerce: Best Online Media, s.r.o., zuzana@online-media.cz
Používáme účetní program Money S3
O vydavateli | Pravidla webu BusinessIT.cz a ochrana soukromí | pg(1527)