Databázové systémy a SQL

Podobné dokumenty
Databázové systémy a SQL

Databázové systémy a SQL

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

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

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

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

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

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

Zápisování dat do databáze

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

1 Úvod do práce s databází

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

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

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

Databáze SQL SELECT. David Hoksza

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

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

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

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

Algoritmizace a programování

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

Databázové systémy I

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

Operátory ROLLUP a CUBE

Dotazy tvorba nových polí (vypočítané pole)

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

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

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce

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

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

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

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

PG 9.5 novinky ve vývoji aplikací

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

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

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

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

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

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

MS EXCEL_vybrané matematické funkce

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

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

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

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

Kapitola 4: SQL. Základní struktura

Aritmetické operátory

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

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

Sada 1 - Základy programování

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

Databázové systémy I

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

5. POČÍTAČOVÉ CVIČENÍ

Text úlohy. Systémový katalog (DICTIONARY):

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

5. blok Souhrnné a skupinové dotazy

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

Jazyk PL/SQL Úvod, blok

U koly na procvic ení jazyka T-SQL

Internetová filmová databáze IFDB

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ázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

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

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

KIV/ZIS - SELECT, opakování

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

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

7. blok Funkce. Studijní cíl

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

Jazyk SQL 3 - DML, DDL, TCL, DCL

MS Access Dotazy SQL

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

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

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

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

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

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

Dotazování v relačním modelu a SQL

DATABÁZOVÉ A INFORMAČNÍ SYSTÉMY

Materiál ke cvičením - SQL

Operátory, výrazy. Tomáš Pitner, upravil Marek Šabo

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

KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM

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

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

6. blok část C Množinové operátory

Fakulta elektrotechniky a informatiky Databázové systémy 2. Leden 2010 souhrn. Červené dobře (nejspíš), modré možná

Jazyk SQL slajdy k přednášce NDBI001

Vzorové příklady SQL. Tabulka: Kniha CREATE TABLE kniha (id INTEGER, název VARCHAR(50), PRIMARY KEY (id))

Verzování a publikace dat na webu za pomoci PostgreSQL

Ukázka knihy z internetového knihkupectví

