diff --git a/CreateDB.sql b/CreateDB.sql new file mode 100644 index 0000000..1db12fa --- /dev/null +++ b/CreateDB.sql @@ -0,0 +1,103 @@ + +CREATE TABLE `fach` ( + `id` int(11) NOT NULL, + `name` varchar(50) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +INSERT INTO `fach` (`id`, `name`) VALUES +(1, 'Mathe'), +(2, 'Informatik'); + + +CREATE TABLE `klasse` ( + `id` int(11) NOT NULL, + `name` varchar(50) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +INSERT INTO `klasse` (`id`, `name`) VALUES +(1, 'FI195'), +(2, 'SO195'); + + +CREATE TABLE `lehrer` ( + `id` int(11) NOT NULL, + `name` varchar(50) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +INSERT INTO `lehrer` (`id`, `name`) VALUES +(1, 'Herbert'), +(2, 'Uschi'); + + +CREATE TABLE `schueler` ( + `id` int(11) NOT NULL, + `name` varchar(50) NOT NULL, + `klasse_id` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +INSERT INTO `schueler` (`id`, `name`, `klasse_id`) VALUES +(1, 'Lucas', 1), +(2, 'Bastian', 1), +(3, 'Antonia', 2), +(4, 'Klaus-Günther', 2); + + +CREATE TABLE `unterricht` ( + `fach_id` int(11) NOT NULL, + `lehrer_id` int(11) NOT NULL, + `klassen_id` int(11) NOT NULL, + `Zeitpunkt` datetime NOT NULL, + `id` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +INSERT INTO `unterricht` (`fach_id`, `lehrer_id`, `klassen_id`, `Zeitpunkt`, `id`) VALUES +(1, 2, 1, '2022-03-22 08:00:00', 1), +(1, 1, 2, '2022-03-22 08:00:00', 2), +(2, 1, 1, '2022-03-22 09:30:00', 3), +(2, 2, 2, '2022-03-22 09:30:00', 4); + +ALTER TABLE `fach` + ADD PRIMARY KEY (`id`); + +ALTER TABLE `klasse` + ADD PRIMARY KEY (`id`); + +ALTER TABLE `lehrer` + ADD PRIMARY KEY (`id`); + +ALTER TABLE `schueler` + ADD PRIMARY KEY (`id`), + ADD KEY `klasse_id` (`klasse_id`); + +ALTER TABLE `unterricht` + ADD PRIMARY KEY (`id`), + ADD KEY `lehrer_id` (`lehrer_id`), + ADD KEY `fach_id` (`fach_id`), + ADD KEY `klassen_id` (`klassen_id`); + +ALTER TABLE `fach` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3; + +ALTER TABLE `klasse` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3; + + +ALTER TABLE `lehrer` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3; + +ALTER TABLE `schueler` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; + +ALTER TABLE `unterricht` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; + +ALTER TABLE `schueler` + ADD CONSTRAINT `schueler_ibfk_1` FOREIGN KEY (`klasse_id`) REFERENCES `klasse` (`id`); + +ALTER TABLE `unterricht` + ADD CONSTRAINT `unterricht_ibfk_1` FOREIGN KEY (`lehrer_id`) REFERENCES `lehrer` (`id`), + ADD CONSTRAINT `unterricht_ibfk_2` FOREIGN KEY (`fach_id`) REFERENCES `fach` (`id`), + ADD CONSTRAINT `unterricht_ibfk_3` FOREIGN KEY (`klassen_id`) REFERENCES `klasse` (`id`); +COMMIT; diff --git a/Querys/HowManyStudentAreInWhichClass.sql b/Querys/HowManyStudentAreInWhichClass.sql new file mode 100644 index 0000000..99ed505 --- /dev/null +++ b/Querys/HowManyStudentAreInWhichClass.sql @@ -0,0 +1 @@ +SELECT klasse.name , COUNT(*) as Schueleranzahl from klasse left join schueler on schueler.klasse_id = klasse.id GROUP by schueler.klasse_id ; \ No newline at end of file diff --git a/Querys/SimpleTimetable.sql b/Querys/SimpleTimetable.sql new file mode 100644 index 0000000..1f604bd --- /dev/null +++ b/Querys/SimpleTimetable.sql @@ -0,0 +1 @@ +SELECT unterricht.Zeitpunkt as Zeitpunkt, klasse.name as klasse, fach.name as fach, lehrer.name as lehrer FROM unterricht left join klasse on klasse.id = unterricht.klassen_id left JOIN lehrer ON lehrer.id = unterricht.lehrer_id LEFT join fach on fach.id = unterricht.fach_id ORDER by unterricht.Zeitpunkt \ No newline at end of file diff --git a/README.md b/README.md index eededdf..91d18d2 100644 --- a/README.md +++ b/README.md @@ -1 +1,22 @@ -# SQL-Querys-Unterricht \ No newline at end of file +# SQL-Querys-Unterricht + +## Aufgabe: + +- Erstellung einer SQL-Abfrage mit mind. 3 Joins. + +## Zusatz: + +- Erstellung der Entsprechenden Datenbank. + +- Weitere Nützliche Querys: + +## Weiteres: + +Diese Repo kann immerwieder Aktuallisert werden +sprich bugs gefixt und neue Features hinzugefügt werden. +( Einfach ein Pull request schicken ) + +## Devs: + +- [@lucaspalomodevelop](https://github.com/lucaspalomodevelop) +- [@LonhornHDTV](https://github.com/LonghornHDTV)