PMG2224 4/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="65a650621748f">

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="65a65062174e2">
</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="622081dfdadb4">
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="622081dfde269">
SELECT * FROM Pruefer;
SELECT * FROM Pruefung;
--SELECT schueler.name, schueler.vorname, pruefer.name, pruefer.fach
</run>