Dotazy v SQL. Výraz relační algebry R1( )[A1,A2,...,Aj] lze zapsat takto: SELECT A1,A2,...,Aj FROM R1 WHERE. Výraz (R1, R2... Rk)( )[A1,A2,...

Vkládání, aktualizace, mazání

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

SII - Informatika. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá:

Structured Query Language SQL

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA HORNICKO GEOLOGICKÁ FAKULTA INSTITUT GEOINFORMATIKY. Prostorové databáze

Operace s vektory a maticemi + Funkce

Transkript:

Databázové systémy a SQL Lekce 2 Daniel Klimeš Autor, Název akce 1

CREATE TABLE Vytvoření tabulky (ORACLE) DDL příkazem v grafickém prostředí CREATE TABLE jmeno ( text VARCHAR2(200), cislo NUMBER(9,1), datum DATE ); PostgreSQL CREATE TABLE jmeno ( text Varchar(200), cislo Numeric(5,2), datum Timestamp ); jmeno = do 30 znaků (písmena, čísla, podtržítko) bez mezer, začíná písmenem Řádkování příkazu nepovinné, pouze pro lepší čitelnost Autor, Název akce Daniel Klimeš, Databázové systémy a SQL 2

INSERT INSERT INTO tabulka (sloupec1, sloupec2, sloupec3) VALUES (cislo, text, TO_DATE ( datum, dd.mm.yyyy )); INSERT INTO jmeno (CISLO, TEXT, DATUM) VALUES (2.3, testovací řetězec, TO_DATE ( 05.03.2011, dd.mm.yyyy )); INSERT INTO tabulka (sloupec1, sloupec2, sloupec3) SELECT sloupec1,sloupec2, sloupec3 FROM tabulka2; INSERT INTO jmeno (cislo, text) SELECT study_id, text FROM studies WHERE is_active = 2; INSERT INTO jmeno (cislo, text) SELECT MAX(study_id), manager FROM studies GROUP BY manager Autor, Název akce Daniel Klimeš, Databázové systémy a SQL 3

UPDATE, DELETE UPDATE tabulka SET sloupec = hodnota; UPDATE jmeno SET cislo = cislo+1; UPDATE tabulka SET sloupec = hodnota WHERE sloupec2 = hodnota; UPDATE jmeno SET datum = SYSDATE WHERE text = Klimeš ; DELETE FROM tabulka; DELETE FROM jmeno; DELETE FROM tabulka WHERE ; DELETE FROM jmeno WHERE cislo > 5; Autor, Název akce Daniel Klimeš, Databázové systémy a SQL 4

TRANSAKCE TRANSAKCE = sada DML příkazů všechny nebo žádný Transakci zahajuje první příkaz Ukončení transakce COMMIT; = potvrzení změn (DDL příkazy => automatický commit) ROLLBACK; = zrušení změn Nepotvrzené transakce nevidí ostatní, brání provedení změn jiných uživatelů (zamykání sloupců, řádků, tabulek) Co nejkratší transakce! V PGADMIN automatický commit!! Nutné nejprve napsat BEGIN TRANSACTION Autor, Název akce Daniel Klimeš, Databázové systémy a SQL 5

Cvičení 1 Vytvořte tabulku (vaše příjmení jako název tabuky) textový sloupec jmeno textový sloupec prijmeni datumový sloupec datum_zapisu Vložte záznam, naplňte první 2 sloupce tabulky svým jménem (jmeno, prijmeni) Doplňte datum zápisu na aktuální datum Přidejte libovolný další řádek Ověřte počet řádků v tabulce Smažte řádek se svým jménem Autor, Název akce Daniel Klimeš, Databázové systémy a SQL 6

Operátory a funkce +,- Sčítání, odečítání *,/ Násobení, dělení =, <>, >=, <= Rovnost, nerovnost [NOT] IN (hodnota, hodnota, ) Rovnost [NEROVNOST] se skupinou hodnot Spojení textových řetězců NOT, AND, OR TRUNC(x,[n]) COALESCE GREATEST / LEAST Negace, logický součin, logický součet Odstranění desetinných míst (odstranění časové frakce z datumu) Vrací první NOT NULL argument Vrací největší/nejmenší argument DECODE Nahrazování hodnot ORACLE CASE WHEN podm END Podmíněný výraz NVL, NVL2 Nahrazení hodnoty NULL ORACLE Autor, Název akce Daniel Klimeš, Databázové systémy a SQL 7

Operátory a funkce práce s datumy SYSDATE Aktuální datum a čas ORACLE CURRENT_DATE Aktuální datum PG CURRENT_TIMESTAMP NOW() TO_CHAR() TO_DATE() Datum +- počet dnů Datum - datum MONTHS_BETWEEN(datum, datum) Aktuální datum a čas Konverze na text Konverze na datum Přičítání, odečítání dnů Počet dnů mezi datumy (desetinná část udává časový rozdíl) Rozdíl datumů AGE(datum, datum) Rozdíl datumů PG PG ORACLE ADD_MONTHS(datum, počet) Přičtení měsíců ORACLE Autor, Název akce Daniel Klimeš, Databázové systémy a SQL 8

Operátory a funkce práce s textem SUBSTR(text, od, počet) INSTR(text, subtext) STRPOS(text, subtext) REPLACE(text, puvodni, nove) LOWER(text) UPPER(text) LTRIM(text), RTRIM(text) LENGTH(text) TRANSLATE(text, znaky,znaky) Vrací podřetězec textu dle pozice Hledání podřetězce v textu, vrací pozici Nahrazení podřetězce Převod na malá písmena Převod na velká písmena Odstranění mezer zleva zprava Délka řetězce Nahrazení po znacích ORACLE PG Autor, Název akce Daniel Klimeš, Databázové systémy a SQL 9

Operátory a funkce práce s čísly ABS(cislo) SIN(cislo), COS(cislo), TAN(cislo) POWER(cislo,exp) Mocnina SQRT(cislo) MOD(cislo, cislo) LN(cislo) LOG(cislo) EXP(x) ROUND(x,[n]) CEIL() Absolutní hodnota Číslo v radiánech Druhá odmocnina Zbytek po dělení Přirozený logaritmus Dekadický logaritmus e x zaokrouhlení zaokrouhlení nahoru Autor, Název akce Daniel Klimeš, Databázové systémy a SQL 10

NULL, prázdná hodnota NULL nerovná se 0 NULL nelze testovat standardními operátory WHERE X = NULL OR X <> NULL Správně: WHERE sloupec IS NULL sloupec IS NOT NULL ALE: UPDATE tabulka SET sloupec = NULL WHERE sloupec IS NOT NULL NULL téměř veškeré operace (funkce, operátory) nad hodnotou NULL opět vrací NULL Autor, Název akce Daniel Klimeš, Databázové systémy a SQL 11

Cvičení 2 Vytvořte si pracovní kopii tabulky STUDIES CREATE TABLE nazev AS SELECT * FROM studies Do řádků bez managera zapište svoje příjmení U neaktivních studií is_active = 0 nastavte DATE_TERMINATED na dnešní datum Vypište názvy studií malými písmeny Vypište první 3 znaky názvu studií Vypište studie, které obsahují ve study_name písmeno x Kolik dnů, týdnů, měsíců, roků řídí projekty jednotliví lidé (DATE_START)? Smažte řádek se study_id = 2 Autor, Název akce Daniel Klimeš, Databázové systémy a SQL 12

Operátory a funkce agregační funkce COUNT() Počet AVG() Aritmetický průměr MIN() Minimum MAX() Maximum STDDEV() Směrodatná odchylka SUM() Suma MEDIAN() Medián ORACLE Autor, Název akce Daniel Klimeš, Databázové systémy a SQL 13

MODIFIKÁTOR DISTINCT SELECT DISTINCT sloupec1 FROM tabulka; -- unikátní hodnoty sloupce SELECT DISTINCT sloupec1, sloupec2 FROM tabulka; -- unikátní kombinace sloupců SELECT COUNT(*), COUNT(sloupec), COUNT(DISTINCT sloupec) Počet všech řádků, všech NOT NULL řádků, unikátních hodnot FROM tabulka; Autor, Název akce Daniel Klimeš, Databázové systémy a SQL 14

Cvičení - agregace Zjistěte Datum zahájení nejstarší studie, nejmladší studie Průměrná délka u ukončených studií Celkový počet studií Počet studií se zadaným datem zahájení (DATE_STARTED) Počet manažerů Vypište seznam manažerů Autor, Název akce Daniel Klimeš, Databázové systémy a SQL 15

Vypište seznam studií, kde délka textu study_title < 40 znaků Prohoďte u těchto pacientů study_name a study_title Které studie mají název jen z velkých písmen? Které studie mají více jak jednoho managera? Autor, Název akce Daniel Klimeš, Databázové systémy a SQL 16

Logické operátory AND, OR, NOT AND TRUE FALSE NULL TRUE TRUE FALSE NULL FALSE FALSE FALSE FALSE OR TRUE FALSE NULL TRUE TRUE TRUE TRUE FALSE TRUE FALSE NULL NOT TRUE = FALSE NOT FALSE = TRUE NOT NULL = NULL Autor, Název akce Daniel Klimeš, Databázové systémy a SQL 17

LOGICKÉ OPERÁTORY - cvičení X AND FALSE => FALSE X OR TRUE => TRUE FALSE AND FALSE OR TRUE => TRUE FALSE AND (FALSE OR TRUE) => FALSE 5 > 1 AND NULL IS NOT NULL OR 1 = 1 => TRUE Autor, Název akce Daniel Klimeš, Databázové systémy a SQL 18

Domácí úkol Prostudujte: Kapitola 2 a 3 skript + http://www.postgresql.org/docs/9.2/static/functions.html 9.1, 9.2, 9.3, 9.4, 9.8, 9.9 Nainstalovat PostgreSQL Vytvořit databázi matbi Vytvořit tabulku student se sloupci jmeno, prijmeni, datum_narozeni, rok_prijeti Vložit řádek se svým jménem Pomocí update prohoďte jméno a příjmení, převeďte vše na velká písmena, odstraňte diakritiku (ř -> r, č->c), vyberte iniciály (1. písmeno jméno + 1. příjmení) Kolik dnů uplynulo od vašeho narození Autor, Název akce Daniel Klimeš, Databázové systémy a SQL 19