๐DQL - Select-Anweisungen

โก๏ธ Ausprobieren
รffne diese Beispiel-Datenbank in einem neuen Fenster: https://www.w3schools.com/sql/trysqlserver.asp?filename=trysql_func_sqlserver_concat
Hier kannst du direkt im Browser SQL Statements ausprobieren. Probiere die Beispiele hier mit einem โก๏ธ-Symbol aus.
SELECT-Anweisung
DQL Anweisungen werden zur Auswahl und Anzeige von Daten aus der Datenbank verwendet. Abfragen erstellen eine temporรคre, speicherresidente (nicht persistente) Tabelle mit 0 oder mehreren Datenzeilen. Sie beginnen immer mit SELECT, gefolgt von der FROM-Klausel.
Mit SELECT wird ausgewรคhlt, welche Spalten der Tabelle in welcher Reihenfolge zurรผckgegeben werden sollen. Mit * werden alle Spalten ausgewรคhlt, entspricht der Spaltenreihenfolge der in der zugrundeliegenden Tabelle.
Nach FROM gibt man den Namen der Tabelle an, welche abgefragt werden soll.
โก๏ธ Ausprobieren
Lass dir alle Kunden ausgeben.
Zeigt nur den Namen und die Adresse der Kunden an
Spalten-Aliasnamen
Bei einer Abfrage kรถnnen mit dem optionalen Schlรผsselwort AS den Spalten (oder berechneten Spalten) neue Namen gegeben werden.
Wenn du Spaltennamen mit Leerschlรคgen geben willst, musst du eckige Klammern darum machen, z.B.: [Zustรคndiger Ansprechpartner]
โก๏ธ Ausprobieren
Verรคndere das Statement so, dass die Spalte
ContactNameneuZustaendiger Ansprechpartnerheisst.
2. Probiere auch das aus:
Doppelte Zeilen unterdrรผcken
Mit dem Schlรผsselwort DISTINCT nach SELECT, werden doppelte Eintrรคge weggelassen. Als doppelter Eintrag gelten nur, wenn die Werte in alle angezeigten Spalten gleich sind.
โก๏ธ Ausprobieren
Verรคndere das Statement so, dass die Ausgabe keine doppelten Eintrรคge mehr enthรคlt
Ausdrรผcke und Verkettung
Berechnungsausdrรผcke werden wie Tabellenspalten angegeben.
Auch Texte kรถnnen verkettet werden:
โก๏ธ Ausprobieren
Schreibe ein SQL-Statement, welches vom Kunden den Namen und eine berechnete Kundennummer anzeigt. Die Kundennummer ist einfach CustomerID plus 10'000.
Erweitere das Statement um die Spalte "Anschrift", welche eine Verkettung aus Namen, Adresse, PLZ, Ort und Land ist.
Bedingungen in Ausdrรผcken
Mit CASE kann in Ausdrรผcken nach bestimmten Bedingungen unterschieden werden, wie ein if-else in der Programmierung.
โก๏ธ Ausprobieren
Erweitere dieses SQL-Statement mit einer neuen Spalte "QuantityText". Ist die Quantitรคt grรถsser als 10, soll darin stehen "Die Anzahl ist grรถsser als 10". Ist die Quantitรคt gleich 10, soll darin stehen "Die Anzahl ist 10". Ist die Quantitรคt kleiner als 10, soll stehen "Dia Anzahl ist kleiner als 10".
WHERE-Klausel
Schrรคnkt die รผber SELECT zurรผckgegebenen Zeilen ein. WHERE folgt nach der FROM Klausel und besteht jeweils aus einem linken Vergleichsterm, einem Vergleichsoperator (=, >, <, >=, <=, <>, !=) und einem rechten Vergleichsterm.
Vergleichskriterien
Zahlenfelder
Auswertung nach mathematischen Gesichtspunkten.
Textfelder
Texte werden wie Datumswerte von einfachen Hochkommata umschlossen
Vergleiche erfolgen von links nach rechts nach dem Alphabet
Gross-/Kleinschreibung bei SQL Server in der Regel nicht relevant im Gegensatz zu ORACLE
Datumsfelder
Alle Vergleichsoperatoren sind mรถglich
Fรผr gรผltige Vergleiche muss auf das Datumsformat geachtet werden
Unterschiedlich bei verschiedenen Herstellern
Numerische Datumsformate
'01.01.2015''01-01-2015'
Alphanumerische Datumsformate (sprachenabhรคngig!)
'01 JANUAR 15''JAN 1, 15'
โก๏ธ Ausprobieren
Die Vergleichsspalte in der WHERE-Klausel muss nicht in der SELECT-Klausel enthalten sein:
Erweitere dieses SQL-Statement, sodass nur noch Kundennamen angezeigt werden, welche einen Anfangsbuchstaben >
'M'haben.Schreibe ein SQL Statement, welches alle Produkte ausgibt, welche teurer als 50$ sind.
Schreibe ein SQL Statement, welches alle Bestellungen anzeigt, die vor dem 15.07.1996 getรคtigt wurden.
Mustervergleiche
Zusรคtzlich zu den einfachen Vergleichsoperatoren (=, >, <, >=, <=, <>, !=) gibt es auch noch etwas komplexere Operatoren. Einer davon ist LIKE.
LIKE sucht nach enthaltenem Text in einer Textspalte. Dabei gibt es verschiedene Platzhalter, die Beschreiben:
Platzhalter
Beschreibung
%
Beliebig viele Zeichen
_
Genau ein Zeichen
[]
Genau eines der Zeichen in der Klammer oder im angegebenen Bereich / den angegebenen Bereichen.
Beispiele:
[ace]: Platzhalter fรผr ein a, ein c oder ein e.
[a-m]: Platzhalter fรผr ein Zeichen zwischen a und m.
^
Platzhalter fรผr ein Zeichen ausser der angegebenen Zeichen oder Zeichenbereiche.
Beispiele:
[^ace]: Platzhalter fรผr ein Zeichen, das kein a, c oder eist.
โก๏ธ Ausprobieren
Erweitere das SQL-Statement, dass nur Kunden angezeigt werden, welche an Orten leben, die mit "ber" anfangen.
รndere das SQL-Statement, dass nur Kunden angezeigt werden, welche an Orten leben, die mit "li" oder "la" anfangen.
รndere das SQL-Statement, dass nur Kunden angezeigt werden, in deren Namen als zweiter Buchstabe ein "e" steht.
รndere das SQL-Statement, dass nur Kunden angezeigt werden, deren Namen nicht mit "A" beginnen.
Operator BETWEEN
BETWEENFรผr Vergleiche mit Werten in einem bestimmten Bereich
Fรผr Zahlen-, Datums- und Textkriterien mรถglich
โฆ WHERE artpreis BETWEEN 10 AND 30;โฆ WHERE gebdat BETWEEN '01.01.2000' AND '30.09.2000'โฆ WHERE artbez BETWEEN 'k' AND 'mz'
Grenzwerte sind immer mit dabei
Keine zusรคtzlichen Vergleichsoperatoren nรถtig (wie z.B. = )
โก๏ธ Ausprobieren
Erweitere das SQL-Statement, dass nur Mitarbeiter angezeigt werden, die zwischen 1950 und 1959 geboren sind.
2. Erweitere das SQL-Statement, dass nur Produkte angezeigt werden, die zwischen 10$ und 20$ kosten.
Mengenvergleich mit IN
INVergleiche mit mehreren, explizit in runden Klammern angegebenen Werten
Bei Verwendung von
INwird kein weiterer Operator mehr benรถtigtGleichheit mit einem der enthaltenen Werte
Entspricht von der Logik einer ODER-Verknรผpfung
Die Auflistung in
INkann wieder eineSELECTAbfrage sein.
โก๏ธ Ausprobieren
Erweitere das SQL-Statement, dass nur Kunden angezeigt werden, die in Beron oder Paris leben.
Liste mit einem
IN-Vergleich und einer Unterabfrage alle Produkte aus Italien auf.
Suchen von NULL-Werten
NULL-WertenVergleiche mit
NULL-WertenWird auf Wahr / Falsch ausgewertet
NULLin Kombination mitIS
โก๏ธ Ausprobieren
Suche in einer Nordwind-Datenbank alle Kunden, fรผr welche KEINE Region angegeben ist.
Suche in einer Nordwind-Datenbank alle Kunden, die eine FAX-Nummer haben.
Mehrere Kriterien
Logische Und-Verknรผpfung:
ANDLogische Oder-Verknรผpfung:
ORJede Teilbedingung muss vollstรคndig sein
Falsch:
WHERE artnr = 1098 OR 1237Richtig:
WHERE artnr = 1098 OR artnr = 1237
Logische Umkehrung: NOT
Falsch:
WHERE artnr NOT = 1098Richtig:
WHERE NOT (artnr = 1098)WHERE NOT (artnr = 1098) AND NOT (artnr = 1237)
โก๏ธ Ausprobieren
Nimm dir ein paar der vorherigen Beispiele vor und versuche sie mit
NOTumzukehren.Nimm dir ein paar der vorherigen Beispiele vor und versuche sie mit
ANDoderORzu verknรผpfen.
Die Prioritรคten halten sich an die natรผrlichen Prioritรคten (von hoch bis gering):
Mathematische Operatoren (+, -, *, etc.)
Vergleichsoperatoren (=, >, <, etc.)
NOT
AND
OR
Durch das Setzen von Klammern kann in den Ausdrรผcken eine andere Prioritรคt erzwungen werden.
Sortierung
Sortierung รผber ORDER BY
ORDER BY immer letzte Klausel innerhalb der Anweisung
Sortiert wird immer am Schluss
Sortierung nach ein oder mehreren Spalten
Aufsteigende (ASC) und absteigende Sortierung (DESC)
Sortierung nach Spalten- oder Aliasnamen oder durch Spaltenposition innerhalb der SELECT-Klausel
โก๏ธ Ausprobieren
Schreibe ein SQL-Statement, welches die Mitarbeiter nach Alter sortiert, die รltesten zuerst.
TOP Auswertungen
TOP AuswertungenTOP: Die "obersten" x Zeilen absolut oder in ProzentReihenfolge wird durch Sortierung bestimmt
โก๏ธ Ausprobieren
Erweitere das SQL-Statement so, dass nur die 3 รคltesten Mitarbeiter angezeigt werden.
Last updated
Was this helpful?