Skip to content
Snippets Groups Projects
Commit 4edbb100 authored by Raphael Das Gupta's avatar Raphael Das Gupta
Browse files

Merge branch 'consistent_upper-_and_lowercase' into 'master'

Consistent upper- and lowercase

See merge request ifs/AngProj!12
parents bc110070 96080f35
Branches
No related tags found
No related merge requests found
......@@ -2,48 +2,48 @@
* Tabellen erzeugen
*/
CREATE TABLE Abteilung (
AbtNr INTEGER PRIMARY KEY,
Name VARCHAR(20)
CREATE TABLE abteilung (
abtnr INTEGER PRIMARY KEY,
name VARCHAR(20)
);
CREATE TABLE Angestellter (
PersNr INTEGER PRIMARY KEY,
Name VARCHAR(20) NOT NULL,
Tel INTEGER ,
Salaer DECIMAL (7,2) NOT NULL,
Chef INTEGER ,
AbtNr INTEGER NOT NULL,
Wohnort VARCHAR(20),
Eintrittsdatum DATE DEFAULT CURRENT_DATE,
Bonus DECIMAL (7,2) DEFAULT 0
CREATE TABLE angestellter (
persnr INTEGER PRIMARY KEY,
name VARCHAR(20) NOT NULL,
tel INTEGER ,
salaer DECIMAL (7,2) NOT NULL,
chef INTEGER ,
abtnr INTEGER NOT NULL,
wohnort VARCHAR(20),
eintrittsdatum DATE DEFAULT CURRENT_DATE,
bonus DECIMAL (7,2) DEFAULT 0
);
CREATE TABLE AbtLeitung (
AbtNr INTEGER,
AbtChef INTEGER NOT NULL,
PRIMARY KEY(AbtNr),
UNIQUE(AbtChef)
CREATE TABLE abtleitung (
abtnr INTEGER,
abtchef INTEGER NOT NULL,
PRIMARY KEY(abtnr),
UNIQUE(abtchef)
);
CREATE TABLE Projekt (
ProjNr INTEGER PRIMARY KEY,
Bezeichnung char(20),
StartZeit DATE,
Dauer INTEGER ,
Aufwand INTEGER ,
ProjLeiter INTEGER
CREATE TABLE projekt (
projnr INTEGER PRIMARY KEY,
bezeichnung char(20),
startzeit DATE,
dauer INTEGER ,
aufwand INTEGER ,
projleiter INTEGER
);
CREATE TABLE ProjektZuteilung (
PersNr INTEGER NOT NULL,
ProjNr INTEGER NOT NULL,
ZeitAnteil INTEGER NOT NULL,
StartZeit DATE,
Dauer INTEGER ,
PRIMARY KEY (PersNr, ProjNr)
CREATE TABLE projektzuteilung (
persnr INTEGER NOT NULL,
projnr INTEGER NOT NULL,
zeitanteil INTEGER NOT NULL,
startzeit DATE,
dauer INTEGER ,
PRIMARY KEY (persnr, projnr)
);
CREATE Sequence S_Angestellter START WITH 2000 INCREMENT BY 10;
CREATE Sequence s_angestellter START WITH 2000 INCREMENT BY 10;
......@@ -2,7 +2,7 @@
/*
* Testdaten einfüllen
*/
-- TABLE ABTEILUNG
-- TABLE abteilung
COPY abteilung (abtnr, name) FROM stdin;
1 Verkauf
2 Marketing
......@@ -11,7 +11,7 @@ COPY abteilung (abtnr, name) FROM stdin;
5 QS
\.
-- TABLE ANGESTELLTER
-- TABLE angestellter
COPY angestellter (persnr, name, tel, salaer, chef, abtnr, wohnort) FROM stdin WITH (ENCODING 'UTF8');
1001 Marxer, Markus 234 10580.00 \N 1 Luzern
1002 Widmer, Anna 301 12010.00 \N 2 Adligenswil
......@@ -38,7 +38,7 @@ COPY angestellter (persnr, name, tel, salaer, chef, abtnr, wohnort) FROM stdin W
2020 Test, Hans 602 5900.00 4000 4 Luzern
\.
-- TABLE ABTLEITUNG (ABTCHEF, ABTNR)
-- TABLE abtleitung (abtchef, abtnr)
COPY abtleitung (abtnr, abtchef) FROM stdin;
1 1001
2 1002
......@@ -46,7 +46,7 @@ COPY abtleitung (abtnr, abtchef) FROM stdin;
4 3000
\.
-- TABLE PROJEKT
-- TABLE projekt
COPY projekt (projnr, bezeichnung, startzeit, dauer, aufwand, projleiter) FROM stdin;
25 Saturn 1994-01-01 30 120 1001
26 Mars 1992-12-01 500 1000 1100
......@@ -54,7 +54,7 @@ COPY projekt (projnr, bezeichnung, startzeit, dauer, aufwand, projleiter) FROM s
30 Jupiter 1993-02-12 10 50 1001
\.
-- TABLE ProjektZuteilung (PERSNR,PROJNR,ZEITANTEIL, STARTZEIT, DAUER)
-- TABLE projektzuteilung (persnr,projnr,zeitanteil, startzeit, dauer)
COPY projektzuteilung (persnr, projnr, zeitanteil, startzeit, dauer) FROM stdin;
1001 26 30 \N \N
1001 27 30 \N \N
......
......@@ -2,7 +2,7 @@
/*
* Testdaten einfüllen
*/
-- TABLE ABTEILUNG
-- TABLE abteilung
INSERT INTO abteilung VALUES (1, 'Verkauf');
INSERT INTO abteilung VALUES (2, 'Marketing');
......@@ -10,7 +10,7 @@ INSERT INTO abteilung VALUES (3, 'Entwicklung');
INSERT INTO abteilung VALUES (4, 'Finanzen');
INSERT INTO abteilung VALUES (5, 'QS');
-- TABLE ANGESTELLTER
-- TABLE angestellter
INSERT INTO angestellter (persnr, name, tel, salaer, chef, abtnr, wohnort) VALUES
(1001, 'Marxer, Markus', 234, 10580.00, NULL, 1, 'Luzern');
......@@ -59,21 +59,21 @@ INSERT INTO angestellter (persnr, name, tel, salaer, chef, abtnr, wohnort) VALUE
INSERT INTO angestellter (persnr, name, tel, salaer, chef, abtnr, wohnort) VALUES
(2020, 'Test, Hans', 602, 5900.00, 4000, 4, 'Luzern');
-- TABLE ABTLEITUNG (ABTCHEF, ABTNR)
-- TABLE abtleitung (abtchef, abtnr)
INSERT INTO abtleitung VALUES (1, 1001);
INSERT INTO abtleitung VALUES (2, 1002);
INSERT INTO abtleitung VALUES (3, 1010);
INSERT INTO abtleitung VALUES (4, 3000);
-- TABLE PROJEKT
-- TABLE projekt
INSERT INTO projekt VALUES (25, 'Saturn ', to_date('1994-01-01', 'YYYY-MM-DD'), 30, 120, 1001);
INSERT INTO projekt VALUES (26, 'Mars ', to_date('1992-12-01', 'YYYY-MM-DD'), 500, 1000, 1100);
INSERT INTO projekt VALUES (27, 'Uranus ', NULL, NULL, NULL, 1100);
INSERT INTO projekt VALUES (30, 'Jupiter ', to_date('1993-02-12', 'YYYY-MM-DD'), 10, 50, 1001);
-- TABLE ProjektZuteilung (PERSNR,PROJNR,ZEITANTEIL, STARTZEIT, DAUER)
-- TABLE projektzuteilung (persnr,projnr,zeitanteil, startzeit, dauer)
INSERT INTO projektzuteilung VALUES (1001, 26, 30, NULL, NULL);
INSERT INTO projektzuteilung VALUES (1001, 27, 30, NULL, NULL);
......
/*
* Fremdschluessel setzen
*/
ALTER TABLE Angestellter
ADD CONSTRAINT fk_AngAng
FOREIGN KEY (Chef) REFERENCES Angestellter (PersNr)
ALTER TABLE angestellter
ADD CONSTRAINT fk_ang_ang
FOREIGN KEY (chef) REFERENCES angestellter (persnr)
;
ALTER TABLE Angestellter
ADD CONSTRAINT fk_AngAbt
FOREIGN KEY (AbtNr) REFERENCES Abteilung (AbtNr)
ALTER TABLE angestellter
ADD CONSTRAINT fk_ang_abt
FOREIGN KEY (abtnr) REFERENCES abteilung (abtnr)
;
ALTER TABLE AbtLeitung
ADD CONSTRAINT fk_AbtLAbt
FOREIGN KEY (AbtNr) REFERENCES Abteilung (AbtNr)
ALTER TABLE abtleitung
ADD CONSTRAINT fk_abtl_abt
FOREIGN KEY (abtnr) REFERENCES abteilung (abtnr)
ON DELETE CASCADE
;
ALTER TABLE AbtLeitung
ADD CONSTRAINT fk_AbtLAng
FOREIGN KEY (AbtChef) REFERENCES Angestellter(PersNr)
ALTER TABLE abtleitung
ADD CONSTRAINT fk_abtl_ang
FOREIGN KEY (abtchef) REFERENCES angestellter(persnr)
ON DELETE CASCADE
;
ALTER TABLE Projekt
ADD CONSTRAINT fk_ProjAng
FOREIGN KEY (ProjLeiter) REFERENCES Angestellter(PersNr)
ALTER TABLE projekt
ADD CONSTRAINT fk_proj_ang
FOREIGN KEY (projleiter) REFERENCES angestellter(persnr)
;
ALTER TABLE ProjektZuteilung
ADD CONSTRAINT fk_ProjzAng
FOREIGN KEY (PersNr) REFERENCES Angestellter(PersNr)
ALTER TABLE projektzuteilung
ADD CONSTRAINT fk_projz_ang
FOREIGN KEY (persnr) REFERENCES angestellter(persnr)
ON DELETE CASCADE
;
ALTER TABLE ProjektZuteilung
ADD CONSTRAINT fk_ProjzProj
FOREIGN KEY (ProjNr) REFERENCES Projekt(ProjNr)
ALTER TABLE projektzuteilung
ADD CONSTRAINT fk_projz_proj
FOREIGN KEY (projnr) REFERENCES projekt(projnr)
ON DELETE CASCADE
;
select name, salaer from angestellter where salaer > 5000;
SELECT name, salaer FROM angestellter WHERE salaer > 5000;
select name, salaer from angestellter where wohnort = 'Luzern' AND (salaer < 5000 OR salaer > 8000);
SELECT name, salaer FROM angestellter WHERE wohnort = 'Luzern' AND (salaer < 5000 OR salaer > 8000);
Select name, tel from angestellter WHERE Tel is NOT NULL ORDER BY Name ASC;
SELECT name, tel FROM angestellter WHERE tel IS NOT NULL ORDER BY name ASC;
select name, persnr from angestellter where name like 'Widmer%';
SELECT name, persnr FROM angestellter WHERE name LIKE 'Widmer%';
Select Distinct Wohnort, Name from angestellter WHERE AbtNr=3 ORDER BY Wohnort ASC;
SELECT DISTINCT wohnort, name FROM angestellter WHERE abtnr=3 ORDER BY wohnort ASC;
select chef, count(*), avg(salaer) from angestellter where chef is not NULL group by chef
order by count(*) DESC, avg(salaer);
SELECT chef, count(*), avg(salaer) FROM angestellter WHERE chef IS NOT NULL GROUP BY chef
ORDER BY count(*) DESC, avg(salaer);
select Name,Salaer AS "tiefstes Salaer" from Angestellter
where Salaer = (select min(Salaer) from Angestellter);
SELECT name,salaer AS "tiefstes Salaer" FROM angestellter
WHERE salaer = (SELECT min(salaer) FROM angestellter);
select count(*), sum (Salaer)
from Angestellter
where PersNr in
(select PersNr
from ProjektZuteilung
where ProjNr =
(select ProjNr
from Projekt
where Bezeichnung='Mars'
SELECT count(*), sum (salaer)
FROM angestellter
WHERE persnr IN
(SELECT persnr
FROM projektzuteilung
WHERE projnr =
(SELECT projnr
FROM projekt
WHERE bezeichnung='Mars'
)
);
select AbtNr, avg(Salaer), count(*)
from Angestellter
group by AbtNr
having avg(Salaer) <= all
(select avg(Salaer) from Angestellter
group by AbtNr);
SELECT abtnr, avg(salaer), count(*)
FROM angestellter
GROUP BY abtnr
HAVING avg(salaer) <= ALL
(SELECT avg(salaer) FROM angestellter
GROUP BY abtnr);
SELECT name,
SUM(zeitanteil)
......@@ -70,15 +70,15 @@ WHERE bezeichnung LIKE '%Uranus%';
-- do not alter contents of the database persistently
BEGIN;
CREATE VIEW GutVerdienende AS
SELECT * FROM Angestellter
WHERE Salaer > 8000;
CREATE VIEW gutverdienende AS
SELECT * FROM angestellter
WHERE salaer > 8000;
SELECT * FROM GutVerdienende;
SELECT * FROM gutverdienende;
UPDATE Angestellter SET Salaer = Salaer*1.2;
UPDATE angestellter SET salaer = salaer*1.2;
SELECT * FROM GutVerdienende;
SELECT * FROM gutverdienende;
-- forget all changes made since BEGIN
ROLLBACK;
......@@ -5,12 +5,12 @@ $$BEGIN
*/
-- Add a constraint:
ALTER TABLE Angestellter
ADD CONSTRAINT check_Salaer
CHECK (Salaer between 1000 and 20000);
ALTER TABLE angestellter
ADD CONSTRAINT check_salaer
CHECK (salaer BETWEEN 1000 AND 20000);
-- Test the constraint:
UPDATE angestellter SET salaer=30000 where persnr = 1100;
UPDATE angestellter SET salaer=30000 WHERE persnr = 1100;
/* The UPDATE above fails, thereby making execution jump
* into the EXCEPTION block below and causing a ROLLBACK
* of all changes within the block so far,
......@@ -32,12 +32,12 @@ $$BEGIN
*/
-- Add a constraint:
ALTER TABLE ProjektZuteilung
ADD CONSTRAINT check_Zeitanteil
CHECK (Zeitanteil between 10 and 90);
ALTER TABLE projektzuteilung
ADD CONSTRAINT check_zeitanteil
CHECK (zeitanteil BETWEEN 10 AND 90);
-- Test the constraint:
UPDATE ProjektZuteilung SET Zeitanteil=99 where persnr = 1100;
UPDATE projektzuteilung SET zeitanteil=99 WHERE persnr = 1100;
/* The UPDATE above fails, thereby making execution jump
* into the EXCEPTION block below and causing a ROLLBACK
* of all changes within the block so far,
......
......@@ -236,7 +236,7 @@ Folgende Schritte werden dabei durchlaufen:
# auflisten vorhandener Tabellen
\dt
# auslesen der Angestellten:
select * from Angestellter;
select * from angestellter;
# verlassen von psql
\q
```
......@@ -273,7 +273,7 @@ Folgende Schritte werden dabei durchlaufen:
# auflisten vorhandener Tabellen
select table_name from user_tables;
# auslesen der Angestellten:
select * from Angestellter;
select * from angestellter;
# verlassen von sqlplus
quit
```
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment