Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

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

Podobné prezentace


Prezentace na téma: "Cvičení 03 SQL Select Ing. Pavel Bednář"— Transkript prezentace:

1 Cvičení 03 SQL Select Ing. Pavel Bednář pavel.bednar@vsb.cz http://pavelbednar.aspone.cz

2  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)

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

4  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

5  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

6  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

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

8  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á

9  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

10  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á

11  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

12  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

13  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

14  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

15  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

16  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

17  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

18  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

19  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,6666666

20  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

21  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

22  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

23  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

24  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ů 12 22 31

25  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

26  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

27  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á

28  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

29  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

30  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

31  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 Zub0112011 Sip0012012 Vid0212012 LoginPříjmeníJménoVěkId_Fakulta Dra025DrábekTomáš251 Zub011ZubatáEva232 Nov098NovákBohumil281

32  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)

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

34 Clen(rc,jmeno,prijmeni,email) 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 123 4. RČ člena, který si půjčil alespoň jeden film, ale ne film 123 5. RČ člena, který si nepůjčil film 123

35 Clen(rc,jmeno,prijmeni,email) Titul(cislo_titulu,nazev_cez, nazev_angl, delka) Pujceno(rc,cislo_titulu,datum) 6. RČ člena, který si půjčil jiný film než 123 7. RČ člena, který si půjčil pouze film 123 8. 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


Stáhnout ppt "Cvičení 03 SQL Select Ing. Pavel Bednář"

Podobné prezentace


Reklamy Google