Databázové systémy a SQL

Slides:



Advertisements
Podobné prezentace
Aplikační a programové vybavení
Advertisements

MS ACCESS - DOTAZY DATABÁZOVÉ SYSTÉMY.
Základy jazyka SQL Jan Tichava
A5M33IZS – Informační a znalostní systémy Dotazovací jazyk SQL - I.
SQL: DDL v ORACLE CREATE TABLE jméno_tabulky (atribut datový_typ [DEFAULT][attribut_constraint] [, atribut datový_typ [DEFAULT] [attribut_constraint]],...
Aplikační a programové vybavení
Jazyk SQL Ing. Zdena DOBEŠOVÁ. SQL Structured Query Language 1974 SEQUEL (Structured English Query Language) neprocedurální relační dotazovací jazyk norma.
Fakulta elektrotechniky a informatiky
Informační systémy Realizace uložených procedur a spouští, jejich praktické využití.
Informační systémy Nástroje pro sběr dat, návrh a realizace databáze.
Další dotazy SQL Structured Query Language. Některé SQL příkazy mohou mít v sobě obsaženy další kompletní příkazy SELECT. Využijeme je tam, kde potřebujeme.
Informatika pro ekonomy II přednáška 11
Databázové systémy 1 Cvičení č. 4 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy 1 Cvičení č. 2 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Fakulta elektrotechniky a informatiky
1 BUMI Úvod do medicínské informatiky Počítačové cvičení č. 3 Ing. Vratislav Čmiel.
Temporální databáze a TSQL
TEMPORÁLNÍ DATABÁZE A TSQL2
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
MySQL - Vytvoření nové tabulky  create table jméno_tabulky (jméno_položky typ_položky,... ) Přehled nejběžnějších datových typů Přehled nejběžnějších.
Databáze Úvod.
Fakulta elektrotechniky a informatiky
Fakulta elektrotechniky a informatiky
Databázové systémy teorie a návrh relačních databázových systémů část II.
Vypracoval: Ondřej Dvorský Třída: VIII.A
KIV/ZIS cvičení 6 Tomáš Potužák. Pokračování SQL Klauzule GROUP BY a dotazy nad více tabulkami Stáhnout soubor studenti_dotazy_sql.mdb.
Databázové systémy I Cvičení č. 6 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Databázové systémy Přednáška č. 6.
SQL PVA Jan Hora. SQL „graficky“ Grafický vs. pravý SQL SELECT ORDED BY WHERE.
Rauer Luboš Kopic Petr Blažek Tomáš. Structured Query Language - dotazovací jazyk -> pracuje s dotazy - neprocedurální jazyk - mocný, ale přitom jednoduchý.
Číslo šablony: III/2 VY_32_INOVACE_P4_3.8 Tematická oblast: Aplikační software pro práci s informacemi II. Databáze – základy SQL Typ: DUM - kombinovaný.
Databázové systémy I Cvičení č. 7 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Informatika II PAA DOTAZOVACÍ JAZYKY
Databázové systémy 2 Zkouška – 8:00. Příklad I – Procedura – 5 bodů Vytvořte proceduru P_ZK2(p_table_name VARCHAR2, p_min_nuls NUMBER, p_drop.
Aplikační a programové vybavení
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B13 Autor Ing. Jiří Kalousek Období vytvoření březen.
Databázové systémy 2 Cvičení č. 5 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Základní obeznámení s jazykem SQL Databázové systémy.
Databázové systémy SQL Výběr dat.
TEMPORÁLNÍ DATABÁZE A TSQL2
Databázové Aplikace Slidy ke cvičení DBI026, část 3 KSI MFF UK Verze
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B15 Autor Ing. Jiří Kalousek Období vytvoření březen.
Databázové systémy 2 Zkouška – 8:00. Příklad I - Funkce Vytvořte funkci ZK_DIFF_MIN_MAX (P_ZAM_ID NUMBER) RETURN VARCHAR2. Funkce může vracet.
Základní obeznámení s jazykem SQL Databázové systémy.
Fce VB - matematické Abs( výraz ) Fix( výraz ) Int( výraz) Sgn(výraz )
Příkazy jazyka SQL ve VFP a na SQL Serveru
Databázové systémy I Cvičení č. 5 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Autor, Název akce Databázové systémy a SQL Lekce 7 Daniel Klimeš.
Autor, Název akce Databázové systémy a SQL Lekce 2 Daniel Klimeš 1.
Autor, Název akce Databázové systémy a SQL Daniel Klimeš 1.
Databázové systémy a SQL
Databázové systémy přednáška 8 – Transakce
Databázové systémy I Přednáška 5 Databázové systémy 1 – KIT/IDAS1
Databázové systémy I Přednáška 8 Databázové systémy 1 – KIT/IDAS1
Databázové systémy a SQL
Databázové systémy a SQL
Databázové systémy I Přednáška 11 Databázové systémy 1 – KIT/IDAS1
Dotazovací jazyk SQL I.
Databázové systémy přednáška 2 – Datové typy
Databázové systémy a SQL
Databázové systémy a SQL
Databázové systémy a SQL
Šablona 32 VY_32_INOVACE_038.ICT.34
Databázové systémy a SQL
Počítačová cvičení z předmětu Datové sklady #1 Relační model dat
Přednáška 9 Triggery.
Databázové systémy a SQL
Databázové jazyky Jaroslav Pokorný FI BVŠP Bratislava
Databázové systémy a SQL
Databázové systémy a SQL
Transkript prezentace:

Databázové systémy a SQL Lekce 2 Daniel Klimeš

Data definition language DDL Data definition language Daniel Klimeš, Databázové systémy a SQL

Datové typy Obsah sloupců tabulky určuje přiřazený tzv. datový typ https://www.postgresql.org/docs/9.5/static/datatype.html Skupina Název Číslo numeric(x,y) Text (omezený) varchar(x) Text neomezený text Datum date Datum + čas timestamp Časový interval interval Daniel Klimeš, Databázové systémy a SQL

CREATE TABLE/DROP TABLE PostgreSQL CREATE TABLE jmeno ( text Varchar(200), cislo Numeric(5,2), datum Timestamp ); ORACLE CREATE TABLE jmeno ( text VARCHAR2(200), cislo NUMBER(9,1), datum DATE ); DROP TABLE tabulka; Daniel Klimeš, Databázové systémy a SQL

ALTER TABLE ALTER TABLE tabulka ADD sloupec typ; ALTER TABLE tabulka DROP sloupec; ALTER TABLE tabulka ADD PRIMARY KEY (sloupec); Daniel Klimeš, Databázové systémy a SQL

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 uco, prijmeni FROM student WHERE jmeno = ‘Jan’ ; Daniel Klimeš, Databázové systémy a SQL

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; Daniel Klimeš, Databázové systémy a SQL

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

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 5 + NULL = NULL Daniel Klimeš, Databázové systémy a SQL

Cvičení 1 Vytvořte tabulku (vaše příjmení jako název tabulky) 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 Daniel Klimeš, Databázové systémy a SQL

Cvičení 2 Přidejte do tabulky student sloupec prednaska_05_10 jako číslo Nastavte tento sloupec na 1 u svého jména (UCO) Vytvořte primární klíč na sloupec uco Zkuste vložit pomocí INSERT duplicitně své UČO Smažte nepřítomné (sloupec prednaska_05_10 je prázdný) Daniel Klimeš, Databázové systémy a SQL

Ukázka transakčního více uživatelského chování Uživatel 1: BEGIN TRANSACTION DELETE FROM tabulka; Uživatel 2: UPDATE tabulka SET sloupec = Uživatel 3: SELECT * FROM tabulka …. Uživatel 1: COMMIT; Daniel Klimeš, Databázové systémy a SQL

Funkce a operátory Daniel Klimeš, Databázové systémy a SQL

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

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

Operátory a funkce – práce s datumy Popis CURRENT_DATE Aktuální datum Operátor current_timestamp NOW() Aktuální datum a čas Operátor Funkce() Datum +- počet dnů Přičítání, odečítání dnů Datum - datum Počet dnů mezi datumy (desetinná část udává časový rozdíl) MONTHS_BETWEEN(datum, datum) Rozdíl datumů ORACLE AGE(datum, datum) PG interval '1 year 2 months 3 days 4 hours 5 minutes 6 seconds' Datový typ, možnost přičítat, odčítat ADD_MONTHS(datum, počet) Přičtení měsíců Daniel Klimeš, Databázové systémy a SQL

Operátory a funkce – práce s datumy DATE_PART(text, timestamp) Extrakce komponent PG Century, day, dow, doy, hour, isoyear, minute, month, second, week, year TO_CHAR, TO_DATE Konverze Datum  Text PG, ORACLE Dd,mm,yyyy, HH, HH24, mi, ss, Month, Day, D, DDD, W, WW, IYYY, IDDD, IW Daniel Klimeš, Databázové systémy a SQL

Operátory a funkce [NOT] IN (hodnota, hodnota, …) Rovnost [NEROVNOST] se skupinou hodnot COALESCE Vrací první NOT NULL argument CASE WHEN podm END Podmíněný výraz Daniel Klimeš, Databázové systémy a SQL

Cvičení 3 SELECT funkce() Číselné funkce SELECT 1/2 X SELECT 1/2.0 Textové funkce Datumové funkce Přidejte do tabulky student sloupec dat_nar s datovým typem date Nastavte hodnotu sloupce u svého jména na své datum narození SELECT DATE_PART('year', AGE(CURRENT_DATE,dat_nar)) FROM student Daniel Klimeš, Databázové systémy a SQL

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 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í? Daniel Klimeš, Databázové systémy a SQL