Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Datenbanksysteme für FÜ WS04/05 SQL2 - 1 Worzyk FH Anhalt SQL 2 Order by null Aggregatfunktionen group by Join subselect.

Ähnliche Präsentationen


Präsentation zum Thema: "Datenbanksysteme für FÜ WS04/05 SQL2 - 1 Worzyk FH Anhalt SQL 2 Order by null Aggregatfunktionen group by Join subselect."—  Präsentation transkript:

1 Datenbanksysteme für FÜ WS04/05 SQL2 - 1 Worzyk FH Anhalt SQL 2 Order by null Aggregatfunktionen group by Join subselect

2 Datenbanksysteme für FÜ WS04/05 SQL2 - 2 Worzyk FH Anhalt SQL> SELECT * FROM pruefung; NACHNAME VORNAME FACH DATUM NOTE FAKTOR Lehmann Hans Betriebssysteme ,7 1 Müller Else Mathematik ,3 1 Lehmann Hans Diplomarbeit Schmidt Hermann Diplomarbeit ,7 2 Bauer Jutta Datenorganisation Schulze Anton Datenorganisation ,3 1 Huber Emma TI ,3 1 Müller Jutta Diplomarbeit ,7 2 Müller Anna Diplomarbeit Müller Jutta Mathematik Schulze Anton DBS ,3 1 Schulze Anton TI ,3 1 Maier Fritz DBS ,3 1 Bauer Else TI ,7 1 Bäcker Ewald Softwareprojekt Müller Jutta DBS ,3 1 Maier Fritz Datenorganisation ,7 1 Köhler Emil DBS Bauer Else DBS1 1

3 Datenbanksysteme für FÜ WS04/05 SQL2 - 3 Worzyk FH Anhalt select SELECT command ::= column SELECT*, DISTINCT ALL table. t_alias. FROMtable WHERE conditiont_alias, ORDER BY column ASC DESC, c_alias

4 Datenbanksysteme für FÜ WS04/05 SQL2 - 4 Worzyk FH Anhalt SQL> SELECT * FROM pruefung ORDER BY nachname, vorname, datum; NACHNAME VORNAME FACH DATUM NOTE FAKTOR Softwareprojekt Bäcker Ewald Bauer Jutta Datenorganisation Bauer Else TI ,7 1 Bauer Else DBS1 1 Huber Emma TI ,3 1 Köhler Emil DBS Lehmann Hans Betriebssysteme ,7 1 Lehmann Hans Diplomarbeit Maier Fritz DBS ,3 1 Maier Fritz Datenorganisation ,7 1 Müller Jutta DBS ,3 1 Müller Jutta Mathematik Müller Jutta Diplomarbeit ,7 2 Müller Else Mathematik ,3 1 Müller Anna Diplomarbeit Schmidt Hermann Diplomarbeit ,7 2 Schulze Anton Datenorganisation ,3 1 Schulze Anton DBS ,3 1 Schulze Anton TI ,3 1

5 Datenbanksysteme für FÜ WS04/05 SQL2 - 5 Worzyk FH Anhalt null Markierung für nicht vorhandene Attributwerte Nullmarken können verschiedene Bedeutungen haben: –Der Wert ist nicht bekannt –Der Wert ist nicht eingegeben worden führen zu einer dreiwertigen Logik

6 Datenbanksysteme für FÜ WS04/05 SQL2 - 6 Worzyk FH Anhalt null Oracle8 SQL Reference, Release 8.0 Any arithmetic expression containing a null always evaluates to null. All scalar functions (except NVL and TRANSLATE) return null when given a null argument. Most group functions ignore nulls.

7 Datenbanksysteme für FÜ WS04/05 SQL2 - 7 Worzyk FH Anhalt null SQL> SELECT nachname, vorname, fach, note 2 FROM pruefung 3 WHERE fach = 'Diplomarbeit' 4 AND (note = 2) 5 ORDER BY note; NACHNAME VORNAME FACH NOTE Müller Anna Diplomarbeit 2 Müller Jutta Diplomarbeit 2,7 Schmidt Hermann Diplomarbeit 4,7

8 Datenbanksysteme für FÜ WS04/05 SQL2 - 8 Worzyk FH Anhalt null SQL> SELECT nachname, vorname, fach 2 FROM pruefung 3 WHERE note IS NULL; NACHNAME VORNAME FACH Lehmann Hans Diplomarbeit Bäcker Ewald Softwareprojekt Bauer Else DBS1

