SQL 1 • Aussagen über Tabelleninhalte • Aussagelogik • Äquivalenzen • Select • Where Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 2 - 1 Aussagen über Tabelleninhalte M üller Worzyk FH Anhalt Jutta 425 Lehmann Hans 260 M aier Fritz 250 M üller Anna 111 Köhler Emil 301 Bauer Else 260 Datenbanksysteme für FÜ SS 2000 Seite 2 - 2 Aussagen über Tabelleninhalte Alle Tupel von Müller Worzyk FH Anhalt M üller Jutta 425 M üller Anna 111 Datenbanksysteme für FÜ SS 2000 Seite 2 - 3 Aussagen über Tabelleninhalte Alle Tupel mit einer Telefonnummer >300 Worzyk FH Anhalt M üller Jutta 425 Köhler Emil 301 Datenbanksysteme für FÜ SS 2000 Seite 2 - 4 Aussagen über Tabelleninhalte Alle Tupel von Müller und mit einer Telefonnummer >300 M üller Worzyk FH Anhalt Jutta 425 Datenbanksysteme für FÜ SS 2000 Seite 2 - 5 Aussagen über Tabelleninhalte Alle Tupel von Müller oder mit einer Telefonnummer >300 Worzyk FH Anhalt M üller Jutta 425 M üller Anna 111 Köhler Emil 301 Datenbanksysteme für FÜ SS 2000 Seite 2 - 6 Aussagen über Tabelleninhalte Alle Tupel für die nicht gilt: Der Name ist nicht Müller und die Telefonnummer ist < 300 Worzyk FH Anhalt M üller Jutta 425 M üller Anna 111 Köhler Emil 301 Datenbanksysteme für FÜ SS 2000 Seite 2 - 7 Aussagen über Tabelleninhalte Alle Tupel für die gilt: wenn nicht Lehmann dann mit einer Telefonnummer >300 M üller Worzyk FH Anhalt Jutta 425 Lehmann Hans 260 Köhler 301 Emil Datenbanksysteme für FÜ SS 2000 Seite 2 - 8 Aussagen über Tabelleninhalte Alle Tupel von Müller und der TelNr > 300 oder wenn der Name „Müller“ ist, dann TelNr 300, sonst egal M üller Worzyk FH Anhalt Jutta 425 Lehmann Hans 260 M aier Fritz 250 M üller Anna 111 Köhler Emil 301 Bauer Else 260 Datenbanksysteme für FÜ SS 2000 Seite 2 - 9 Aussagen über Tabelleninhalte Alle Tupel für die gilt: Der Name ist „Müller“ und die TelNr > 300 und entweder ist der Name nicht „Müller“ oder TelNr 300 oder beides Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 2 - 10 Aussagen über Tabelleninhalte • Unterschiedliche Aussagen können zu gleichen Ergebnissen führen • Exakte Aussagen sind schwierig zu formulieren • Umgangssprachliche Aussagen sind häufig nicht exakt Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 2 - 11 Aussagelogik Bildungsregeln für Ausdrücke: Jede Aussagevariablen ist ein Ausdruck Wenn p q Ausdrücke sind, dann auch p Negation p q Konjunktion p q Alternative p q Implikation p q Äquivalenz p q Antivalenz Ausdrücke Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 2 - 12 Beispiele für Ausdrücke p q pq pq Name = "M üller" Telefonnummer >300 M üller und mit einer Telefonnummer >300 Alle Tupel von M üller oder mit einer Telefonnummer >300 p q) Alle Tupel für die nicht gilt: Der Name ist nicht M üller und die Telefonnummer ist < 300 w enn nicht Lehmann dann mit einer r q Telefonnummer >300 Alle Tupel von M üller und der TelNr > 300 (p q) oder w enn der Name „ M üller" ist, dann TelNr p q) 300, sonst egal Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 2 - 13 Äquivalenzen pq pq pq pq pq pq pq Worzyk FH Anhalt pq (pq(qp (pq(qp (pq(qp Datenbanksysteme für FÜ SS 2000 Seite 2 - 14 select SELECT command ::= SELECT * , DISTINCT ALL column t_alias. table. , FROM table t_alias Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 2 - 15 select SQL> SELECT * FROM telefonbuch; NACHNAME -------------------Müller Lehmann Maier Müller Köhler Bauer VORNAME TELEFONNUMMER EINGERIC ---------- ------------- -------Jutta 425 01.04.00 Hans 260 03.11.99 Fritz 250 05.02.00 Anna 111 03.04.00 Emil 301 02.02.00 Else 260 01.03.00 6 Zeilen ausgewählt. Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 2 - 16 select SQL> SELECT vorname, nachname, telefonnummer 2 FROM telefonbuch; VORNAME ---------Jutta Hans Fritz Anna Emil Else NACHNAME TELEFONNUMMER -------------------- ------------Müller 425 Lehmann 260 Maier 250 Müller 111 Köhler 301 Bauer 260 6 Zeilen ausgewählt. Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 2 - 17 select SQL> SELECT Nachname, Vorname, 2 TO_CHAR(eingerichtet,'DD.MON.YYYY') 3 FROM telefonbuch; NACHNAME -------------------Müller Lehmann Maier Müller Köhler Bauer Worzyk FH Anhalt VORNAME ---------Jutta Hans Fritz Anna Emil Else TO_CHAR(EIN ----------01.APR.2000 03.NOV.2099 05.FEB.2000 03.APR.2000 02.FEB.2000 01.MÄR.2000 Datenbanksysteme für FÜ SS 2000 Seite 2 - 18 select SELECT command ::= SELECT * , DISTINCT ALL column t_alias. c_alias table. expression , FROM table t_alias Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 2 - 19 expression expr (Form I) ::= (expr) (function) + expr expr * expr / + Worzyk FH Anhalt || Datenbanksysteme für FÜ SS 2000 Seite 2 - 20 select SQL> SELECT Nachname, Vorname, 2 TO_CHAR(eingerichtet,'DD.MON.YYYY') seit 3 FROM telefonbuch; NACHNAME -------------------Müller Lehmann Maier Müller Köhler Bauer Worzyk FH Anhalt VORNAME ---------Jutta Hans Fritz Anna Emil Else SEIT ----------01.APR.2000 03.NOV.2099 05.FEB.2000 03.APR.2000 02.FEB.2000 01.MÄR.2000 Datenbanksysteme für FÜ SS 2000 Seite 2 - 21 select SELECT command ::= SELECT * , DISTINCT ALL column t_alias. c_alias table. , FROM table t_alias Worzyk FH Anhalt WHERE condition Datenbanksysteme für FÜ SS 2000 Seite 2 - 22 expression expr (Form II) ::= column ‘text‘ number Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 2 - 23 condition condition (Form I) ::= expr = expr != < > >= <= Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 2 - 24 condition condition (Form II) ::= (condition) NOT condition condition AND condition OR Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 2 - 25 Abfragen Alle Tupel von Müller SQL> SELECT Nachname, Vorname, Telefonnummer 2 FROM telefonbuch 3 WHERE nachname = 'Müller'; NACHNAME ------------------Müller Müller Worzyk FH Anhalt VORNAME TELEFONNUMMER ---------- ------------Jutta 425 Anna 111 Datenbanksysteme für FÜ SS 2000 Seite 2 - 26 condition condition (Form II) ::= (condition) NOT condition condition AND condition OR Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 2 - 27 Abfragen Alle Tupel von Müller SQL> SELECT Nachname, Vorname, Telefonnummer 2 FROM telefonbuch 3 WHERE nachname = 'Müller'; NACHNAME ------------------Müller Müller Worzyk FH Anhalt VORNAME TELEFONNUMMER ---------- ------------Jutta 425 Anna 111 Datenbanksysteme für FÜ SS 2000 Seite 2 - 28 Abfragen Alle Tupel mit einer Telefonnummer >300 SQL> SELECT Nachname, Vorname, Telefonnummer 2 FROM telefonbuch 3 WHERE telefonnummer > 300; NACHNAME -------------------Müller Köhler Worzyk FH Anhalt VORNAME TELEFONNUMMER ---------- ------------Jutta 425 Emil 301 Datenbanksysteme für FÜ SS 2000 Seite 2 - 29 Abfragen Alle Tupel von Müller und mit einer Telefonnummer >300 SQL> SELECT Nachname, Vorname, Telefonnummer 2 FROM telefonbuch 3 WHERE nachname = 'Müller' 4 AND telefonnummer > 300; NACHNAME VORNAME TELEFONNUMMER -------------------- ---------- ------------Müller Jutta 425 Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 2 - 30 Abfragen Alle Tupel von Müller oder mit einer Telefonnummer>300 SQL> SELECT Nachname, Vorname, Telefonnummer 2 FROM telefonbuch 3 WHERE Nachname = 'Müller' 4 OR telefonnummer > 300; NACHNAME -------------------Müller Müller Köhler Worzyk FH Anhalt VORNAME TELEFONNUMMER ---------- ------------Jutta 425 Anna 111 Emil 301 Datenbanksysteme für FÜ SS 2000 Seite 2 - 31 Abfragen Alle Tupel für die nicht gilt: Der Name ist nicht „Müller“ und die Telefonnummer ist nicht > 300 SQL> SELECT Nachname, Vorname, Telefonnummer 2 FROM telefonbuch 3 WHERE NOT( Nachname != 'Müller' 4 AND NOT telefonnummer > 300); NACHNAME -------------------Müller Müller Köhler Worzyk FH Anhalt VORNAME TELEFONNUMMER ---------- ------------Jutta 425 Anna 111 Emil 301 Datenbanksysteme für FÜ SS 2000 Seite 2 - 32 Abfragen Alle Tupel von Müller und der TelNr > 300 oder wenn der Name „Müller“ ist, dann TelNr 300, sonst egal SQL> SELECT Nachname, Vorname, Telefonnummer 2 FROM telefonbuch 3 WHERE (Nachname = 'Müller' 4 and Telefonnummer > 300) 5 OR (Nachname != 'Müller' 6 or Telefonnummer <= 300); NACHNAME VORNAME TELEFONNUMMER -------------------- ---------- ------------Müller Jutta 425 Lehmann Hans 260 Maier Fritz 250 Müller Anna 111 Köhler Emil 301 Bauer Else 260 Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 2 - 33 Abfragen Alle Tupel für die gilt: Der Name ist „Müller“ und die TelNr > 300 und entweder ist der Name nicht „Müller“oder TelNr 300 oder beides SQL> SELECT Nachname, Vorname, Telefonnummer 2 FROM telefonbuch 3 WHERE (Nachname = 'Müller' 4 and Telefonnummer > 300) 5 AND (Nachname != 'Müller' 6 OR Telefonnummer <= 300); Es wurden keine Zeilen ausgewählt Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 2 - 34 SQL Plus 8.0 Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 2 - 35 Anmelden Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 2 - 36 Zusammenfassung • Die Aussagelogik ermöglicht die exakte Formulierung einer Anfrage • select Anweisung • where Klausel beschreibt die umgangssprachlich formulierte Ergebnismenge mit Hilfe des (Pfeilfreien) Aussagekalküls Worzyk FH Anhalt Datenbanksysteme für FÜ SS 2000 Seite 2 - 37