Datenbanken
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>SQL</language>
<code id="4b3e42b4c905c" hidden>
CREATE TABLE Matrikel(ID INTEGER, Bezeichnung VARCHAR(50);
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');
</code>
==Verwendung von SQL==
===Datenbank anlegen===
Zuerst legen wir eine sehr einfache Datenbank an. Sie besteht aus nur einer Tabelle <tt>Student</tt>. 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 existiert.
'''DROP TABLE''' ''Tabellenname'' '''IF EXISTS;'''
<eval id="4b3e44514e418">
DROP TABLE Student IF EXISTS;
CREATE TABLE Student (ID INTEGER, Nachname varchar(50), Vorname varchar(50), PLZ varchar(6), Ort varchar(50), Strasse varchar(50), MNr INTEGER);
</eval>
===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',0);
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>
==ERD==
[[Bild:Erd.jpg]]
hier sehen Sie das Beispiel, welches Sie in dieser Übung bearbeiten sollen, als ERD.
==Projektion==
Schreiben Sie eine SQL-Abfrage, die sämtliche Studenten aus der Tabelle '''Student''' anzeigt. Erweitern Sie danach die Abfrage so, dass nur noch Nachname, Vorname und Wohnort angezeigt werden.
<eval id="4aba316215355">;Ihre Abfrage</eval>
==Überlegung ID==
Diskutieren Sie potenzielle Gründe für die Entscheidung, dass IDs von gelöschten Datensätzen nicht neu vergeben werden.
==Selektion==
Schreiben Sie eine SQL-Abfrage, die alle Studenten aus der Stadt Görlitz anzeigt.
<eval id="4aba316215f14">;Ihre Abfrage</eval>
==Daten einfügen==
Schreiben Sie eine Abfrage, sodass ein sinnvoller Datensatz in die Datenbank Student eingefügt wird.
<eval id="4aba316216adb">;Ihre Abfrage</eval>
==JOIN==
Überlegen Sie sich nun eine Abfrage, welche die beiden Tabellen Studiengang und Student miteinander verknüpft. Dabei sollen alle Studenten mit der Matrikel-ID 2 augegeben werden.
<eval id="4aba31621767f">;Ihre Abfrage</eval>
==Erweiterung der Datenbank==
Erstellen Sie nun eine Tabelle '''Fahrzeug''', welche eine ID, eine Nummernschild und eine Bezeichnung und einen Fremdschlüssel zu der Studenten-ID besitzt. Fügen Sie danach einige Datensätze ein und sehen Sie sich die Resultate an.
<eval id="4aba316218244">;Ihre Abfrage</eval>