Databázové systémy. Cvičení 6: SQL



Podobné dokumenty
Zpracování informací

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

Zpracování informací (kombinované studium)

Databáze SQL SELECT. David Hoksza

KIV/ZIS cvičení 6. Tomáš Potužák

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

KIV/ZIS cvičení 5. Tomáš Potužák

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

Databázové systémy a SQL

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

Databáze I. Přednáška 6

Jazyk SQL databáze SQLite. připravil ing. petr polách

SQL v14. 4D Developer konference. 4D Developer conference 2015 Prague, CZ Celebrating 30 years

8.2 Používání a tvorba databází

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

SQL. strukturovaný dotazovací jazyk. Structured Query Language (SQL)

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR):

Úvod do databázových systémů

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav

Zpracování informací

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata

Úvod do databázových systémů

Databázové systémy Cvičení 5.2

Databáze I. Přednáška 4

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23

Databázové systémy Cvičení 5

Co bude výsledkem mého SELECTu? RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

RELAČNÍ DATABÁZOVÉ SYSTÉMY

KIV/ZIS - SELECT, opakování

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav

Databázové systémy I

Databázové systémy trocha teorie

Databázové systémy Cvičení 5.3

Kapitola 4: SQL. Základní struktura

Databázové systémy. Datová integrita + základy relační algebry. 4.přednáška

Úvod do databázových systémů 3. cvičení

Databázové systémy a SQL

Informační systémy ve zdravotnictví. 10. cvičení

Operátory ROLLUP a CUBE

Databáze 2011/2012 SQL DDL (CREATE/ALTER/DROP TABLE), DML (INSERT/UPDATE/DELETE) RNDr.David Hoksza, Ph.D.

Úvod do databázových systémů

Materiál ke cvičením - SQL

- sloupcové integritní omezení

Základy informatiky. 08 Databázové systémy. Daniela Szturcová

MySQL. mysql> CREATE DATABASE nova CHARACTER SET latin2 COLLATE latin2_czech_cs; Query OK, 1 row affected (0.02 sec)

Úvod do databázových systémů

Základní přehled SQL příkazů

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou

SQL SQL-SELECT. Informační a znalostní systémy. Informační a znalostní systémy SQL- SELECT

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

Osnova je orientační pro FIT, u FEKTu se dá předpokládat, že budou zohledněny předchozí znalosti studentů, kde většina s databází nikdy přímo

XMW4 / IW4 Pokročilé SELECT dotazy. Štefan Pataky

Databázové systémy a SQL

Maturitní témata z předmětu PROGRAMOVÉ VYBAVENÍ pro šk. rok 2012/2013

6. blok část B Vnořené dotazy

RNDr. Michal Kopecký, Ph.D. Department of Software Engineering, Faculty of Mathematics and Physics, Charles University in Prague

PG 9.5 novinky ve vývoji aplikací

Jazyk S Q L základy, příkazy pro práci s daty

Úvod do databázových systémů

Sada 1 - PHP. 14. Úvod do jazyka SQL

KIV/ZIS - SQL dotazy. stáhnout soubor ZIS- 04_TestovaciDatabaze accdb. SQL dotazy. budeme probírat pouze SELECT

Materializované pohledy

1. Relační databázový model

Databázové a informační systémy

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.

Základy informatiky. 06 Databázové systémy. Kačmařík/Szturcová/Děrgel/Rapant

Použití databází na Webu

12. blok Pokročilé konstrukce SQL dotazů - část II

SPŠS Č.Budějovice Obor Geodézie a Katastr nemovitostí 3.ročník ATRIBUTY ZÁKLADN POJMY VÝBĚR PRVKŮ DLE ATRIBUTŮ

Informační systémy ve zdravotnictví. 6. cvičení

Jazyk SQL 3 - DML, DDL, TCL, DCL

Jazyk SQL 1. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2011/12

Databáze I. 5. přednáška. Helena Palovská

Oracle XML DB. Tomáš Nykodým

Marian Kamenický. Syntea software group a.s. marian.kamenicky. MFFUK Praha 2012/13

Databázové systémy Tomáš Skopal

Structured Query Language SQL

DJ2 rekurze v SQL. slajdy k přednášce NDBI001. Jaroslav Pokorný

Databázové a informační systémy Jana Šarmanová

MS Access Dotazy SQL

6. SQL složitější dotazy, QBE

Databázové systémy, MS Access. Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1130_Databázové systémy, MS Access_PWP

Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června krovacek@students.zcu.cz

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL,

DUM 12 téma: Příkazy pro tvorbu databáze

TRANSAKCE

Administrace Oracle. Práva a role, audit

Stručný obsah. K2118.indd :15:27

Stručný obsah. část III Aktualizace dat Kapitola 10: Aktualizace databáze 257 Kapitola 11: Integrita dat 275 Kapitola 12: Zpracování transakcí 307

