O nás     Inzerce     KontaktSpolehlivé informace o IT již od roku 2011
Hledat
Nepřehlédněte: Usnadní vám práci: Pozoruhodné IT produkty pro rok 2024
Správa dokumentů
Digitální transformace
Informační systémy
Hlavní rubriky: Informační systémy, Mobilní technologie, Datová centra, Sítě, IT bezpečnost, Software, Hardware, Zkušenosti a názory, Speciály

Pozoruhodné IT produkty 2024
E-knihy o IT zdarma
Manuál Linux

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)


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

Jazyk SQL v kostce: Od Select po Commit

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í...


Facebook Twitter
Komentáře, názory a rady

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

>>> Číst a vkládat komentáře <<<
©2011-2024 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
O vydavateli | Pravidla webu BusinessIT.cz a ochrana soukromí | Používáme účetní program Money S3 | pg(1527)