Aufgaben: View
Completion requirements
Lösungen: View
Opened: Monday, 27 August 2018, 12:00 AM
Due: Friday, 28 September 2018, 12:00 AM
Untenstehendes SQL-Script soll ergänzt werden um:
- eine Select-Abfrage über alle drei Tabellen,
- eine Sicht, die genau diese Abfrage speichert,
- eine Abfrage, die den Mitarbeit mit der MitarbeiterID = 3 löscht,
- eine Abfrage, die die Sicht sortiert nach Mitarbeitern abfragt,
- um eine Lösch-Anweisung der Sicht, falls diese bei erneutem Ausführen des Scripts bereits existiert.
- Warum liefert die Abfrage ein anderes Ergebnis als die Abfrage der Sicht?
- Ist das Verlagern der ORDER BY-Klausel in die Sicht möglich?
- Welche Vorteile bieten Sichten?
- Was heißt indirekte Berechtigung im Bezug auf Sichten?
IF NOT EXISTS(SELECT * FROM sys.databases WHERE name = 'ViewDemo') CREATE DATABASE ViewDemo
GO
USE ViewDemo
IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'tblRefMitarbeiterProjekt') DROP TABLE tblRefMitarbeiterProjekt
IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'tblMitarbeiter') DROP TABLE tblMitarbeiter
IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'tblProjekt') DROP TABLE tblProjekt
CREATE TABLE tblProjekt
(
ProjektID int IDENTITY PRIMARY KEY,
Bezeichnung varchar(50)
);
CREATE TABLE tblMitarbeiter
(
MitarbeiterID int IDENTITY PRIMARY KEY,
Name varchar(50)
);
CREATE TABLE tblRefMitarbeiterProjekt
(
ProjektID int REFERENCES tblProjekt(ProjektID)
ON DELETE CASCADE,
MitarbeiterID int REFERENCES tblMitarbeiter(MitarbeiterID)
ON DELETE CASCADE
);
INSERT INTO tblProjekt (Bezeichnung) VALUES ('Kundenumfrage');
INSERT INTO tblProjekt (Bezeichnung) VALUES ('Verkaufspromotion');
INSERT INTO tblProjekt (Bezeichnung) VALUES ('Konkurrenzanalyse');
INSERT INTO tblMitarbeiter (Name) VALUES ('Lorenz');
INSERT INTO tblMitarbeiter (Name) VALUES ('Hohl');
INSERT INTO tblMitarbeiter (Name) VALUES ('Willschrein');
INSERT INTO tblRefMitarbeiterProjekt (MitarbeiterID,ProjektID) VALUES (1,2);
INSERT INTO tblRefMitarbeiterProjekt (MitarbeiterID,ProjektID) VALUES (2,3);
INSERT INTO tblRefMitarbeiterProjekt (MitarbeiterID,ProjektID) VALUES (3,1);
INSERT INTO tblRefMitarbeiterProjekt (MitarbeiterID,ProjektID) VALUES (3,2);
INSERT INTO tblRefMitarbeiterProjekt (MitarbeiterID,ProjektID) VALUES (3,3);Lösungen: View