Databázové a informační systémy

Přehled systému Microsoft SQL Server. Komu je kniha určena Struktura knihy Nejvhodnější výchozí bod pro čtení knihy Konvence a struktura knihy

ÚVOD DO DATABÁZÍ. Metodické listy pro předmět

Zápisování dat do databáze

SQL - trigger, Databázové modelování

Optimalizace dotazů a databázové transakce v Oracle

Transkript:

Databázové systémy Cvičení 6: SQL

Co je SQL? SQL = Structured Query Language SQL je standardním (ANSI, ISO) textovým počítačovým jazykem SQL umožňuje jednoduchým způsobem přistupovat k datům v databázi vznášet dotazy na data (agregační funkce apod.), vyzvedávat data z databáze (dataset text, tabulka, XML,...), vkládat nové záznamy do databáze, mazat záznamy z databáze, aktualizovat záznamy v databázi, měnit strukturu databáze (struktura záznamů, indexy,...) standardní počítačový jazyk pro přístup a manipulaci s databází.

SQL je standard, ale... Standardní SQL nalezneme v mnoha DB prostředích (MS Access, DB2, Informix, MS SQL Server, Oracle, Sybase,...) Všechna tato prostředí obsahují různě zpracované interpretery SQL, základní operace stanovené ANSI (např. příkazy SELECT, UPDATE, DELETE, INSERT, klauzule WHERE, ) však obsahují všechny. Nejčastěji diskutované rozdíly v různých interpretacích SQL spočívají v proprietárních rozšířeních původního standardu.

Data ke kterým přistupujeme SQL Databáze je zpravidla tvořena jednou nebo více tabulkami. Každá tabulka je jednoznačně identifikovatelná svým jménem (např. Adresář, Objednávky..). Tabulky obsahují záznamy/struktury s daty, např. Jméno: Příjmení: Adresa: Město: PSČ: Alois Vocásek Severní 10 Brno 606 00 Kryšpín Jelítko Jižní 11 Praha 116 00 Felix Bůček Západní 3 Ostrava 825 00 Tadeáš Jelítko Východní 8 Plzeň 322 00

SQL: Jazyk pro manipulaci s daty (DML) SQL (Structured Query Language) je syntaktický předpis pro vykonávání dotazů na data: SELECT Příjmení FROM Adresář Where PSČ LIKE '6????' Obsahuje však i syntaktické struktury pro manipulace se záznamy: UPDATE aktualizace dat v určeném záznamu dané tabulky DELETE smazání vybraných záznamů z konkrétní tabulky INSERT INTO vložení nového záznamu do dané tabulky

SQL: SELECT Základní syntax: SELECT column_name(s) FROM table_name; Výběr všech sloupců zvolené tabulky: symbol * SELECT * FROM table_name; Příklad výběru zvolených sloupců: SELECT Příjmení, Jméno FROM Adresář; Příjmení: Jméno: Vocásek Alois Jelítko Kryšpín Bůček Felix Jelítko Tadeáš Výběr jen unikátních záznamů: Prefix DISTINCT SELECT DISTINCT Příjmení FROM Adresář;

SQL: SELECT Klauzule alias: Aliasy mohou být využity pro tabulky i sloupce: SELECT column AS column_alias FROM table; (typicky pro vlastní pojmenování sloupců na výstupu) SELECT column FROM table AS table_alias; (typicky pro substituci jmen při definici relací uvnitř jedné tabulky) Klauzule OrderBy: Předpis pro třídění řádek výstupu, např.: SELECT Jméno, Příjmení FROM Adresář ORDER BY Příjmení, Jméno; Třídění v opačném pořadí: suffix DESC SELECT Distinct Příjmení FROM Adresář ORDER BY Příjmení DESC;

SQL: SELECT Klauzule Where: Definice pravidel pro výběr záznamů: SELECT <sloupce> FROM <tabulky> Where <Podmínky>; Jednotlivé podmínky je možné logicky spojovat pomocí And/Or K definici vyhodnocovacích podmínek je možné použít Porovnávání ordinárního obsahu polí: <, >, =, < > (nebo!=), > =, < = SELECT... WHERE PSČ < '600 00'; Test přítomnosti řetězce ve výrazu: <výraz> LIKE <řetězec> SELECT... WHERE Jméno Like 'x'; Test zda hodnota výrazu leží mezi dvěma mezemi: Between.. And.. SELECT... WHERE Příjmení BETWEEN 'D' AND 'T'; Test zda výraz nabývá něktré z hodnot: IN (hodnota1, hodnota2,..) SELECT... WHERE Příjmení IN ('Vocásek','Buřt');

