Skip to content

Commit 897cff8

Browse files
committed
Cleanup Scripts | Add 06.11.2025.sql
1 parent 9238fc0 commit 897cff8

File tree

4 files changed

+107
-34
lines changed

4 files changed

+107
-34
lines changed

Vorlesung/Übungen/06_11_2025.sql

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
-- Relationale Division
2+
3+
USE 25_26;
4+
5+
DROP TABLE IF EXISTS Kunde;
6+
DROP TABLE IF EXISTS Produkt;
7+
8+
CREATE TABLE Kunde (
9+
Kunde VARCHAR(50),
10+
Produkt VARCHAR(50)
11+
);
12+
13+
INSERT INTO Kunde (Kunde, Produkt) VALUES
14+
('Alice', 'Laptop'),
15+
('Alice', 'Smartphone'),
16+
('Bob', 'Laptop'),
17+
('Bob', 'Tablet'),
18+
('Carol', 'Laptop'),
19+
('Carol', 'Smartphone'),
20+
('Carol', 'Tablet');
21+
22+
CREATE TABLE Produkt (
23+
Produkt VARCHAR(50)
24+
);
25+
26+
INSERT INTO Produkt (Produkt) VALUES
27+
('Laptop'),
28+
('Smartphone');
29+
30+
SELECT DISTINCT K1.Kunde as Kunde_1
31+
FROM Kunde AS K1
32+
WHERE NOT EXISTS (
33+
SELECT Produkt.Produkt
34+
FROM Produkt
35+
WHERE NOT EXISTS (
36+
SELECT 1
37+
FROM Kunde AS K2
38+
WHERE K2.Kunde = K1.Kunde
39+
AND K2.Produkt = Produkt.Produkt
40+
)
41+
);
42+
43+
WITH
44+
-- π_Kunde(B)
45+
kunden AS (
46+
SELECT DISTINCT Kunde FROM Kunde
47+
),
48+
49+
-- (π_Kunde(B) × P) -- kartesisches Produkt
50+
soll AS (
51+
SELECT k.Kunde, p.Produkt
52+
FROM kunden k
53+
CROSS JOIN Produkt p
54+
),
55+
56+
-- (π_Kunde(B) × P) − B
57+
fehlend AS (
58+
SELECT Kunde, Produkt FROM soll
59+
EXCEPT
60+
SELECT Kunde, Produkt FROM Kunde
61+
),
62+
63+
-- π_Kunde( fehlend ) -- Kunden, denen etwas fehlt
64+
fehlerkunden AS (
65+
SELECT DISTINCT Kunde FROM fehlend
66+
),
67+
68+
-- π_Kunde(B) − π_Kunde( fehlend )
69+
ergebnis AS (
70+
SELECT Kunde FROM kunden
71+
EXCEPT
72+
SELECT Kunde FROM fehlerkunden
73+
)
74+
SELECT * FROM ergebnis
75+
ORDER BY Kunde;
76+
77+

Vorlesung/Übungen/23_10_2025.sql

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
1+
-- Verschiedene Übungen zu den Vorlesungen
2+
13
USE 25_26;
24

35
DROP TABLE IF EXISTS Hoeren;
4-
5-
66
DROP TABLE IF EXISTS Vorlesung;
77
DROP TABLE IF EXISTS Assistent;
88
DROP TABLE IF EXISTS Professor;
99
DROP TABLE IF EXISTS Doktorand;
1010
DROP TABLE IF EXISTS Angestellter;
1111
DROP TABLE IF EXISTS Fahrzeughalter;
1212
DROP TABLE IF EXISTS Student;
13-
1413
DROP TABLE IF EXISTS Auto;
15-
drop table IF EXISTS senior;
14+
drop table IF EXISTS Senior;
1615
DROP TABLE IF EXISTS Hochschule;
1716

1817
CREATE TABLE Hochschule
@@ -64,8 +63,6 @@ VALUES (3,'Meier', 4, 22);
6463
INSERT INTO Student (MatNr, Name, Semester, HS)
6564
VALUES (4,'Meier', 4, 33);
6665

