Datenbanken
Inhaltsverzeichnis |
Datenbanksprache SQL
Datenbank anlegen
Zuerst legen wir eine sehr einfache Datenbank an. Sie besteht aus nur einer Tabelle Student. Die allgemeine Form zur Erstellung einer Tabelle lautet:
CREATE TABLE Tabellenname (Attributname Datentyp,...);
Beispiel: CREATE TABLE KUNDE (ID INTERGER, Nachname VARCHAR(50), Ort varchar(50));
Außerdem sollte man bedenken, dass die anzulegende Tabelle (oder eine gleichnamige andere) bereits existieren könnte. In diesem Fall soll die alte DB gelöscht werden.
DROP TABLE Tabellenname IF EXISTS;
<eval id="4b3e44514e418"> DROP TABLE Student IF EXISTS; CREATE TABLE Student </eval>
(ID INTEGER, Nachname varchar(50), Vorname varchar(50), PLZ varchar(6), Ort varchar(50), Strasse varchar(50));
Datensätze einfügen
Der nächste Schritt besteht darin, Datensätze in die Datenbank einzufügen:
INSERT INTO Tabellenname (Spaltenliste) VALUES (Werte);
Beispiel: INSERT INTO KUNDE (ID, Nachname, Ort)) VALUES (10,'Meyer','Görlitz');
<eval id="4b3e44514ebe7"> INSERT INTO Student VALUES (0,'Müller','Franz','02826','Görlitz','Blumenstraße 5'); INSERT INTO Student VALUES (1,'Schmidt','Susi','02827','Görlitz','Bäckergaße 3'); INSERT INTO Student VALUES (2,'Adler','Anton','02763','Zittau','Berliner Straße 50'); INSERT INTO Student VALUES (3,'Bär','Bertha','02829','Markersdorf','Bahnhofstraße 3'); INSERT INTO Student VALUES (4,'Meyer','Ben','30001','Hannover','Sonnenblumenweg 4'); INSERT INTO Student VALUES (5,'Schulze','Sebastian','09001','Chemnitz','Kirchstrasse 43'); INSERT INTO Student VALUES (6,'Richter','Rudolf','02763','Zittau','Deckelweg 6'); INSERT INTO Student VALUES (7,'Wasser','Wilhelm','01067','Dresden','Bahnhofstraße 76'); </eval>
Datensätze abfragen
Um einzelne Datensätze gezielt zu selektieren, gibt es
SELECT * | Spaltenliste FROM Tabellenliste WHERE Ausdruck
Beispiele: SELECT * FROM Kunde WHERE Ort = 'Musterstadt'; SELECT Nachname, Vorname FROM Kunde,Student WHERE Ort = 'Musterstadt' AND Nachname='Schmidt';
<eval id="4b3e44514f3be"> SELECT * FROM Student; </eval>
Wir erweitern nun die Datenbank um eine weitere Tabelle, so dass die im Folgenden angegebene Struktur entsteht.

Als erstes legen wir die neue Tabelle Matrikel an. Falls eine Tabelle dieses Namens bereits existiert, wird sie gelöscht. <eval id="4b3f52bae154f"> DROP TABLE Matrikel IF EXISTS; CREATE TABLE Matrikel(ID INTEGER, Bezeichnung VARCHAR(50), PRIMARY KEY(ID)); INSERT INTO Matrikel VALUES (0,'Heilpädagogik'); INSERT INTO Matrikel VALUES (1,'Kommunikationspsychologie'); INSERT INTO Matrikel VALUES (2,'Informatik'); INSERT INTO Matrikel VALUES (3,'Kultur und Management'); INSERT INTO Matrikel VALUES (4,'Soziale Arbeit'); SELECT * FROM Matrikel; </eval>
In Tabelle Student muss eine Spalte MNr für die Matrikel-Nummer ergänzt werden. Dabei handelt es sich um einen Fremdschlüssel, d.h. eine Art "Zeiger" auf den Primärschlüssel der Tabelle Matrikel.
<eval id="4b3f58d292cbb"> ALTER TABLE Student ADD COLUMN MNr, PRIMARY KEY (ID), FOREIGN KEY (MNr) REFERENCE Matrikel(ID); </eval>
Nun werden folgende Datensätze eingepflegt.
<eval id="4b3e44514ebe7"> INSERT INTO Student VALUES (0,'Müller','Franz','02826','Görlitz','Blumenstraße 5',2); INSERT INTO Student VALUES (1,'Schmidt','Susi','02827','Görlitz','Bäckergaße 3',4); INSERT INTO Student VALUES (2,'Adler','Anton','02763','Zittau','Berliner Straße 50',3); INSERT INTO Student VALUES (3,'Bär','Bertha','02829','Markersdorf','Bahnhofstraße 3',2); INSERT INTO Student VALUES (4,'Meyer','Ben','30001','Hannover','Sonnenblumenweg 4',0); INSERT INTO Student VALUES (5,'Schulze','Sebastian','09001','Chemnitz','Kirchstrasse 43',1); INSERT INTO Student VALUES (6,'Richter','Rudolf','02763','Zittau','Deckelweg 6',2); INSERT INTO Student VALUES (7,'Wasser','Wilhelm','01067','Dresden','Bahnhofstraße 76',3); SELECT * FROM Student; </eval>
Übungen
- Formulieren Sie eine SQL-Abfrage, die alle Studenten aus der Stadt Görlitz anzeigt.
<eval id="4aba316215f14">Geben Sie hier Ihre Abfrage ein.</eval>
- Überlegen Sie sich nun eine Abfrage, welche die beiden Tabellen Matrikel und Student miteinander verknüpft: Fragen Sie nach den Namen aller Informatik-Studis.
<eval id="4b3f52bae2105">Geben Sie hier Ihre Abfrage ein.</eval>
- Erstellen Sie nun eine Tabelle Fahrzeug, welche eine ID, eine Nummernschild und eine Bezeichnung sowie einen Fremdschlüssel zu der Studenten-ID besitzt. Fügen Sie danach einige Datensätze ein und sehen Sie sich die Resultate selbst gestellter Anfragen an.
<eval id="4aba316218244">...</eval>