SQL: SELECT Formátování výstupů dotazu: Group By: Seskupování (agregace) dat dle určitého kritéria: SELECT Partner, SUM(platba) FROM PenezniDenik GROUP BY Partner; Having: Dodatečné filtrování výstupních (typicky agregovaných) dat SELECT Partner, SUM(platba) FROM PenezniDenik GROUP BY Partner Having SUM(platba)>1000000;

SQL: SELECT Agregační funkce (výběr): AVG(sloupec) : Aritmetický průměr agregovaných hodnot COUNT(sloupec) : Počet neprázdných řádek v daném sloupci COUNT(*) : Počet vybraných řádek FIRST(sloupec) : První nalezená hodnota v daném sloupci LAST(sloupec) : Poslední nalezená hodnota v daném sloupci MAX(sloupec) : Nejvyšší nalezená hodnota v daném sloupci MIN(sloupec) : Nejmenší nalezená hodnota v daném sloupci SUM(sloupec) : Součet nalezených hodnot v daném sloupci

SQL: SELECT Skalární funkce: Funkce na úrovni jednotlivých hodnot UCASE (c) : Převod výrazu c na velká písmena LCASE (c) : Převod výrazu c na malá písmena MID (c, první[,poslední]) : Výběr zvoleného počtu znaků z textového výrazu c LEN (c) : Délka textového výrazu c INSTR (c) : Numerická pozice substringu ve výrazu c LEFT (c, n) : Výběr prvních n znaků v textovém výrazu c RIGHT (c, n): Výběr posledních n znaků v textovém výrazu c ROUND (c, místa): Zaokrouhlení na daný počet desetinných míst MOD (x, y) : Vrací výsledek x mod y (zbytek po dělení) NOW () : Vrací aktuální systémové datum (bez parametru) FORMAT (c, format) : Změna formátu zobrazení pole DATEDIFF (d, datum1, datum2) : Datové kalkulace

SQL: SELECT Propojování tabulek je v SQL realizováno pomocí klíčů tabulek a konstrukcí WHERE: (výpis všech řádků na kterých je shoda v levé i pravé tabulce) SELECT Zam.Jmeno, Obj.Produkt FROM Zam, Obj WHERE Zam.ID=Obj.Vystavil_ID INNER JOIN: (dtto) SELECT Zam.Jmeno, Obj.Produkt FROM Zam INNER JOIN Obj ON Zam.ID=Obj.Vystavil_ID LEFT JOIN: (výpis všech záznamů levé tabulky, doplněných o data z Obj) SELECT Zam.Jmeno, Obj.Produkt FROM Zam LEFT JOIN Obj ON Zam.ID=Obj.Vystavil_ID RIGHT JOIN (výpis všech záznamů pravé tabulky, doplněných o data Zam) SELECT Zam.Name, Obj.Produkt FROM Zam RIGHT JOIN Obj ON Zam.ID=Obj.Vystavil_ID

SQL: Poddotazy Při tvorbě výrazů v SQL dotazech můžeme místo odkazů na hodnoty ve fyzických sloupcích použít i odkazy na virtuální tabulky, vytvářené dynamicky pomocí tzv. vnořených SQL dotazů Příklad: SELECT jméno, příjmení FROM platy WHERE plat > (SELECT AVG(plat) FROM platy)

SQL : UNION Sloučení výstupů více dotazů: Spojka UNION SQLquery1 UNION SQLquery2;

SQL: UPDATE, INSERT INTO, DELETE Modifikace dat v tabulkách je možná příkazy: INSERT INTO <tabulka> (<seznam sloupců>) VALUES (<seznam hodnot>); DELETE FROM <tabulka> WHERE <podmínky pro výběr řádek> UPDATE <tabulka> SET <sloupce> = <výrazy> WHERE <podmínky pro výběr řádek>;

SQL: Jazyk pro definici dat (DDL) CREATE TABLE vytvoření nové tabulky ALTER TABLE změna struktury tabulky DROP TABLE zrušení dané tabulky CREATE INDEX vytvoření indexu (klíče) DROP INDEX zrušení daného indexu

SQL: CREATE CREATE TABLE table_name( NázevSloupce1 <typ>, NázevSloupce2 <typ>,...) Používané typy: integer(n), int(n), smallint(n), tinyint(n): Celočíselné, n je max. počet míst decimal(n,d), numeric(n,d): Desetinná čísla, d je počet desetinných míst. char(délka): Řetězec s pevně danou délkou. varchar(max_délka): Řetězec s danou maximální délkou. date: Datum CREATE UNIQUE INDEX jméno_indexu ON table_name (<seznam sloupců zahrnutých v indexu>)

SQL: TRUNCATE a DROP Smazání dat v tabulce, zachování struktury: TRUNCATE TABLE table_name Změna struktury: ALTER TABLE table_name ADD jméno_odstavce <typ> DROP COLUMN <jména rušených odstavců> Odstranění stávajících struktur: DROP INDEX table_name.index_name DROP TABLE table_name DROP DATABASE database_name