select

Werbung
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:
Herunterladen