Aussagen über Tabelleninhalte

Werbung
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
pq
pq
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
pq
pq
 pq
 pq
pq 
pq 

pq 
Worzyk
FH Anhalt
pq
(pq(qp
(pq(qp
(pq(qp
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
Herunterladen