67-
68-
6966
SELECT * FROM Student;
7067
SELECT * FROM Hochschule;
7168
SELECT * FROM Vorlesung;

Vorlesung/Übungen/Datenbanken4Übungen_2.sql

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,21 @@
11
-- -----------------------------------------------
2-
-- - Szenario 2: c-c:
32
-- - 1. Männer sind mit Frauen verheiratet oder nicht.
43
-- - 2. Männer und Frauen können nur einmal gleichzeitig verheiratet sein
54
-- -----------------------------------------------
65

76
USE 25_26;
87

98
DROP TABLE IF EXISTS Ehepaar;
10-
DROP TABLE IF EXISTS Männer;
11-
DROP TABLE IF EXISTS Frauen;;
12-
9+
DROP TABLE IF EXISTS Mann;
10+
DROP TABLE IF EXISTS Frau;;
1311

1412
-- -----------------------------------------------
15-
CREATE TABLE Männer
13+
CREATE TABLE Mann
1614
(MaNr INTEGER NOT NULL PRIMARY KEY,
1715
Name VARCHAR(50) NOT NULL,
1816
Vorname VARCHAR(50) NOT NULL);
1917
-- ------------------------
20-
CREATE TABLE Frauen
18+
CREATE TABLE Frau
2119
(FrNr INTEGER NOT NULL PRIMARY KEY,
2220
Name VARCHAR(50) NOT NULL,
2321
Vorname VARCHAR(50) NOT NULL);
@@ -29,36 +27,36 @@ Vorname VARCHAR(50) NOT NULL);
2927
-- FOREIGN KEY Ehepaar_Frauen_FK (FrNr) REFERENCES Frauen (FrNr),
3028
-- PRIMARY KEY (MaNr, FrNr));
3129
-- ------------------------
32-
INSERT INTO Männer (MaNr, Name, Vorname)
30+
INSERT INTO Mann (MaNr, Name, Vorname)
3331
VALUES (1,'Jan', 'Müller');
34-
INSERT INTO Männer (MaNr, Name, Vorname)
32+
INSERT INTO Mann (MaNr, Name, Vorname)
3533
VALUES (2,'Peter', 'Meier');
36-
INSERT INTO Männer (MaNr, Name, Vorname)
34+
INSERT INTO Mann (MaNr, Name, Vorname)
3735
VALUES (3,'Jürgen', 'Sturm');
38-
INSERT INTO Männer (MaNr, Name, Vorname)
36+
INSERT INTO Mann (MaNr, Name, Vorname)
3937
VALUES (4,'Jens', 'Stark');
40-
INSERT INTO Männer (MaNr, Name, Vorname)
38+
INSERT INTO Mann (MaNr, Name, Vorname)
4139
VALUES (5,'Kurt', 'Schmitt');
42-
INSERT INTO Männer (MaNr, Name, Vorname)
40+
INSERT INTO Mann (MaNr, Name, Vorname)
4341
VALUES (6,'Oswald', 'Peterson');
44-
INSERT INTO Männer (MaNr, Name, Vorname)
42+
INSERT INTO Mann (MaNr, Name, Vorname)
4543
VALUES (7,'Thomas', 'Schneider');
46-
INSERT INTO Männer (MaNr, Name, Vorname)
44+
INSERT INTO Mann (MaNr, Name, Vorname)
4745
VALUES (8,'Axel', 'Mertens');
48-
INSERT INTO Männer (MaNr, Name, Vorname)
46+
INSERT INTO Mann (MaNr, Name, Vorname)
4947
VALUES (9,'Michael', 'Hoffmeister');
50-
INSERT INTO Männer (MaNr, Name, Vorname)
48+
INSERT INTO Mann (MaNr, Name, Vorname)
5149
VALUES (10,'Jonas', 'Meerbad');
5250
-- ------------------------
53-
INSERT INTO Frauen (FrNr, Name, Vorname)
51+
INSERT INTO Frau (FrNr, Name, Vorname)
5452
VALUES (11,'Julia', 'Bürkle');
55-
INSERT INTO Frauen (FrNr, Name, Vorname)
53+
INSERT INTO Frau (FrNr, Name, Vorname)
5654
VALUES (22,'Iris', 'Mittermeier');
57-
INSERT INTO Frauen (FrNr, Name, Vorname)
55+
INSERT INTO Frau (FrNr, Name, Vorname)
5856
VALUES (33,'Petra', 'Schnelle');
59-
INSERT INTO Frauen (FrNr, Name, Vorname)
57+
INSERT INTO Frau (FrNr, Name, Vorname)
6058
VALUES (44,'Ruth', 'Stöhr');
61-
INSERT INTO Frauen (FrNr, Name, Vorname)
59+
INSERT INTO Frau (FrNr, Name, Vorname)
6260
VALUES (55,'Michaela', 'Herb');
6361
-- ------------------------
6462
-- INSERT INTO Ehepaar (MaNr, FrNr) VALUES (1, 1); -- was bedeutet das?
@@ -72,8 +70,8 @@ VALUES (55,'Michaela', 'Herb');
7270
CREATE TABLE Ehepaar
7371
(MaNr INTEGER NOT NULL,
7472
FrNr INTEGER NOT NULL,
75-
FOREIGN KEY Ehepaar_Männer_FK (MaNr) REFERENCES Männer (MaNr),
76-
FOREIGN KEY Ehepaar_Frauen_FK (FrNr) REFERENCES Frauen (FrNr),
73+
FOREIGN KEY Ehepaar_Männer_FK (MaNr) REFERENCES Mann (MaNr),
74+
FOREIGN KEY Ehepaar_Frauen_FK (FrNr) REFERENCES Frau (FrNr),
7775
PRIMARY KEY (MaNr, FrNr));
7876
-- --------------------------
7977
-- CREATE TABLE Ehepaar