9 Datenbanksysteme für FÜ WS04/05 SQL2 - 9 Worzyk FH Anhalt Anzeigen von Nullmarken SQL> SELECT NVL(nachname,'Kein Wert'), 2 NVL(vorname,'Kein Wert') 3 FROM pruefung; NVL(NACHNA NVL(VORNAM Maier Fritz Bauer Else Bäcker Ewald Kein Wert Müller Jutta Maier Fritz

10 Datenbanksysteme für FÜ WS04/05 SQL Worzyk FH Anhalt Anzeigen von Nullmarken SQL> SELECT '!' || nachname || '!' || vorname || '!' 2 FROM pruefung; '!'||NACHNAME|| '!'||VOR !Maier!Fritz! !Bauer!Else! !Bäcker!Ewald! ! !! !Müller!Jutta! !Maier!Fritz!

11 Datenbanksysteme für FÜ WS04/05 SQL Worzyk FH Anhalt Aggregatfunktionen

12 Datenbanksysteme für FÜ WS04/05 SQL Worzyk FH Anhalt count SELECT COUNT (*) –Anzahl aller Zeilen SELECT COUNT (expr) –Anzahl aller Zeilen, die einen Wert in der angegebenen Spalte haben SELECT COUNT (DISTINCT expr) –Anzahl aller unterschiedlichen Zeilen, die einen Wert in der angegebenen Spalte haben

13 Datenbanksysteme für FÜ WS04/05 SQL Worzyk FH Anhalt count SQL> SELECT COUNT(*), COUNT(note), 2 COUNT(DISTINCT note) 3 FROM pruefung; COUNT(*) COUNT(NOTE) COUNT(DISTINCTNOTE)

14 Datenbanksysteme für FÜ WS04/05 SQL Worzyk FH Anhalt Auswerten von Nullmarken SQL> SELECT AVG(note), SUM(note)/COUNT(*) 2 FROM pruefung; AVG(NOTE) SUM(NOTE)/COUNT(*) ,6625 2,13

15 Datenbanksysteme für FÜ WS04/05 SQL Worzyk FH Anhalt Group by Group by kennzeichnet die Zeilen einer Spalte, die durch eine Aggregatfunktion zusammengefaßt werden sollen.

16 Datenbanksysteme für FÜ WS04/05 SQL Worzyk FH Anhalt select SELECT command ::= column SELECT*, DISTINCT ALL table. t_alias. FROMtable WHERE conditiont_alias, ORDER BY column ASC DESC, c_alias GROUP BY expr,

17 Datenbanksysteme für FÜ WS04/05 SQL Worzyk FH Anhalt group by Wieviel Prüfungen wurden pro Fach durchgeführt? SQL> SELECT fach, COUNT(note) "Anzahl Pruefungen" 2 FROM pruefung 3 GROUP BY fach; FACH Anzahl Pruefungen Betriebssysteme 1 DBS1 4 Datenorganisation 3 Diplomarbeit 3 Mathematik 2 Softwareprojekt 0 TI 3 0

18 Datenbanksysteme für FÜ WS04/05 SQL Worzyk FH Anhalt group by Wie lautet der Notendurchschnitt pro Fach? SQL> SELECT fach, AVG(note) "Durchschnitt" 2 FROM pruefung 3 GROUP BY fach 4 ORDER BY "Durchschnitt"; FACH Durchschnitt Betriebssysteme 1,7 Mathematik 2,15 Datenorganisation 2, DBS1 2,475 Diplomarbeit 3, TI 3, Softwareprojekt 8 Zeilen ausgewählt.

19 Datenbanksysteme für FÜ WS04/05 SQL Worzyk FH Anhalt group by Wie lautet der Notendurchschnitt pro Fach im Jahr 1999? SQL> SELECT fach, AVG(note) "Durchschnitt" 2 FROM pruefung 3 WHERE datum > ' ' 4 GROUP BY fach 5 ORDER BY "Durchschnitt"; FACH Durchschnitt DBS1 2, Datenorganisation 2,7 Diplomarbeit 2,7 Mathematik 3 TI 3,5 Softwareprojekt 7 Zeilen ausgewählt.

20 Datenbanksysteme für FÜ WS04/05 SQL Worzyk FH Anhalt Relationenalgebra Produkt Das Produkt der Tabellen T 1 und T 2 hat die Attribute von T 1 und T 2. Jedes Tupel von T 1 wird mit jedem Tupel von T 2 verbunden.

21 Datenbanksysteme für FÜ WS04/05 SQL Worzyk FH Anhalt Relationen Produkt

22 Datenbanksysteme für FÜ WS04/05 SQL Worzyk FH Anhalt Kreuzprodukt SQL> SELECT * FROM belegung; NACHNAME VORNAME VORLESUNG Müller Jutta Mathematik Köhler Emil DBS1 Maier Fritz Programmierung SQL> SELECT * FROM stuga; NACHNAME VORNAME STUDIENGANG Müller Jutta Informatik Köhler Emil Fachübersetzen Maier Fritz InfManagement

23 Datenbanksysteme für FÜ WS04/05 SQL Worzyk FH Anhalt Kreuzprodukt SQL> SELECT vorlesung, studiengang 2 FROM belegung, stuga; VORLESUNG STUDIENGANG Mathematik Informatik DBS1 Informatik Programmierung Informatik Mathematik Fachübersetzen DBS1 Fachübersetzen Programmierung Fachübersetzen Mathematik InfManagement DBS1 InfManagement Programmierung InfManagement

24 Datenbanksysteme für FÜ WS04/05 SQL Worzyk FH Anhalt Kreuzprodukt SQL> SELECT vorlesung, studiengang 2 FROM stuga, belegung; VORLESUNG STUDIENGANG Mathematik Informatik Mathematik Fachübersetzen Mathematik InfManagement DBS1 Informatik DBS1 Fachübersetzen DBS1 InfManagement Programmierung Informatik Programmierung Fachübersetzen Programmierung InfManagement

25 Datenbanksysteme für FÜ WS04/05 SQL Worzyk FH Anhalt Namenskonventionen Tabellen werden in Zukunft immer den Präfix ta_ haben.

26 Datenbanksysteme für FÜ WS04/05 SQL Worzyk FH Anhalt equijoun SQL> SELECT ta_stuga.nachname, ta_stuga.vorname, 2 ta_stuga.studiengang, ta_belegung.vorlesung 3 FROM ta_stuga, ta_belegung 4 WHERE ta_stuga.nachname = ta_belegung.nachname 5 AND ta_stuga.vorname = ta_belegung.vorname; NACHNAME VORNAME STUDIENGANG VORLESUNG Köhler Emil Fachübersetzen DBS1 Maier Fritz InfManagement Programmierung Müller Jutta Informatik Mathematik

27 Datenbanksysteme für FÜ WS04/05 SQL Worzyk FH Anhalt select

28 Datenbanksysteme für FÜ WS04/05 SQL Worzyk FH Anhalt equijoun SQL> SELECT s.nachname, s.vorname, 2 s.studiengang, b.vorlesung 3 FROM ta_stuga s, ta_belegung b 4 WHERE s.nachname = b.nachname 5 AND s.vorname = b.vorname; NACHNAME VORNAME STUDIENGANG VORLESUNG Köhler Emil Fachübersetzen DBS1 Maier Fritz InfManagement Programmierung Müller Jutta Informatik Mathematik

29 Datenbanksysteme für FÜ WS04/05 SQL Worzyk FH Anhalt Selektion Beispiel wie heißen die Informatiker in der Mathematik-Vorlesung wie lang ist die durchschnittliche Studiendauer der DBS1-Hörer

30 Datenbanksysteme für FÜ WS04/05 SQL Worzyk FH Anhalt equijoin wie heißen die Informatiker in der Mathematik-Vorlesung SQL> SELECT b.vorname, b.nachname, s.studiengang 2 FROM ta_belegung b, ta_stuga s 3 WHERE b.vorname = s.vorname 4 AND b.nachname = s.nachname 5 AND b.vorlesung = 'Mathematik' 6 AND s.studiengang = 'Informatik'; VORNAME NACHNAME STUDIENGANG Hans Lehmann Informatik Jutta Müller Informatik

31 Datenbanksysteme für FÜ WS04/05 SQL Worzyk FH Anhalt equijoin wie lang ist die durchschnittliche Studiendauer der DBS1-Hörer SQL> SELECT b.vorlesung, avg(d.dauer) 2 FROM ta_belegung b, ta_stuga s, ta_dauer d 3 WHERE b.vorname = s.vorname 4 AND b.nachname = s.nachname 5 AND s.studiengang = d.studiengang 6 AND b.vorlesung = 'DBS1' 7 GROUP BY b.vorlesung; VORLESUNG AVG(D.DAUER) DBS1 9,5

32 Datenbanksysteme für FÜ WS04/05 SQL Worzyk FH Anhalt selfjoin SQL> SELECT * FROM ta_personal; PERS# NAME ABTEILUNG CHEF Jutta DV Emil DV Fritz Management Hans Entwicklung Hermann DV Else

33 Datenbanksysteme für FÜ WS04/05 SQL Worzyk FH Anhalt selfjoin Welcher Chef hat welche Mitarbeiter? SQL> SELECT p1.name "Chef", p2.name "Mitarbeiter" 2 from ta_personal p1, 3 ta_personal p2 4 where p1.pers# = p2.Chef 5 ORDER BY p1.name; Chef Mitarbeite Else Fritz Fritz Hans Fritz Hermann Hermann Jutta Hermann Emil

34 Datenbanksysteme für FÜ WS04/05 SQL Worzyk FH Anhalt Zusammenfassung order by sortiert ungeordnete Zeilen group by bildet Teilmengen für Aggregatfunktionen join verbindet mehrere Tabellen selfjoin verbindet eine Tabelle mit sich selbst


Herunterladen ppt "Datenbanksysteme für FÜ WS04/05 SQL2 - 1 Worzyk FH Anhalt SQL 2 Order by null Aggregatfunktionen group by Join subselect."

Ähnliche Präsentationen


Google-Anzeigen