GoetheGym2021
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>SQL</language>
Testseite JG 12 Goethe Gymnsium Bischofswerda
Tabelle anlegen:
<code id="6006a25568dce">
DROP TABLE IF EXISTS schueler;
CREATE TABLE schueler (
SNr varchar(255),
Name varchar(255),
SchulNr varchar(255)
);
INSERT INTO schueler VALUES ('1', 'Jackson', '2');
INSERT INTO schueler VALUES ('2', 'Nebel', '1');
INSERT INTO schueler VALUES ('3', 'Grund', '3');
</code>
Tabelle anzeigen lassen:
<run id="60069c896cdbb">
SELECT *
FROM schueler;
</run>
Nun benötigen wir eine zweite Tabelle namens 'schulen':
<code id="6006a1da50aa3">
DROP TABLE IF EXISTS schulen;
CREATE TABLE schulen (
SchulNr varchar(255),
Name varchar(255)
);
INSERT INTO schulen VALUES ('1', 'GoetheGym');
INSERT INTO schulen VALUES ('2', 'KirchStr');
INSERT INTO schulen VALUES ('3', 'GrundSüd');</code>
Lass dir die Tabelle anzeigen:
<run id="60069fb449536">
</run>
Nun soll das Kreuzprodukt der beiden Tabellen gebildet werden
<run id="6006a2a32735c">
SELECT *
FROM schulen CROSS JOIN schueler;
</run>
Das Ergebnis sagt nicht viel über unsere Schüler aus. Eigentlich ist jeder Schüler ja nur einer Schule zugeordnet. Wir benötigen also einen Verbund/Join, der auf gemeinsame Attribute abziehlt und auf Basis dieser eine neue Tabelle erstellt.
<run id="6006a3dd20ed7">
SELECT *
FROM schulen INNER JOIN schueler
ON schulen.SchulNr = schueler.SchulNr</run>