Vorlesung/Übungen/Datenbanken5Übungen.sql

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
USE 25_26;
21
-- -----------------------------------------------
32
-- Szenario: Relationale Algebra
43
-- -----------------------------------------------
54

6-
-- -----------------------------------------------
5+
USE 25_26;
6+
77
-- 1. Selection:
88
SELECT Semester, Name FROM Student WHERE Semester = 1;
99

@@ -51,7 +51,7 @@ where v.Titel = 'Maßtheorie';
5151
SELECT * FROM Professor p LEFT OUTER JOIN Vorlesung v ON p.PersNr = v.gelesenVon;
5252

5353
-- RIGHT OUTER JOIN:
54-
SELECT * FROM Professoren p RIGHT OUTER JOIN Vorlesung v ON p.PersNr = v.gelesenVon;
54+
-- SELECT * FROM Professoren p RIGHT OUTER JOIN Vorlesung v ON p.PersNr = v.gelesenVon;
5555

5656
-- FULL OUTER JOIN (in MySQL mit 2 Joins)
5757
SELECT * FROM Professor p LEFT OUTER JOIN Vorlesung v ON p.PersNr = v.gelesenVon
@@ -78,13 +78,14 @@ insert into Senior (MatNr, Name, Semester, HSNr)
7878
values (103,'Paul', 1, 11);
7979

8080
-- Natural Join
81-
SELECT * FROM Hochschulen NATURAL JOIN Senior;
81+
SELECT * FROM Hochschule NATURAL JOIN Senior;
8282

8383
-- INTERSECTION (Schnittmenge)
84-
SELECT Name FROM Männer INTERSECT SELECT Name FROM Professoren;
84+
SELECT Name FROM Mann INTERSECT SELECT Name FROM Professoren;
8585

8686
-- Gruppierung und Aggregatfunktion
8787
SELECT Semester as Semester, COUNT(*) as Anzahl FROM Student group by Semester;
88+
SELECT Semester as Semester, COUNT(*) as Anzahl FROM Student group by Semester;
8889

8990
-- Sortierung
9091
SELECT * FROM Student order by Name;

0 commit comments

Comments
 (0)