PMG2426 1/DB Beispiel 1
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>SQL</language>
== Schüler/Prüfungsnoten ==
Umsetzung der Idee aus LearningView Nr. 1
Gegeben ist folgende, stark vereinfachte Datenbank mit den Tabellen ''Schueler'' und ''Noten'', die neben den Adressen die Prüfungsnoten der Schüler in einigen Fächern speichert.<br>
<popup label="Datenbank">
<code id="6924155bc9c8a">
DROP TABLE IF EXISTS schueler;
CREATE TABLE schueler (
Name varchar(20),
Vorname varchar(20) ,
Wohnort varchar(15) ,
PLZ varchar(5) ,
Telefon varchar(11) ,
Straße varchar(25) ,
Schuelernr varchar(7) ,
PRIMARY KEY (Schuelernr)
);
INSERT INTO schueler VALUES ('Scheurich', 'Erich', 'Bautzen', '02625', '40256', 'Mättigstr. 12', '1234567');
INSERT INTO schueler VALUES ('Schlenkrich', 'Ricarda', 'Teichritz', '02689', '23456', 'Dorfstr. 2', '1234568');
INSERT INTO schueler VALUES ('Angst', 'Beatrice', 'Wurschen', '02645', '67255', 'Nr. 12a', '1234569');
INSERT INTO schueler VALUES ('Waurick', 'Andre', 'Bautzen', '02625', '30445', 'Brecht-Str. 34', '1234572');
INSERT INTO schueler VALUES ('Scheurich', 'Erick', 'Bautzen', '02625', '40256', 'Mättigstr. 12', '1234573');
DROP TABLE IF EXISTS Noten;
CREATE TABLE Noten (
Schuelernr varchar(7),
Mathe integer default '0',
Deutsch integer,
Bio integer
);
INSERT INTO Noten VALUES ('1234567', 2, 3, 1);
INSERT INTO Noten VALUES ('1234568', 2, 2, 2);
INSERT INTO Noten VALUES ('1234569', 3, 4, 2);
INSERT INTO Noten VALUES ('1234572', 4, 3, 3);
INSERT INTO Noten VALUES ('1234573', 1, 1, 1);
</code>
</popup>
'''1. Erstellen Sie folgende Abfragen:'''
* Gesucht sind alle Namen, Vornamen und Adressen derjenigen Schüler, deren Noten in allen Fächern besser als 3 sind.
* Gesucht sind alle Schüler aus Bautzen.
<run id="6924155bc9d3d">
</run>
Umsetzung der Ergänzung aus LearningView Nr 2
'''2. Ergänzen Sie die Datenbank um eine Tabelle Pruefer.'''<br>
mit den Attributen
* Pruefernr varchar(7)
* Name varchar(20)
* Fach varchar(4))
<popup label="Datenbank_Erweiterung">
<code id="6924155bc9ceb">
DROP TABLE IF EXISTS Pruefer;
CREATE TABLE Pruefer(
Pruefernr varchar(7),
Name varchar(20),
Fach varchar(4),
PRIMARY KEY (Pruefernr)
);
INSERT INTO Pruefer VALUES ('0000001', 'Grebeduenkel', 'INF');
INSERT INTO Pruefer VALUES ('0000002', 'Habel', 'GRW');
INSERT INTO Pruefer VALUES ('0000003', 'Pfalz', 'MAT');
DROP TABLE IF EXISTS Pruefung;
CREATE TABLE Pruefung(
Pruefungsnr varchar(5),
Pruefernr varchar(7),
Schuelernr varchar(7),
PRIMARY KEY (Pruefungsnr)
);
INSERT INTO Pruefung VALUES ('1', '0000001', '1234567');
INSERT INTO Pruefung VALUES ('2', '0000002', '1234567');
INSERT INTO Pruefung VALUES ('3', '0000002', '1234572');
</code>
</popup>
<br>
* Gesucht ist die Daten der Prüfung (Name, Fach, Prüfer) mit der Nummer "1".
* Gesucht ist die Daten der Prüfung (Name, Fach, Prüfer) des Schülers mit der "1234572".
<run id="6924155bc9d8d">
SELECT * FROM Pruefer;
SELECT * FROM Pruefung;
--SELECT schueler.name, schueler.vorname, pruefer.name, pruefer.fach
</run>