SQL-Abfragen SQL-Abfragen by uzd19483

VIEWS: 204 PAGES: 5

									                             SQL-Abfragen
Abfragen
Mit einer Abfrage an ein Datenbanksystem lassen sich Daten, die bestimme
Bedingungen erfüllen in einer so genannten Ergebnistabelle herausfiltern.

 In der Informatik gibt es dafür Abfragesprachen z.B. SQL
                              (engl. structured query language)
 Die Abfrage ist eine Funktion mit drei Eingabeargumenten:
 - Spaltenliste (Auswahl bestimmter Spalten )
 - Tabelle (Wahl der Tabelle)
 - Bedingung ( Auswahl bestimmter Zeilen (Datensätze))

  Die Abfrage einer Tabelle liefert wieder eine Tabelle, die so genannte
  Ergebnistabelle.
  Die Abfragebefehle lauten:
   - SELECT für die Auswahl der Attribute
   - FROM      für die Wahl der Tabelle
   - WHERE      für einzelne Kriterien, die zu erfüllen sind




                             SQL-Abfragen
Beispiel 1
Aus der Tabelle Periodensystem sollen nur die Elementnamen der
2. Periode ausgegeben werden.

SQL-Abfrage
SELECT Name
FROM     PSE
WHERE Periode = 2

 Beispiel 2
 Aus der Tabelle Periodensystem sollen die Elementnamen und das zugehörige
 Elementsymbol aller Metalle angezeigt werden.

 SQL-Abfrage
 SELECT Name, Symbol
 FROM     PSE
 WHERE Metall = true




                                                                             1
                    Allgemeine Termdarstellung
=                  Gleichheit
<>                 verschieden
<                  kleiner                        WHERE : siehe Arbeitsblatt
>                  größer
<=                 kleiner oder gleich
>=                 größer oder gleich
IS NULL            prüft, ob die Zelle leer ist
IS NOT NULL        prüft, ob die Zelle einen Wert enthält
Between            Zwischen zwei Werten liegend
In                 prüft, ob der linke Ausdruck in einem der rechten vorkommt
Like               Vergleich auf Textmuster
                   prüft, ob die folgende Unterabfrage mindestens eine Zeile
Exists
                   zurückliefert

NOT         der folgende Ausdruck darf nicht erfüllt sein
AND         beide Bedingungen müssen erfüllt sein
OR          mindestens eine Bedingung muß erfüllt sein




                    Allgemeine Termdarstellung
Für jede Abfrage gibt es auch eine allgemeine Termdarstellung mit dem
jeweiligen Tabellenname, der Bedingung und der Spaltenliste.
Beispiel:           Abfrage (PSE, HG = ‘VIII‘, [Name, OZ] )



                                   HG = ‘VIII‘            [Name, OZ]



                                                                 Da es bei der
                                      Abfrage                    Spaltenliste auf die
                                                                 Reihenfolge ankommt,
                                                                 schreibt man die
                                                                 Spaltennamen in
                                      Ergebnistabelle            eckige Klammern.
                                      (Edelgase)




                                                                                        2
                                    Aufgaben

   Gib zu allen Aufgaben die SQL-Abfrage und die Termdarstellung an:

    a) Gib alle Alkalimetalle (d.h. ohne Wasserstoff) an.

    b) Gib alle Nichtmetalle an.

    c) Gib alle Metalle an, deren Atommasse zwischen 50 und 80 liegt.

    d) Gib alle gasförmigen Stoffe der 7. Hauptgruppe an.

    e) Gibt es flüssige Metalle?

    f) Gib alle Metalle an, die nicht in der 4. Hauptgruppe stehen.

    g) Gib alle Nebengruppenelemente der 4. und 5. Periode an.

    h) Gibt es gasförmige Nebengruppenelemente.

    i) Gibt es Nichtmetalle unter den Nebengruppenelementen?




                       Projektion und Selektion
Die Funktion Abfrage lässt sich in die Teilfunktionen Selektion und Projektion
zerlegen.
Die Selektion gibt die Auswahl der Zeilen (bestimmte Datensätze) und die
Projektion die Auswahl der Spalten (bestimmte Attribute) an.


                         Bedingung                                    Spaltenliste


                Selektion                                      Projektion
Auswahl
bestimmter
Datensätze                                          Auswahl
                                                    bestimmter
                                                    Attribute
Termdarstellung:
Selektion(Tabelle; Bedingung)                  Projektion(Tabelle; Spaltenliste




                                                                                     3
       Verkettung von Selektion und Projektion


                          Bedingung

                    Selektion

                                             Spaltenliste


                                   Projektion
   Abfrage


   Termdarstellung:
   Projektion(Selektion(Tabelle; Bedingung); Spaltenliste)
Kurzform:    Abfrage(Tabelle; Bedingung; Spaltenliste)




       Verkettung von Selektion und Projektion
                       Flussdiagramm

                          Bedingung            Spaltenliste




                       Selektion
                          Abfrage
                                Projektion




Termdarstellung:
Projektion(Selektion(Tabelle; Bedingung);
Abfrage(Tabelle; Bedingung; Spaltenliste) Spaltenliste)




                                                              4
               Kap. 2 Datenbanksysteme

Mit den Aggregatfunktionen COUNT, AVG, SUM, MAX oder MIN
lassen sich aus Datenbanken durch Berechnungen neue
Informationen gewinnen.
Mit GROUP BY lassen sich die Ergebnisse einer Abfrage nach
bestimmten Spalten gruppieren, insbesondere für die Anwendung der
Aggregatfunktionen.
 Beispiele:
 SELECT COUNT(Informatik)       SELECT Informatik, COUNT(Informatik)
 FROM Fach                      FROM Fach
                                GROUP BY Informatik

 Aus der Stegreifaufgabe:
 SELECT Fachbereich, SUM(Preis * Exemplaranzahl) AS Gesamtpreis
 FROM Buch
 GROUP BY Fachbereich




               Kap. 2 Datenbanksysteme

Sollen an diese Gruppen Bedingungen geknüpft werden, geschieht
dies nicht mit WHERE, sondern mit HAVING.

Aus der Stegreifaufgabe:
SELECT Fachbereich, SUM(Preis * Exemplaranzahl) AS Gesamtpreis
FROM Buch
GROUP BY Fachbereich
HAVING Gesamtpreis < 5000




                                                                       5

								
To top