Cvičení 03 SQL Select Ing. Pavel Bednář

Slides:



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

KIV/ZIS Cvičení 6 SQL - SELECT.
Cvičení 05 Joins, isNull, case when Ing. Pavel Bednář
Cvičení 06 Ing. Pavel Bednář
Základy jazyka SQL Jan Tichava
SQL: DDL v ORACLE CREATE TABLE jméno_tabulky (atribut datový_typ [DEFAULT][attribut_constraint] [, atribut datový_typ [DEFAULT] [attribut_constraint]],...
Jazyk SQL Ing. Zdena DOBEŠOVÁ. SQL Structured Query Language 1974 SEQUEL (Structured English Query Language) neprocedurální relační dotazovací jazyk norma.
DB1 – 9. cvičení Optimalizace dotazu Konkurenční přístup a deadlock Indexace Transakce.
Databázové systémy SQL Výběr dat.
YDASYS1 Ing. Monika Šimková.
Fakulta elektrotechniky a informatiky
Informační systémy Realizace uložených procedur a spouští, jejich praktické využití.
Informační systémy Realizace sběru dat v rámci realizovaných úloh.
Informační systémy Nástroje pro sběr dat, návrh a realizace databáze.
AGREGACE Distinct, Group By, Having, SUM, …. DISTINCT  Slučování stejných řádků ve výsledku dotazu. AGREGACE 2 JménoPříjmeníID FrantišekVomáčka1 JosefPokorný2.
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.
SQL Structured Query Language
Informatika pro ekonomy II přednáška 11
Databázové systémy 1 Cvičení č. 2 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
1 BUMI Úvod do medicínské informatiky Počítačové cvičení č. 3 Ing. Vratislav Čmiel.
Temporální databáze a TSQL
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.
Uživatelé, Role, Schémata
SQL Přednáška DB1. Literatura CONNOLLY, T.M.-BEGG,C.E.-STRACHAN,A.D.: Database Systems – A Practial Approach to Design, Implementation and Management.
MySQL ÚVOD DO JAZYKA SQL
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.
Relační algebra jako základ SQL Helena Palovská. Různé modely pro databázovou strukturu.
Databáze Úvod.
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
Cvičení 04 SQL Exists, Any, All Ing. Pavel Bednář
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 – základní pojmy Ing. Roman Danel, Ph.D.
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ý.
Databázové systémy 2 Cvičení č. 6 Ing. Tomáš Váňa Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Čí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 II Přednáška č. 9. Transakce je logická jednotka práce sestávající z jednoho nebo více SQL příkazů, které jsou atomické z hlediska.
Databázové systémy UIN010 N-ticový (řádkový) relační kalkul Hodnoty proměnných n-tice relací (řádky) Konstanty hodnoty atributů Unární funkční.
Informatika II PAA DOTAZOVACÍ JAZYKY
Dynamic SQL P. Částek. Dynamic SQL Embedded SQL je překládaný preprocesorem => za běhu nelze nechat uživatele rozhodovat o vzhledu samotných SQL příkazů.
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.
Databázové systémy SQL Výběr dat.
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.
Cvičení 11 Ing. Pavel Bednář
Příkazy jazyka SQL ve VFP a na SQL Serveru
Autor, Název akce Databázové systémy a SQL Lekce 2 Daniel Klimeš 1.
Databázové systémy a SQL
SQL – příkaz SELECT Ing. Roman Danel, Ph.D.
Databázové systémy I Přednáška 5 Databázové systémy 1 – KIT/IDAS1
Dotazovací jazyk SQL - III
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 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
Počítačová cvičení z předmětu Datové sklady
Přednáška 5 Úvod do SQL.
Jazyk SQL (databáze SQLite)
Databázové jazyky Jaroslav Pokorný FI BVŠP Bratislava
Databázové systémy a SQL
Transkript prezentace:

Cvičení 03 SQL Select Ing. Pavel Bednář

 SQL je zkratka anglických slov Structured Query Language  Standardizovaný dotazovací jazyk používaný pro práci s daty v relačních databázích.  Čtyři základní skupiny ◦ Příkazy pro manipulaci s daty (SELECT, INSERT, UPDATE, DELETE, …) ◦ Příkazy pro definici dat (CREATE, ALTER, DROP, …) ◦ Příkazy pro řízení přístupových práv (GRANT, REVOKE) ◦ Příkazy pro řízení transakcí (START TRANSACTION, COMMIT, ROLLBACK)

 Výběr sloupců  Select co From odkud

 Select * from Student Student LoginPříjmeníJménoVěk Dra025DrábekTomáš25 Zub011ZubatáEvaNULL Nov098NovákBohumil28 LoginPříjmeníJménoVěk Dra025DrábekTomáš25 Zub011ZubatáEvaNULL Nov098NovákBohumil28

 Select Věk, Příjmení from Student Student LoginPříjmeníJménoVěk Dra025DrábekTomáš25 Zub011ZubatáEvaNULL Nov098NovákBohumil28 VěkPříjmení 25Drábek NULLZubatá 28Novák

 Select Věk as Stáří, Příjmení from Student Student LoginPříjmeníJménoVěk Dra025DrábekTomáš25 Zub011ZubatáEvaNULL Nov098NovákBohumil28 StáříPříjmení 25Drábek NULLZubatá 28Novák

 Výběr sloupců  Select co From odkud  Select co From odkud Where podmínka

 Select Věk, Příjmení from Student where (Věk=“25“) Student LoginPříjmeníJménoVěk Dra025DrábekTomáš25 Zub011ZubatáEva25 Nov098NovákBohumil28 VěkPříjmení 25Drábek 25Zubatá

 Select Věk, Příjmení from Student where (Věk>“25“) Student LoginPříjmeníJménoVěk Dra025DrábekTomáš25 Zub011ZubatáEva25 Nov098NovákBohumil28 VěkPříjmení 28Novák

 Select Věk, Příjmení from Student where (Věk<>“28“) Student LoginPříjmeníJménoVěk Dra025DrábekTomáš25 Zub011ZubatáEva25 Nov098NovákBohumil28 VěkPříjmení 25Drábek 25Zubatá

 Select * from Student where (Věk between 24 AND 29) Student LoginPříjmeníJménoVěk Dra025DrábekTomáš25 Sip001ŠípkováRůžena29 Zub011ZubatáEva23 Nov098NovákBohumil28 LoginPříjmeníJménoVěk Dra025DrábekTomáš25 Sip001ŠípkováRůžena29 Nov098NovákBohumil28

 Select * from Student where (Věk not between 24 AND 29) Student LoginPříjmeníJménoVěk Dra025DrábekTomáš25 Sip001ŠípkováRůžena29 Zub011ZubatáEva23 Nov098NovákBohumil28 LoginPříjmeníJménoVěk Zub011ZubatáEva23

 Select * from Student where (Věk in (24,29,28)) Student LoginPříjmeníJménoVěk Dra025DrábekTomáš25 Sip001ŠípkováRůžena29 Zub011ZubatáEva23 Nov098NovákBohumil28 LoginPříjmeníJménoVěk Sip001ŠípkováRůžena29 Nov098NovákBohumil28

 Select * from Student where (Věk not in (24,29,28)) Student LoginPříjmeníJménoVěk Dra025DrábekTomáš25 Sip001ŠípkováRůžena29 Zub011ZubatáEva23 Nov098NovákBohumil28 LoginPříjmeníJménoVěk Dra025DrábekTomáš25 Zub011ZubatáEva23

 Select * from Student where (Věk is null) Student LoginPříjmeníJménoVěk Dra025DrábekTomášNULL Sip001ŠípkováRůžena29 Zub011ZubatáEvaNULL Nov098NovákBohumilNULL LoginPříjmeníJménoVěk Dra025DrábekTomášNULL Zub011ZubatáEvaNULL Nov098NovákBohumilNULL

 Select * from Student where (Věk is not null) Student LoginPříjmeníJménoVěk Dra025DrábekTomášNULL Sip001ŠípkováRůžena29 Zub011ZubatáEvaNULL Nov098NovákBohumilNULL LoginPříjmeníJménoVěk Sip001ŠípkováRůžena29

 Select * from Student where (Příjmení like “D%“) Student LoginPříjmeníJménoVěk Dra025DrábekTomášNULL Sip001ŠípkováRůžena29 Zub011ZubatáEvaNULL Dol098DolňákBohumilNULL LoginPříjmeníJménoVěk Dra025DrábekTomášNULL Dol098DolňákBohumilNULL

 Select SUM(Věk) as CelkovýVěk from Student Student LoginPříjmeníJménoVěk Dra025DrábekTomáš23 Sip001ŠípkováRůžena29 Zub011ZubatáEvaNULL Nov098NovákBohumil13 CelkovýVěk 65

 Select AVG(Věk) as PrůměrnýVěk from Student Student LoginPříjmeníJménoVěk Dra025DrábekTomáš23 Sip001ŠípkováRůžena29 Zub011ZubatáEvaNULL Nov098NovákBohumil13 PrůměrnýVěk 21,

 Select Count(*) as PočetStudentů from Student Student LoginPříjmeníJménoVěk Dra025DrábekTomáš23 Sip001ŠípkováRůžena29 Zub011ZubatáEvaNULL Nov098NovákBohumil13 PočetStudentů 4

 Select Count(*) as PočetStudentů from Student where (Věk > 20) Student LoginPříjmeníJménoVěk Dra025DrábekTomáš23 Sip001ŠípkováRůžena29 Zub011ZubatáEvaNULL Nov098NovákBohumil13 PočetStudentů 2

 Select MIN(Věk) as Nejmladší from Student Student LoginPříjmeníJménoVěk Dra025DrábekTomáš23 Sip001ŠípkováRůžena29 Zub011ZubatáEvaNULL Nov098NovákBohumil13 Nejmladší 13

 Select MAX(Věk) as Nejstarší from Student Student LoginPříjmeníJménoVěk Dra025DrábekTomáš23 Sip001ŠípkováRůžena29 Zub011ZubatáEvaNULL Nov098NovákBohumil13 Nejstarší 29

 Select Ročník, Count(*) as PočetStudentů from Student group by Ročník Student LoginPříjmeníJménoVěkRočník Dra025DrábekTomáš251 Sip001ŠípkováRůžena293 Zub011ZubatáEva232 Vid021VidlákováKateřina182 Nov098NovákBohumil281 RočníkPočetStudentů

 Select * from Student order by Příjmení, Jméno Student LoginPříjmeníJménoVěkRočník Dra025DrábekTomáš251 Sip001ŠípkováRůžena293 Zub011ZubatáEva232 Vid021VidlákováKateřina182 Nov098DrábekBohumil281 LoginPříjmeníJménoVěkRočník Dra025DrábekBohumil281 Dra098DrábekTomáš251 Sip001ŠípkováRůžena293 Vid021VidlákováKateřina182 Zub011ZubatáEva232

 Select * from Student order by Příjmení desc, Jméno asc Student LoginPříjmeníJménoVěkRočník Dra025DrábekTomáš251 Sip001ŠípkováRůžena293 Zub011ZubatáEva232 Vid021VidlákováKateřina182 Nov098DrábekBohumil281 LoginPříjmeníJménoVěkRočník Zub011ZubatáEva232 Vid021VidlákováKateřina182 Sip001ŠípkováRůžena293 Dra025DrábekBohumil281 Dra098DrábekTomáš251

 Select login, (Jméno+‘ ‘+Příjmení) as CeléJméno from Student Student LoginPříjmeníJménoVěkRočník Dra025DrábekTomáš251 Zub011ZubatáEva232 Nov098NovákBohumil281 Sip001ŠípkováRůžena182 Vid021VidlákováKateřina281 LoginCeléJméno Dra025Tomáš Drábek Zub011Eva Zubatá Nov098Bohumil Novák Sip001Růžena Šípková Vid021Kateřina Vidláková

 Select distinct Ročník from Student Student LoginPříjmeníJménoVěkRočník Dra025DrábekTomáš251 Zub011ZubatáEva232 Nov098NovákBohumil281 Sip001ŠípkováRůžena182 Vid021VidlákováKateřina281 Ročník 1 2 3

 Select * from Student where (Ročník=1) OR (Věk<23) Student LoginPříjmeníJménoVěkRočník Dra025DrábekTomáš251 Zub011ZubatáEva232 Nov098NovákBohumil281 Sip001ŠípkováRůžena182 Vid021VidlákováKateřina281 LoginPříjmeníJménoVěkRočník Dra098DrábekTomáš251 Nov098NovákBohumil281 Sip001ŠípkováRůžena182 Vid021VidlákováKateřina281

 Select * from Student s JOIN Fakulta f ON s.id_fakulta=f.id_fakulta  Select * from, Student s. Faktura f WHERE s.id_fakulta=f.id_fakulta Student LoginPříjmeníJménoVěkId_Fakulta Dra025DrábekTomáš251 Zub011ZubatáEva232 Nov098NovákBohumil281 Sip001ŠípkováRůžena182 Vid021VidlákováKateřina281 Fakulta Id_FakultaNázev 1FEI 2FBI 3HGB LoginPříjmeníJménoVěkId_FakultaNázev Dra025DrábekTomáš251FEI Zub011ZubatáEva232FBI Nov098NovákBohumil281FEI Sip001ŠípkováRůžena182FBI Vid021VidlákováKateřina281FEI

 Vrať studenty, kteří neměli letos žádné vyznamení.  Select * from Student WHERE NOT EXISTS (SELECT * from Vyznameni WHERE rok=2012) Student LoginPříjmeníJménoVěkId_Fakulta Dra025DrábekTomáš251 Zub011ZubatáEva232 Nov098NovákBohumil281 Sip001ŠípkováRůžena182 Vid021VidlákováKateřina281 Vyznamenani LoginRok Zub Sip Vid LoginPříjmeníJménoVěkId_Fakulta Dra025DrábekTomáš251 Zub011ZubatáEva232 Nov098NovákBohumil281

 LEFT (sloupec, počet_znaků)  RIGHT (sloupec, počet_znaků)  ROUND (sloupec, počet míst)  LOWER (sloupec)  UPPER (sloupec)  REVERSE (sloupec)  CHARINDEX (vyraz1, vyraz2 [,start_pozice])  REPLACE (sloupec, co_nahradit, za_co)  SUBSTRING (sloupec, start, kolik_znaků)  LEN (sloupec)

 UNION  EXCEPT  INTERSECT  JOIN (INNER JOIN)  LEFT JOIN (LEFT OUTER JOIN)  RIGHT JOIN (RIGHT OUTER JOIN)

Clen(rc,jmeno,prijmeni, ) Titul(cislo_titulu,nazev_cez, nazev_angl, delka) Pujceno(rc,cislo_titulu,datum) 1. Číslo titulu, který byl alespoň jednou půjčen 2. Číslo titulu, který dosud nebyl půjčen 3. RČ člena, který si půjčil film číslo RČ člena, který si půjčil alespoň jeden film, ale ne film RČ člena, který si nepůjčil film 123

Clen(rc,jmeno,prijmeni, ) Titul(cislo_titulu,nazev_cez, nazev_angl, delka) Pujceno(rc,cislo_titulu,datum) 6. RČ člena, který si půjčil jiný film než RČ člena, který si půjčil pouze film Najděte názvy filmů, které byly alespoň jednou půjčeny 9. Najděte jména členů, kteří si dosud nepůjčili žádný film 10. Najděte názvy filmů, které si půjčili členové s příjmením Novák