Lösung: Anlegen und Befüllen von Datenbanken
Completion requirements
- /* Im weiteren DbLEic01 verwenden */
- USE DbLEic01
- /* Falls Tabellen bereits existieren, sollen sie vorher gelöscht werden */
- IF EXISTS(SELECT * FROM Information_Schema.Tables WHERE Table_Name = 'tblMitarbeiter')
- DROP TABLE tblMitarbeiter
- IF EXISTS(SELECT * FROM Information_Schema.Tables WHERE Table_Name = 'tblAbteilung')
- DROP TABLE tblAbteilung
- IF EXISTS(SELECT * FROM Information_Schema.Tables WHERE Table_Name = 'tblProjekt')
- DROP TABLE tblProjekt
- IF EXISTS(SELECT * FROM Information_Schema.Tables WHERE Table_Name = 'tblRefMitarbeiterProjekt')
- DROP TABLE tblRefMitarbeiterProjekt
- /* Neue Tabellen kreieren */
- CREATE TABLE tblMitarbeiter
- (
- MitarbeiterID int IDENTITY PRIMARY KEY,
- Nachname varchar(50),
- Vorname varchar(50),
- Geburtsdatum date,
- Einstellungsdatum date,
- AbteilungID int
- );
- CREATE TABLE tblAbteilung
- (
- AbteilungID int IDENTITY PRIMARY KEY,
- Abteilungsname varchar(50),
- Abteilungsleiter int
- );
- CREATE TABLE tblProjekt
- (
- ProjektID int IDENTITY PRIMARY KEY,
- Projektbezeichnung varchar(50),
- Projektstart date,
- Abteilung int
- );
- CREATE TABLE tblRefMitarbeiterProjekt
- (
- MitarbeiterID int,
- ProjektID int
- );
- /* Tabellen mit Werten füllen */
- INSERT INTO tblMitarbeiter VALUES ('Sabbel', 'Siegfried', '1976-05-04', '1999-07-01', 1);
- INSERT INTO tblMitarbeiter VALUES ('Rettig', 'Rudi', '1980-12-20', '2000-02-01', 2);
- INSERT INTO tblMitarbeiter VALUES ('Esser', 'Rita', '1979-05-04', '2010-09-01', 1);
- INSERT INTO tblMitarbeiter VALUES ('Kanther', 'Kurt', '1987-05-04', '2011-11-01', 1);
- INSERT INTO tblMitarbeiter VALUES ('Mann', 'Michaela', '1989-05-04', '2015-07-01', 3);
- INSERT INTO tblMitarbeiter VALUES ('Meier', 'Martina', '1979-05-04', '2013-03-01', 2);
- INSERT INTO tblMitarbeiter VALUES ('Schmitt', 'Max', '1970-05-04', '1990-01-01', 1);
- INSERT INTO tblMitarbeiter VALUES ('Gans', 'Gustav', '1986-05-04', '2003-02-01', 3);
- INSERT INTO tblAbteilung VALUES ('Controlling', 3);
- INSERT INTO tblAbteilung VALUES ('Informatik', 6);
- INSERT INTO tblAbteilung VALUES ('Finanzen', 5);
- INSERT INTO tblProjekt VALUES ('Investitionsplan', '2015-01-01', 1);
- INSERT INTO tblProjekt VALUES ('Webseite', '2016-04-01', 2);
- INSERT INTO tblProjekt VALUES ('Börsengang', '2014-12-01', 1);
- INSERT INTO tblRefMitarbeiterProjekt VALUES (1, 1);
- INSERT INTO tblRefMitarbeiterProjekt VALUES (1, 2);
- INSERT INTO tblRefMitarbeiterProjekt VALUES (2, 2);
- INSERT INTO tblRefMitarbeiterProjekt VALUES (3, 3);
- INSERT INTO tblRefMitarbeiterProjekt VALUES (4, 1);
- INSERT INTO tblRefMitarbeiterProjekt VALUES (4, 3);
- INSERT INTO tblRefMitarbeiterProjekt VALUES (5, 3);
- INSERT INTO tblRefMitarbeiterProjekt VALUES (6, 3);
- INSERT INTO tblRefMitarbeiterProjekt VALUES (7, 3);
- INSERT INTO tblRefMitarbeiterProjekt VALUES (7, 2);
- INSERT INTO tblRefMitarbeiterProjekt VALUES (7, 1);
- INSERT INTO tblRefMitarbeiterProjekt VALUES (8, 3);
- /* AUFG: Welche Abteilung(Name) ist in dem jeweiligen Projekt beteiligt? */
- SELECT DISTINCT Abteilungsname, Projektbezeichnung
- FROM tblAbteilung
- LEFT JOIN tblMitarbeiter ON tblAbteilung.AbteilungID = tblMitarbeiter.AbteilungID
- LEFT JOIN tblRefMitarbeiterProjekt ON tblMitarbeiter.MitarbeiterID = tblRefMitarbeiterProjekt.MitarbeiterID
- LEFT JOIN tblProjekt ON tblRefMitarbeiterProjekt.ProjektID = tblProjekt.ProjektID;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | DROP DATABASE IF EXISTS MitarbeiterDB; -- Create the database CREATE DATABASE MitarbeiterDB; USE MitarbeiterDB; DROP TABLE IF EXISTS tblMitarbeiter; DROP TABLE IF EXISTS tblAbteilung; -- Create tblMitarbeiter table CREATE TABLE tblMitarbeiter ( MitarbeiterID INT PRIMARY KEY AUTO_INCREMENT, Nachname VARCHAR(50), Vorname VARCHAR(50), Geburtsdatum DATE, Einstellungsdatum DATE, AbteilungID INT ); -- Insert data into tblMitarbeiter INSERT INTO tblMitarbeiter (Nachname, Vorname, Geburtsdatum, Einstellungsdatum, AbteilungID) VALUES ('Sabbel', 'Siegfried', '1976-05-04', '1999-07-01', 1), ('Rettig', 'Rudi', '1980-12-20', '2000-02-01', 2), ('Esser', 'Rita', '1979-03-03', '2010-09-01', 1), ('Kanther', 'Kurt', '1987-05-07', '2011-11-01', 1), ('Mann', 'Michaela', '1989-12-09', '2015-07-01', 3), ('Meier', 'Martina', '1979-04-22', '2013-03-01', 2), ('Schmitt', 'Max', '1970-04-13', '1990-01-01', 1), ('Gans', 'Gustav', '1988-02-22', '2003-02-01', 3); -- Create tblAbteilung table CREATE TABLE tblAbteilung ( AbteilungID INT PRIMARY KEY, Abteilungsname VARCHAR(50), Abteilungsleiter INT, FOREIGN KEY (Abteilungsleiter) REFERENCES tblMitarbeiter(MitarbeiterID) ); -- Insert data into tblAbteilung INSERT INTO tblAbteilung (AbteilungID, Abteilungsname, Abteilungsleiter) VALUES (1, 'Controlling', 3), (2, 'Informatik', 6), (3, 'Finanzen', 5); -- Create tblProjekt table CREATE TABLE tblProjekt ( ProjektID INT PRIMARY KEY, Projektbezeichnung VARCHAR(50), Projektstart DATE, AbteilungID INT, FOREIGN KEY (AbteilungID) REFERENCES tblAbteilung(AbteilungID) ); -- Insert data into tblProjekt INSERT INTO tblProjekt (ProjektID, Projektbezeichnung, Projektstart, AbteilungID) VALUES (1, 'Investitionsplan', '2015-01-01', 1), (2, 'Webseite', '2016-04-01', 2), (3, 'Börsengang', '2014-12-01', 1); -- Create tblRefMitarbeiterProjekt table CREATE TABLE tblRefMitarbeiterProjekt ( MitarbeiterID INT, ProjektID INT, PRIMARY KEY (MitarbeiterID, ProjektID), FOREIGN KEY (MitarbeiterID) REFERENCES tblMitarbeiter(MitarbeiterID), FOREIGN KEY (ProjektID) REFERENCES tblProjekt(ProjektID) ); -- Insert data into tblRefMitarbeiterProjekt INSERT INTO tblRefMitarbeiterProjekt (MitarbeiterID, ProjektID) VALUES (1, 1), (1, 2), (2, 2), (3, 3), (4, 1), (4, 3), (5, 3), (6, 3), (7, 3), (7, 2), (7, 1), (8, 3); |
Last modified: Thursday, 4 July 2024, 1:00 PM