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

(související článek)
 
(Není zobrazeno 28 mezilehlých verzí od 3 dalších uživatelů.)
Řádek 1: Řádek 1:
Příkazy pro manipulaci s daty (SELECT, INSERT, UPDATE, DELETE, …)<br/>
+
== SQL ==
 +
[[SQL]] (Structured Query Language) slouží k vytváření [[Databáze|databází]], vyhledávání a prací s [[Data|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 [[Osobní počítač|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í jazyk|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.<ref>Kroenke, David M. - Auer, David J., Databáze</ref>
 +
 
 +
=== 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ř.:''' <br/>
 +
'''INSERT INTO''' table_name VALUES (value1, value2, value3,…);<br/>
 +
table_name: name of the table.<br/>
 +
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ř.:'''<br/>
 +
'''INSERT INTO''' table_name (column1, column2, column3, ..) VALUES (value1, value2, value3, ..);<br/>
 +
table_name : name of the table.<br/>
 +
column1 : name of first column, second column…<br/>
 +
value1, value2, value3 : value of first column, second column,… for the new record<ref>[https://www.geeksforgeeks.org/sql-insert-statement/ Geeks for Geeks, SQL - INSERT INTO statement]</ref>  
 
<br/>
 
<br/>
==Příklady==
+
 
'''Vlož dílo "Těžký časy".'''<br/>
+
'''INSERT INTO''' Dilo(nazev, popis)<br/>
INSERT INTO Dilo(nazev, popis)<br/>
 
 
VALUES("Těžký časy", "Soubor 35 krátkých povídek.");<br/>
 
VALUES("Těžký časy", "Soubor 35 krátkých povídek.");<br/>
<br/>
+
''Vlož do tabulky Dílo (do sloupců název, popis) hodnoty ("Těžký časy", "Soubor 35 krátkých povídek")''<br/>
'''Vlož autor "Charles Bukowski".'''<br/>
+
 
INSERT INTO Autor(jme_aut,pri_aut)<br/>
+
'''INSERT INTO''' Autor(jme_aut,pri_aut)<br/>
 
VALUES("Charles","Bukowski");<br/>
 
VALUES("Charles","Bukowski");<br/>
 +
''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. <br/>
 +
 +
'''SELECT''' NazvySloupcu<br/>
 +
'''FROM''' NazevTabulky<br/>
 +
'''WHERE''' ExistujiNějakePodminky<br/>
 +
 +
Podmínkou rozumíme upřesnění výskytu, který chceme hledat (název, identifikátor, ...).
 +
 +
'''př.:'''<br/>
 +
 +
'''SELECT''' * '''FROM''' Customers<br/>
 +
'''WHERE''' Country='Mexico';<br/>
 +
 +
''Vyber všechny záznamy z tabulky Customers, které mají ve sloupci Country název Mexico''.<ref>[https://www.w3schools.com/sql/sql_select.asp W3Schools]</ref>
 +
 +
=== 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'''.<br/>
 +
 +
'''př.:'''
 
<br/>
 
<br/>
'''Vymaž pokuty, které vznikly na Vánoce.'''<br/>
+
'''UPDATE''' table_name<br/>
DELETE FROM Pokuta<br/>
+
SET column1 = value1, column2 = value2, ...<br/>
WHERE dat_pok = "24122016";<br/>
+
'''WHERE''' condition;<br/>
 +
 
 +
'''UPDATE''' Vytisk<br/>
 +
SET cena = 120<br/>
 +
'''WHERE''' cena = 100;<br/>
 +
''Změň v tabulce Výtisk cenu stokorunových výtisků na 120 Kč (cenu na 120 tam, kde je cena 100)''<br/>
 +
 
 +
'''UPDATE''' ctenar<br/>
 +
SET jme_cte = „Josef“<br/>
 +
'''WHERE''' jme_cte = „Petr“<br/>
 +
AND pri_cte = „Novák“;<br/>
 +
''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.
 
<br/>
 
<br/>
'''Vymaž všechny pokuty.'''<br/>
+
 
DELETE FROM Pokuta;<br/>
+
'''.:'''
 
<br/>
 
<br/>
'''Vymaž všechny autory.'''<br/>
+
'''DELETE FROM''' table_name <br/>
DELETE FROM Autor;<br/>
+
'''WHERE''' condition; <br/>
<br/>
+
 
''Vysvětlení: bez definice WHERE mažu všechno.''<br/>
+
'''DELETE FROM''' Pokuta<br/>
<br/>
+
'''WHERE''' dat_pok = "24122016";<br/>
'''Zmaž všechny výpůjčky od Vánoc do Silvestra.'''<br/>
+
''Vymaž z tabulky Pokuty záznamy pokut, které vznikly na Vánoce 2016 (které mají ve sloupci dat_pok datum "24122016")''<br/>
DELETE FROM Vypujcka<br/>
+
 
WHERE dat_od = "24122016"<br/>
+
'''DELETE FROM''' Pokuta;<br/>
 +
''Vymaž všechny pokuty z tabulky Pokuty''<br/>
 +
 
 +
'''DELETE FROM''' Vypujcka<br/>
 +
'''WHERE''' dat_od = "24122016"<br/>
 
AND dat_do = "31122016";<br/>
 
AND dat_do = "31122016";<br/>
 +
''Smaž všechny výpůjčky od Vánoc do Silvestra''<br/>
 
<br/>
 
<br/>
''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ů.''<br/>
 
<br/>
 
'''Zmaž autora Charles Bukowski.'''<br/>
 
DELETE FROM Autor<br/>
 
WHERE jme_aut = "Charles"<br/>
 
AND pri_aut = "Bukowski";<br/>
 
<br/>
 
'''Změň cenu stokorunových výtisků na 120 Kč.'''<br/>
 
UPDATE Vytisk<br/>
 
SET cena = 120<br/>
 
WHERE cena = 100;<br/>
 
<br/>
 
'''Změň křestní jméno Petra Nováka na Josef.'''<br/>
 
UPDATE ctenar<br/>
 
SET jme_cte = „Josef“<br/>
 
WHERE jme_cte = „Petr“<br/>
 
AND pri_cte = „Novák“;<br/>
 
  
== Odkazy ==
+
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 ===
 +
* Kroenke, David M. - Auer, David J. ''Databáze''. 1. vydání. Brno: Computer Press, 2015. ISBN 978-80-251-4352-0.
 +
* Data Manipulation Language. ''Wikipedia: The free encyklopedia'' [online]. 2020 [cit. 2021-03-23]. dostupné z: https://en.wikipedia.org/wiki/Data_manipulation_language
 +
* SQL | DDL, DQL, DML, DCL and TCL Commands. ''Geeks for Geeks [online]''. 2019 [cit. 2021-03-23]. Dostupné z: https://www.geeksforgeeks.org/sql-ddl-dql-dml-dcl-tcl-commands/
 +
* SQL. ''W3Schools [online]''. [cit 2021-03-23]. Dostupné z: https://www.w3schools.com/sql/sql_delete.asp
  
 
=== Reference ===
 
=== Reference ===
  
<references/>
+
<references />
  
 
=== Související články ===
 
=== Související články ===
Řádek 55: Řádek 107:
 
* [[Databáze]]
 
* [[Databáze]]
 
* [[SQL]]
 
* [[SQL]]
* [[Popis prvků konceptuálních modelů, smysl konceptuálního modelu a příklad modelu Knihovny]]<br/>
+
* [[Popis prvků konceptuálních modelů, smysl konceptuálního modelu a příklad modelu Knihovny]]
* [[Transformace konceptuálního modelu na datový model, základní prvky datového modelu, specifikace úlohy primárních a cizích klíčů]]<br/>
+
* [[Transformace konceptuálního modelu na datový model, základní prvky datového modelu, specifikace úlohy primárních a cizích klíčů]]
* [[Popis definiční části jazyka SQL,specifikace deklarace primárních a cizích klíčů a příklady na modelu knihovny]]<br/>
+
* [[Popis definiční části jazyka SQL,specifikace deklarace primárních a cizích klíčů a příklady na modelu knihovny]]
 
* [[Příkaz Select, jeho využití v databázi Knihovna|Příkaz Select, jeho využití v databázi Knihovna / popis klauzule NOT IN a její využití, Select s klauzulí GROUP BY, využití tohoto příkazu v databázi knihovna, základní duplicitní select a další agregátní funkce /.]]
 
* [[Příkaz Select, jeho využití v databázi Knihovna|Příkaz Select, jeho využití v databázi Knihovna / popis klauzule NOT IN a její využití, Select s klauzulí GROUP BY, využití tohoto příkazu v databázi knihovna, základní duplicitní select a další agregátní funkce /.]]
  
 
=== Klíčová slova ===
 
=== Klíčová slova ===
SQL, dotazovací jazyk, databáze
+
SQL, dotazovací jazyk, databáze, data
  
 
[[Kategorie:Informační studia a knihovnictví]]
 
[[Kategorie:Informační studia a knihovnictví]]
 
[[Kategorie:Informační technologie, knihovnické technologie]]
 
[[Kategorie:Informační technologie, knihovnické technologie]]

Aktuální verze z 27. 3. 2021, 13:14

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