SQL
Structured Query Language
Grundlagen zu Abfrage
Jede SQL-Abfrage enthält die drei
SQL
Hauptbefehle:
select (engl. auswählen),
from (engl. von) und
where (engl. wo).
Mit select gibt man an, welche Spalten man
ausgegeben haben möchte;
mit from gibt man die Tabelle an, aus der
die Spalten stammmen;
mit where gibt man die Bedingung an, unter
der die Datensätze ausgesucht werden,
dabei muss where nicht vorkommen, wenn
es keine Bedingung gibt.
Hinweise
Wenn man alle Spalten einer Tabelle
angezeigt haben möchte, kann man auch
einfach einen * einsetzen.
SQL
Zeichenketten (Strings) wie zum Beispiel
'Michael Schumacher' setzt man in
einfache Anführungszeichen.
Bei den Tabellennamen muss die Groß-/
Kleinschreibung beachtet werden.
Eine einfache Abfrage
select Saison, Fahrerweltmeister, Konstrukteurswm
from WMTitel
where Fahrerweltmeister = 'Michael Schumacher'
SQL
Operatoren
SQL
Mit den Operatoren
< (kleiner), <= (kleiner oder gleich),
= (gleich), <> (ungleich),
>= (größer oder gleich), > (größer)
kann man Vergleichsbedingungen in der
where-Klausel formulieren.
Mit den Operatoren
and,
or,
not
kann man logische Bedingungen in der
where-Klausel formulieren.
Beispiel mit logischem Operator
und Vergleichsoperator
select Saison,
Fahrerweltmeister, WM_Punkte
from WMTitel
where Fahrerweltmeister
'Michael Schumacher‘
WM_Punkte 100
between-Operator
Eine where-Klausel mit
WM_Punkte >= 80 and <= 110
funktioniert nicht, weil beim
zweiten Vergleich der
Vergleichspartner fehlt.
Für Bereichsvergleiche
verwendet man den betweenOperator.
FALSCH:
WM_Punkte >= 80 and <= 110
RICHTIG:
WM_Punkte between 80 and 110
like-Operator
Mit dem like-Operator kann
man Muster für StringVergleiche benutzen:
das Prozentzeichen % steht
für eine beliebige Folge von
Zeichen
der Unterstrich _ steht für
ein einziges beliebiges
Zeichen
den like-Operator kann man
auch zusammen mit not
benutzen: not like
select Saison, KonstrukteursWM
from WMTitel where
KonstrukteursWM like '%Renault%'
in-Operator
Hat man eine ganze Liste von
Kriterien für die gesuchten
Daten, so kann der inOperator weiter helfen.
Man kann den in-Operator
auch zusammen mit not
benutzen: not in
select Saison, Fahrerweltmeister
from WMTitel where
Fahrerweltmeister in ('Ayrton
Senna', 'Alain Prost', 'Damon Hill‘)
is-Operator
Wenn beim Einfügen von
Daten in eine
Datenbanktabelle ein Wert
noch nicht bekannt ist, so wird
dieser mit dem sogenannten
NULL-Wert belegt.
Solche NULL-Werte kann man
mit dem is-Operator finden.
Man kann den is-Operator
auch zusammen mit not
benutzen: not is
select * from WMTitel where
Team_Punkte is NULL
distinct-Operator
Mit dem distinct-Operator
sorgt man dafür, dass in der
Ergebnistabelle keine Einträge
mehrfach vorkommen.
select distinct Fahrerweltmeister
from WMTite
as-Operator und
Grundrechenarten
In der select-Klausel können
mit den Grundrechenarten (+,
-, *, /) Berechnungen
durchgeführt werden.
Für das Ergebnis steht
eigentlich keine Spalte zur
Verfügung, daher muss man
der Ergebnisspalten mit dem
as-Operator eine
Bezeichnungen geben.
select Fahrerweltmeister,
WM_Punkte/160*100 as Ausbeute
from WMTitel
order by-Operator
Will man seine Ergebnisse
nach bestimmten Kriterien
sortiert ausgegeben haben, so
setzt man den order byOperator ein.
Standardmäßig werden
Strings in alphabetischer
Reihenfolge von A bis Z
sortiert (asc) und Zahlen der
Größe nach. Mit dem Zusatz
desc werden die Daten
absteigend sortiert.
select Fahrerweltmeister,
WM_Punkte/160*100 as
Ausbeute from WMTitel order
by Ausbeute desc
Nach mehreren Kriterien
sortieren
Man kann nach mehreren
Kriterien sortieren, wenn man
nach dem order by-Operator
mehrere Spalten angibt.
select Fahrerweltmeister,
WM_Punkte/160*100 as
Ausbeute from WMTitel order
by Ausbeute desc,
Fahrerweltmeister
Man kann statt der
Spaltennamen auch einfach
die Spaltennummern angeben,
nach der das Ergebnis sortiert
werden soll. Das ist besonders
für berechnete Spalten
nützlich.
select Fahrerweltmeister,
WM_Punkte/160*100 as
Ausbeute from WMTitel order
by 2 desc, 1 asc
limit-Klausel
Die limit-Klausel wird
benutzt, um die Anzahl von
Datensätzen, die von einer
select-Anweisung
zurückgegeben wird, zu
beschränken.
limit erwartet ein oder zwei
numerische Argumente:
limit 3, 5 gibt ab dem 4.
Datensatz insgesamt 5
Datensätze zurück, die
Zählung beginnt also ab 0
limit 10 gibt die ersten zehn
Datensätze zurück
(entspricht limit 0, 10)
limit-Beispiel
Von der prozentualen
Ausbeute der WM-Punkte
sollen nur die Plätze 5 bis 7
dargestellt werden.
Ergebnisse ohne limit:
select Fahrerweltmeister,
WM_Punkte/160*100 as Ausbeute
from WMTitel order by Ausbeute
desc, Fahrerweltmeister limit 4, 3
Ergebnisse mit limit: