SQL-Abfragen

Werbung
SQL-Abfragen
1. Hintergrundinfos
-
-
strukturierte Abfragesprache für Datenbankabfragen
bei einer Vielzahl von Datenbanken einsetzbar (Oracle, Access, Excel, …)
SQL erhält durch die Kombination mit Programmiersprachen wie PHP, ASP, ASPnet,
JSP besondere Bedeutung
Ablauf einer Abfrage:
I. Statement vom Client
II. Wird am Server verarbeitet
III. Ergebnis an den Client gesandt
Achtung: CASE SENSITIVE! (Groß-, Kleinschreibung beachten)
Hinweis: Beim Cut & Paste aus dieser Datei in die Formularzelle von sql.idv.edu wird das
einfache Anführungszeichen falsch übernommen und es kommt gegebenenfalls zu einer
Fehlermeldung. Das korrekte Anführungszeichen ist jenes über der Raute-Taste.
2. SQL-Statements
Beispiel0: Standard
Vorname, Nachname und Plz aller Kunden?
SELECT Vorname, Nachname, Plz FROM Kunde
SELECT
DB-Feldname1, DB-Feldname2,
…
WHERE DB-FeldnameX <Bedingung>
FROM Tabellenname
Beispiel1: Bedingung
Vorname, Nachname, Plz aller Kunden mit Plz 4040?
SELECT Vorname, Nachname, Plz FROM Kunde WHERE Plz = 4040
Hinweis: Vergleich mit WHERE; Textvergleich unter Hochkomma, Zahlenvergleich ohne.
Beispiel2: Weitere Vergleichsoperatoren
BuchNr, Titel und Preis der ersten 4 Bücher?
SELECT Nr, Titel, Preis FROM Buch WHERE Nr < 5
1
Neben „< 5“ lassen sich aber auch eine Reihe anderer Vergleichsoperatoren einsetzen:
=
Gleich
>
Größer
<
Kleiner
<>
Ungleich
>=
Größer gleich
<=
KK Kleiner gleich
Abbildung1: Vergleichsoperatoren
Beispiel3: Sortieren
KundenNr, Nachname und Plz der ersten 4 Kunden; aufsteigend sortiert nach Nachname?
SELECT Nr, Nachname, Plz FROM Kunde WHERE Nr < 5
ORDER BY Nachname ASC
Standardmäßig wird aufsteigend sortiert, deswegen könnte ASC hier weggelassen werden.
Auch DESC ausprobieren! (descending = absteigend, ascending = aufsteigend)
Außerdem 2 Sortierungskriterien möglich z.B.: ORDER BY Nachname ASC, Vorname DESC
Beispiel4: AND
KundenNr, Nachname, Plz aus 4040 und mit Nachnamen Huber?
SELECT Nr, Nachname, Plz FROM Kunde WHERE Plz = 4040
AND Nachname = ’Huber’
Beispiel5: ODER
KundenNr, Nachname, Plz aus 4040 oder mit Nachnamen Huber?
SELECT Nr, Nachname, Plz FROM Kunde WHERE Plz = 4040
OR Nachname = ‘Huber’
Beispiel6: LIKE
Alle Vorname, die mit „M“ beginnen?
SELECT Vorname FROM Kunde WHERE Vorname LIKE ‘M%’
Beispiel7: DISTINCT (neu)
Alle unterschiedlichen Vorname, die mit „M“ beginnen?
SELECT DISTINCT Vorname FROM Kunde WHERE Vorname LIKE ‘M%’
Beispiel8: IN
Kundennummer, Plz aller Kunden aus 5020, 1010, 4020?
SELECT Nr, Plz FROM Kunde WHERE Plz IN (‘5020’,’1010’,’4020’)
2
Beispiel9: BETWEEN
Preis und Titel aller Bucher zwischen 60 und 70 €?
SELECT Preis, Titel FROM Buch WHERE Preis BETWEEN 60 AND 70
Arithmetische Gruppenfunktionen (COUNT, SUM, AVG, MIN, MAX)
Beispiel10:
Wieviele unserer Kunden heißen mit Vornamen „Michael“?
SELECT Count(Vorname) FROM Kunde WHERE Vorname=’Michael’
Hinweis: „Count(Vorname)“ muss eng zusammengeschrieben werden!
Beispiel11:
Wieviel muß jemand bezahlen der alle Bücher vom Autor „Arge“ kauft?
SELECT SUM(Preis) FROM Buch WHERE Autor = ‘Arge’
Beispiel12:
Durchschnittliche Kosten eines Buches vom Autor „Arge“?
SELECT AVG(Preis) FROM Buch WHERE Autor = ‘Arge’
Beispiel13:
Wieviel kostet das billigste und teuerste Buch in der Datenbank
SELECT MIN(Preis), MAX(Preis) FROM Buch
Beispiel14:
Verlag, Summe der Preise der Bücher pro Verlag gruppiert?
SELECT Verlag, SUM(Preis) FROM Buch GROUP BY Verlag
Hinweis: Die GROUP-BY Klausel fasst alle Datensätze zusammen, die in diesem Fall das
Gruppierungskriterium selber Verlag erfüllen.
Natürlich lassen sich mit SQL nicht nur Abfragen durchführen sondern auch andere Vorgänge
ausführen wie etwa:
- DELETE (löschen),
- INSERT INTO (Datensätze einfügen),
- UPDATE (ändern),
- CREATE TABLE
- …
vgl.: http://www.usegroup.de/software/phptutorial/eine_kleine_sql-referenz.html (2011-12-06)
3
Herunterladen