Manipulační část jazyka SQL (DML – insert, update, delete) a příklady na databázi Knihovna

SQL

SQL (Structured Query Language) slouží k vytváření databází, vyhledávání a prací s daty v nich uložených. Jazyk SQL byl vyvinut firmou IBM na počátku 70. let jako dotazovací jazyk pro práci s velkými databázemi na počítačích střediskového typu. Cílem tvůrců SQL bylo vyvinout takový nástroj pro koncové uživatele, který by jim umožnil vybírat data z databáze přesně podle jejich individuálních požadavků a byl přitom co nejjednodušší.

Jazyk se skládá ze dvou hlavních částí:

  • Příkazy jazyka DDL (Data Definition Language) - např.: CREATE, ALTER, DROP
  • Příkazy jazyka DML (Data Manipulation Language)

SQL DML

SQL DML je manipulační část programovacího jazyka SQL určená pro manipulaci s daty. Mezi hlavní příkazy patří - SELECT, INSERT, UPDATE a DELETE. Příkazy slouží k dotazování a úpravám databázových dat v tabulkách. Abychom mohli s daty pracovat, je potřeba je nejprve vložit do tabulky - INSERT.[1]

INSERT

Příkazem INSERT (vlož) vkládáme data do databáze. Je možné přidat jeden ale i více dat najednou. Příkazem INSERT INTO vložíme nové řádky do tabulky a existují dvě varianty tohoto příkazu.

  • 1. Vkládáme pouze hodnoty bez názvů sloupců - tedy zaplňujeme všechny sloupce

př.:
INSERT INTO table_name VALUES (value1, value2, value3,…);
table_name: name of the table.
value1, value2,.. : value of first column, second column,… for the new record

  • 2. Vkládáme hodnoty a určujeme do jakého sloupce budou vloženy

př.:
INSERT INTO table_name (column1, column2, column3, ..) VALUES (value1, value2, value3, ..);
table_name : name of the table.
column1 : name of first column, second column…
value1, value2, value3 : value of first column, second column,… for the new record[2]

INSERT INTO Dilo(nazev, popis)
VALUES("Těžký časy", "Soubor 35 krátkých povídek.");
Vlož do tabulky Dílo (do sloupců název, popis) hodnoty ("Těžký časy", "Soubor 35 krátkých povídek")

INSERT INTO Autor(jme_aut,pri_aut)
VALUES("Charles","Bukowski");
Vlož do tabulky Autor (sloupců jme_aut, pri_aut) hodnoty ("Charles", "Bukowski")

SELECT

Když máme v tabulkách data, můžeme na data různými způsoby i dotazovat, což je možné prostřednictvím příkazu SELECT (vyber). Pokud mluvíme o tomto příkazu, musíme připomenout i příkazy, které jsou s ním neoddělitelně spjaty. Těmi jsou FROM a WHERE. Jde o základní strukturu na dotazování dat SELECT/FROM/WHERE. Výsledkem dotazu je relace.

SELECT NazvySloupcu
FROM NazevTabulky
WHERE ExistujiNějakePodminky

Podmínkou rozumíme upřesnění výskytu, který chceme hledat (název, identifikátor, ...).

př.:

SELECT * FROM Customers
WHERE Country='Mexico';

Vyber všechny záznamy z tabulky Customers, které mají ve sloupci Country název Mexico.[3]

UPDATE

Příkazem UPDATE je možné modifikovat data v již existující databázi. Můžeme měnit více hodnot sloupce najednou. Aby nedošlo ke katastrofě a omylem jsme nezměnili data ve všech řádcích, je nutné použít klauzuli WHERE.

př.:
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

UPDATE Vytisk
SET cena = 120
WHERE cena = 100;
Změň v tabulce Výtisk cenu stokorunových výtisků na 120 Kč (cenu na 120 tam, kde je cena 100)

UPDATE ctenar
SET jme_cte = „Josef“
WHERE jme_cte = „Petr“
AND pri_cte = „Novák“;
Změň křestní jméno Petra Nováka na Josef.

DELETE

Příkaz DELETE je opět spjat s klauzulí WHERE. Pokud neupřesníme podmínky, smažeme všechny řádky tabulky.

př.:
DELETE FROM table_name
WHERE condition;

DELETE FROM Pokuta
WHERE dat_pok = "24122016";
Vymaž z tabulky Pokuty záznamy pokut, které vznikly na Vánoce 2016 (které mají ve sloupci dat_pok datum "24122016")

DELETE FROM Pokuta;
Vymaž všechny pokuty z tabulky Pokuty

DELETE FROM Vypujcka
WHERE dat_od = "24122016"
AND dat_do = "31122016";
Smaž všechny výpůjčky od Vánoc do Silvestra

Vysvětlení formy data: v konceptuálním schématu knihovny máme definovanou délku data na 8 znaků. Můžeme tedy datum napsat ve formě 24122016 nebo 24.12.16 - podstatné je dodržet délku pole, což je 8 znaků.

Zdroje

Použité zdroje

Reference

  1. Kroenke, David M. - Auer, David J., Databáze
  2. Geeks for Geeks, SQL - INSERT INTO statement
  3. W3Schools

Související články

Klíčová slova

SQL, dotazovací jazyk, databáze, data