Eine einfache Abfrage zur Tabelle Artikel aus der Datenbank Firma

Werbung
SQL
Der select-Befehl
1 Einführung in SQL
In der standardisierten Datenbank-Abfragesprache SQL werden drei Bereiche unterschieden:
1.
DDL: Data Definition Language
Einrichten von Datenbanken, Tabellen, Indizes, Views usw.
2.
DML: Data Manipulation Language
Manipulation von Daten, Einfügen., Ändern, Auswählen (Select)
3.
DCL: Data Control Language
Steuerung der Vergabe von Zugriffsrechten
Der Teil von SQL, mit dem wir uns zunächst befassen, dient der Syntax des select-Befehls.
Damit werden Abfragen erstellt, die Sie in Access über die grafische Oberfläche kennengelernt haben. Alle Befehle, deren Syntax hier zunächst besprochen wird, sind der zweiten
Gruppe der Befehle von SQL (DML) zuzuordnen.
1.1 Einführung in SQL über Access-Abfragen
Eine einfache Abfrage zur Tabelle Artikel aus der Datenbank Firma, die die Felder Artikelnummer und Bezeichnung auswählt, führt zu folgendem Ergebnis:
Im Entwurfsbildschirm der Abfrage oder auch in der Datenblattansicht können Sie mit dem ersten Symbol links auch zur SQLAnsicht umschalten:
In der SQL-Ansicht sind die Befehle sichtbar,
die der oben gezeigten Abfrage entsprechen:
die Angabe der Tabelle kann an folgenden Stellen weggelassen werden:
Auf diese Art – im Vergleich der grafisch orientierten Entwurfsansicht mit den SQL-Befehlen –
lassen sich die Grundlagen von SQL relativ leicht erlernen.
Mit dem Select-Befehl werden Daten aus Tabellen ausgewählt. Dies kann mit Bedingungen
und Sortierungen verbunden werden. Zunächst befassen wir uns mit der vereinfachten Syntax des Select-Befehls, bezogen auf nur eine Tabelle.
1
SQL
Der select-Befehl
Die sechs Komponenten einer SQL-Abfrage1
SELECT [ALL | DISTINCT] Spaltenausdruck Zeige mir die Werte aus folgenden Spalten …
[, ...]
(Ausgabedaten)
FROM Tabellenbezeichner [, ...]
… aus folgenden Tabelle(n)
[ WHERE Bedingung ]
… schränke die Auswahl wie folgt ein …
[ GROUP BY Spalte [, ... ] ]
Gruppenbildung
Verdichte die Ausgabe von allen Zeilen mit
gleichem Attributwert zu einer einzigen Ausgabezeile
[ HAVING Having-Bedingung
Zusätzliche Auswahlbedingung auf Gruppenebene
[ ORDER BY [ [ASC | DESC ] Spalte [, ...] ] sortiere Ausgabe anhand folgender Spalten
…
(Default ist ASC)
Wir wählen zunächst nur den ersten Teil des select-Statements:
SELECT {* | <Spaltenliste>}
FROM <Tabellenname>
[WHERE <Ausdruck>]
Wähle aus die Spaltenliste (oder *=alle)
aus der Tabelle
wo folgendes gilt
An den folgenden Beispielen soll dies gezeigt
werden. Um sie auszuprobieren, öffnen Sie
bitte die Datenbank Firma, Tabelle Artikel, und
erzeugen eine leere Abfrage im Entwurfsbildschirm.
Wenn Sie dann zur SQL-Ansicht umschalten,
sehen Sie den Select-Befehl
SELECT FROM ARTIKEL;
1
diese Übersicht über die sechs Komponenten einer Abfrage ist aus:
http://www.oszhdl.be.schule.de/gymnasium/faecher/informatik/datenbanken.htm
2
SQL
Der select-Befehl
Aufgabe: Dort können Sie jetzt die folgenden Beispiele testen. Schalten Sie dabei jeweils
zur SQL-Ansicht und testen Sie mit dem roten Ausrufezeichen
(die Befehle müssen nicht mit Grossbuchstaben eingegeben werden)
SELECT *
FROM ARTIKEL
alle Datensätze der Tabelle Artikel
SELECT BEZEICHNUNG
FROM ARTIKEL
das Feld Bezeichnung aller Datensätze
der Tabelle Artikel
SELECT ARTIKELNUMMER, BEZEICHNUNG
FROM ARTIKEL
die beiden Felder Artikelnummer und Bezeichnung aus der Tabelle Artikel
SELECT *
FROM ARTIKEL
WHERE EINKAUFSPREIS <10
alle Datensätze, bei denen der Einkaufspreis
unter 10 € ist
SELECT BEZEICHNUNG, MENGE, MINDESTBESTAND
FROM ARTIKEL
WHERE EINKAUFSPREIS <10
wie oben, aber nur die Felder Bezeichnung,
Menge und Mindestbestand
SELECT BEZEICHNUNG
FROM ARTIKEL
WHERE LIEFERANTENNUMMER=[BITTE LIEFNR EINGEBEN]
wie Parameter-Abfrage:
das Feld Bezeichnung der Tabelle Artikel
nach der Lieferantennummer wird gefragt
SELECT *
FROM ARTIKEL
WHERE EINKAUFSPREIS <10
AND MINDESTBESTAND >50
alle Datensätze, bei denen der Einkaufspreis
unter 10 € ist und der Mindestbestand über
50
SELECT BEZEICHNUNG, VERKAUFSPREIS
FROM ARTIKEL
WHERE ARTIKELNUMMER >200
OR VERKAUFSPREIS >20
die Felder Bezeichnung und Verkaufspreis,
bei denen entweder die Artikelnummer über
200 ist oder der Verkaufspreis über 20 €
SELECT *
FROM ARTIKEL
ORDER BY BEZEICHNUNG
alle Datensätze der Tabelle Artikel, sortiert
nach Bezeichnung
SELECT BEZEICHNUNG
FROM ARTIKEL
ORDER BY ARTIKELNUMMER ASC
das Feld Bezeichnung der Tabelle Artikel,
sortiert nach Artikelnummer
(ASC=ascending=aufsteigend; ohne diese
Angabe wird immer aufsteigend sortiert
SELECT *
FROM ARTIKEL
ORDER BY BEZEICHNUNG DESC
wie oben, aber absteigend
3
SQL
Der select-Befehl
SELECT *
FROM ARTIKEL
ORDER BY LIEFERANTENNUMMER, ARTIKELNUMMER
alle Datensätze der Tabelle Artikel, primär
sortiert nach Lieferantennummer, sekundär
nach Artikelnummer
zuerst alle Datensätze der ersten Lieferantennummer, diese nach Art-Nr sortiert, dann
die nächste Lieferantennummer, nach ArtNummern sortiert, usw.
(macht nur Sinn, wenn das erste Sortierfeld
mehrfach vorkommt)
SELECT ARTIKELNUMMER, BEZEICHNUNG,
MENGE
FROM ARTIKEL
ORDER BY 3
die Felder Artikelnummer, Bezeichnung und
Menge, sortiert nach dem an 3. Stelle genannten Feld (Menge)
SELECT BEZEICHNUNG
FROM ARTIKEL
WHERE BEZEICHNUNG LIKE "D*"
die Felder Bezeichnung der Tabelle Artikel,
aber nur die, bei denen die Bezeichnung mit
einem D anfängt
Aufgabe: Öffnen Sie jetzt die Datenbank Biblio. Erstellen Sie eine neue Abfrage in der
Entwurfsansicht. Wählen Sie nur die Tabelle Bücher. Wie lauten die SQLBefehle für folgende Abfragen:
Notieren Sie die SQL-Befehle!
a) die Titel aller Bücher
b) die Titel der Bücher von Christie
c) Titel und Autor der Bücher, die ausgeliehen sind
(logisches Feld: 0 oder –1! )
d) den Vornamen vom Autor namens Chandler
e) wer schrieb das Buch: Volkswirtschaftslehre ?
f)
alle Titel ab der Katalognummer 400
g) die Autoren (Vorname und Name) deren Buch entweder mit einer Katalognummer ab
700 beginnt oder deren Bücher nicht ausgeliehen sind
h) die Nachnamen der Autoren, deren Vorname mit dem Buchstaben J beginnt
4
Herunterladen