Einfache Abfragen mit SQL - Informatik regional Dresden

Werbung
Informatik Klasse 11/12
Einfache Abfragen mit SQL
Allgemeine Syntax der SQL-Klauseln:
SELECT [ALL|DISTINCT]{spalten|*}
FROM tabelle [alias] [tabelle[alias]]...
[WHERE {bedingung|unterabfrage}]
[GROUP BY spalten[HAVING {bedingung|unterabfrage}]]
[ORDER BY spalten[ASC|DESC]...];
Klausel
Betrachtungsschritt
SELECT
FROM
WHERE
GROUP BY
HAVING
6
1
2
3
4
ORDER BY
5
Erläuterung
streicht alle nicht genannten Spalten
bildet das Kreuzprodukt der genannten Tabellen
streicht alle Zeilen, welche die Bedingung nicht erfüllen
bildet Gruppen
streicht alle Zeilen, welche die Bedingung nicht erfüllen
(nur mit Gruppierung verwendbar)
sortiert auf- oder absteigend
Projektion – Spaltenauswahl mit der Select-Anweisung
SELECT *
FROM MITARBEITER;
 Gibt alle Spalten und alle Zeilen der Tabelle MITARBEITER aus.
Spalten umbenennen
SELECT name AS Familienname, vname AS Vorname, alt AS ‘Alter’
FROM MITARBEITER;
 Die Spalte name wird bei Ausgabe der Daten nun Familienname usw.
genannt.
Entspricht der Ersatzname (Alias) einem SQL-Schlüsselwort (z.B.: ALTER
oder UPDATE), so muss er in Anführungszeichen (“ “) oder Apostrophe (’’)
gestellt werden.
Familienname Vorname Alter
Heinrichs
Harry
45
Kunkel
Silke
25
Kroner
Bart
88
Konstante Werte ausgeben
SELECT 'Mitarbeiter’ AS angestellt_als, name, vname
FROM MITARBEITER;
 Es wird eine Spalte angestellt_als eingefügt, die stets den konstanten Wert
Mitarbeiter enthält.
Anzahl der Datensätze beschränken
SELECT name, vname
FROM MITARBEITER LIMIT 10;
 Gibt die ersten 10 Datensätze zurück.
579863365
Informatik * Dresden * Meißen
1[3]
Informatik Klasse 11/12
Einfache Abfragen mit SQL
Doppelte Datensätze vermeiden
SELECT DISTINCT plz, ort
FROM MITARBEITER;
 Die ausgegebenen Datensätze unterscheiden sich mindestens in einem Feld.
Berechnungen ausführen
SELECT id, preis, stueck, preis*stueck AS
Lagerwert
FROM LAGER;
 preis wird mit stueck multipliziert und als Spalte Lagerwert ausgegeben.
Man kann mit + - * / ( ) nach den bekannten Vorrangregeln rechnen. Dabei werden nur
numerische Datenfelder (Integer oder Float) akzeptiert.
Formatierung der Kommastellen des berechneten Ergebnisses:

auf 2 Nachkommastellen runden mit ROUND(wert,2)
 SELECT id, round(`stueck` *`preis`,2) as 'wert‘ from lager;

die Zahl auf 2 Nachkommastellen abschneiden mit TRUNCATE(wert,2)
 SELECT id,truncate(`stueck` *`preis`,2) as 'wert‘ from lager;
Kombination aus Selektion und Projektion- Bedingungen definieren mit der
Where-Anweisung Mit Hilfe der WHERE-Klausel werden die Daten gefiltert.
Bedingung
Beispiel
Vergleichsoperatoren preis < 100
<, >, <>, =, <=,
name = “Meier“
>=
Bereichsprüfung
preis BETWEEN 10 AND 100
BETWEEN
Elementprüfung
IN
Mustervergleich
LIKE
abteilung IN(“Einkauf“, “Verkauf“)
Nullwertprüfung
IS NULL
preis IS NULL
name LIKE “M%“ *  %
name LIKE “M_ller”
Logische Operatoren preis < 100 AND preis > 10
NOT, AND, OR
Erklärung
Vergleicht den Wert eines
Datenfelds mit einem
vorgegebenen Wert
Prüft, ob der Wert eines Feldes
innerhalb eines bestimmten
Bereichs liegt
Prüft, ob der Wert eines Feldes in
der angegebenen Liste vorkommt
Überprüft einen Feldinhalt auf
Übereinstimmung mit einem
Muster
Prüft einen Feldinhalt auf den Wert
NULL (Datenfeld enthält keinen
Wert)
Verknüpfung mehrerer
Bedingungen (auch mit
Klammerung)
SELECT NAME, VNAME, PLZ, ORT
FROM MITARBEITER
WHERE PLZ LIKE ‘6%’ AND ALT < 40
 Gibt die Spalten name, vname, plz, ort aus der Tabelle MITARBEITER aus.
Die Datensätze sind beschränkt auf plz, die mit 6 beginnen und alt muss
kleiner als 40 sein.
579863365
Informatik * Dresden * Meißen
2[3]
Informatik Klasse 11/12
Einfache Abfragen mit SQL
Sortierung
Sortierung der Abfrageergebnisse nach einem oder mehreren Datenfeldern
mittels ORDER BY-Klausel
Standardmäßig wird aufsteigend sortiert (ASCending)
SELECT *
FROM LAGER
ORDER BY preis DESC;
 Sortierung nach preis in absteigender Reihenfolge (DESCending)
SELECT vname, name, plz, ort
FROM MITARBEITER
ORDER BY name, vname;
 Zuerst wird nach name dann nach vname sortiert
Übungsaufgaben mit schule09 (eine Tabelle)
1.
Es sollen alle Schüler mit Namen, Vornamen und Klasse ausgegeben werden!
2.
Alle Lehrer sollen alphabetisch geordnet (nach Name) mit den Attributen Name,
Vorname, Abkürzung ausgegeben werden!
3.
Welche Lehrer wohnen in Meißen? (Abkz, Name, Vorname)
4.
Welche Lehrer wohnen Nicht in Meißen? (Abkz, Name, Vorname, Wohnort)
5.
Welche Unterrichtsfächer unterrichtet Herr Conrad?
6.
Es sollen alle Geschichtskurse ausgegeben werden (Kursnr, Beginn)!
7.
Ermitteln Sie alle auftretenden Familiennamen alphabetisch geordnet aus der Tabelle
Schüler!
8.
Ermitteln Sie alle Lehrer (vname, name), deren Familienname auf mann endet!
9.
Ermitteln Sie alle Wohnorte der Schüler, die mit K beginnen!
10.
Ermitteln Sie alle Wohnorte der Lehrer, deren Postleitzahl die Ziffernfolge 65 am Ende
enthält!
11.
Welche Schüler sind bereits 18 Jahre alt?
12.
Welche Kurse begannen im Jahr 2008 (bzw. welche Kurse sind 12er Kurse)?
Übungsaufgaben mit firma (eine Tabelle)
1.
Finden Sie alle Mitarbeiter mit dem Namen Müller!
2.
Finden Sie alle Mitarbeiter, deren Namen mit A, B oder C beginnen!
3.
Finden Sie alle Produkte, deren Stückzahl kleiner als 50 ist!
4.
Finden Sie alle Mitarbeiter, deren Namen mit D, E oder F beginnen!
5.
Finden Sie alle Produkte, die zwischen 50 und 14 Euro kosten!
6.
Gesucht sind die Mitarbeiter, welche in Gera oder Leipzig wohnen!
7.
Gesucht sind alle Produkte, mit Stückzahlen von 1 oder 5.
8.
Welche Ableitungen enden mit „tion“?
9.
Welche Meier, Meyer arbeiten im Betrieb!
10.
Welche Mitarbeiter arbeiten in keiner Ableitung?
11.
Welche Produkte sind nicht mehr vorhanden?
12.
Welche Produkte kosten zwischen 0,00 und 5,01 Euro?
579863365
Informatik * Dresden * Meißen
3[3]
Herunterladen