Skip to content
Snippets Groups Projects
Commit 1502bc0c authored by Sabrina Mélanie Forster's avatar Sabrina Mélanie Forster
Browse files
parents 8c2e59c8 78be2f87
Branches
No related tags found
No related merge requests found
No preview for this file type
dbs/angproj
......@@ -63,9 +63,9 @@ CREATE DATABASE :database WITH OWNER=:user ENCODING='UTF8';
-- valid values are: 'UTF8', 'LATIN1', 'WIN1252'
--\encoding 'auto'
--\set ECHO queries
\set ECHO queries
-- query the database
--\ir 5_queries.sql
\ir 5_queries.sql
--\unset ECHO
-- demonstrate constraints in action
......
......@@ -13,17 +13,12 @@ WHERE a.person = m.id
AND k.id = m.id
AND a.typ = 2;
-- 1.3 Query mit unterabfrage inkl. Angabe ob diese korreliert ist oder unkorreliert
-- alle Wettkämpfe die mehr als einen Teilnehmer haben
SELECT name FROM Wettkampf AS wet
WHERE EXISTS (
SELECT * FROM anmeldung AS anm
WHERE wet.id = anm.tournier
)
-- korreliert, die Unterabfrage ist von der Oberabfrage abhängig
SELECT name FROM wettkampf AS w
WHERE EXISTS
(
SELECT * FROM angebot AS ang
WHERE ang.tournier = w.id
);
-- 1.4 Query mit ANY, IN, EXISTS oder ALL
SELECT ALL mitglied.name, teilnehmer.startnummer
......@@ -35,6 +30,11 @@ WHERE teilnehmer.meldewert IS NULL;
-- 2.1 WITH STATEMENT
-- 2.1.1 unkorrelierte Unterabfrage im From Teil
SELECT *
FROM (
SELECT EXTRACT(YEAR FROM w.datum),w.name, w.datum, w.ort
FROM wettkampf AS w
) AS wettkampfjahr;
-- 2.1.2 äquivalente Query mit CTE anstatt subquery
WITH wettkampfjahre (wettkampfjahr, name, datum, ort) AS(
......@@ -49,19 +49,33 @@ SELECT *
FROM wettkampfjahre;
-- 2.2. GROUP-BY Funktionen
-- 2.2.1 GROUP BY-Klausel
-- Nimm alle Anmeldung und zeige uns an Welche Personen Teilnehmer/Kampfrichter sind
-- 2.2.2 Window-Funktion
--SELECT tournier, COUNT(tournier) AS "Anmeldungen" FROM anmeldung GROUP BY tournier ORDER BY tournier;
SELECT DISTINCT tournier, COUNT(tournier)
OVER (PARTITION BY tournier)
FROM anmeldung
ORDER BY tournier;
-- AUFGABE 3 VIEWS
-- 3.1 Views (Andreas)
-- mit mind. 3 tabellen
CREATE VIEW wettkampf1 AS
SELECT w1.id,w2.name, m1.name AS "Teilnehmer", a1.typ
FROM wettkampf AS w1
LEFT JOIN anmeldung as a1 ON w1.id = a1.person
LEFT JOIN wettkampf as w2 ON a1.tournier = w2.id
LEFT JOIN mitglied as m1 ON m1.id = a1.person
ORDER BY name;
-- normale query welche vorherige view verwendet
-- 3.2 updatable view (Sabi)
-- view schreiben
-- Änderung eines bestimmten Datensetzt über diese View schreiben mittels Update
-- View soll alle Mitglieder anzeigen
CREATE VIEW Mitglieder AS
SELECT name, mail
FROM mitglied;
-- Ariane Barnes nach Heirat Namensänderung
UPDATE Mitglieder SET name = 'Ariane Kuraiame'
WHERE name = 'Ariane Barnes';
psql -U postgres -v ON_ERROR_STOP=on -f 0_runAllScripts.sql
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment