Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
D
Dbs1 Coder Working Space
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Andreas Bachmann
Dbs1 Coder Working Space
Commits
053befed
Commit
053befed
authored
1 year ago
by
Sabrina Mélanie Forster
Browse files
Options
Downloads
Patches
Plain Diff
fertig
parent
44d5abd0
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
Testat2/5_queries.sql
+13
-10
13 additions, 10 deletions
Testat2/5_queries.sql
with
13 additions
and
10 deletions
Testat2/5_queries.sql
+
13
−
10
View file @
053befed
/*
* Sabrina Forster, Andreas Bachmann
*/
----------------------------------------------------------------------
-- AUFGBAE 1 QUERIES (Andreas)
-- 1.1 DISTINCT
SELECT
DISTINCT
ort
,
name
FROM
wettkampf
ORDER
BY
ort
ASC
;
--------------------------------
-- 1.2 JOIN über mehrere Tabellen
SELECT
m
.
name
,
m
.
mail
,
k
.
spezialgebiet
,
a
.
typ
,
a
.
tournier
FROM
mitglied
AS
m
,
kampfrichter
AS
k
,
anmeldung
AS
a
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
SELECT
name
FROM
wettkampf
AS
w
WHERE
EXISTS
...
...
@@ -19,15 +20,15 @@ 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
FROM
teilnehmer
JOIN
mitglied
ON
mitglied
.
id
=
teilnehmer
.
id
WHERE
teilnehmer
.
meldewert
IS
NULL
;
----------------------------------------------------------------------
-- AUFGABE 2 TABLE EXPRESSIONS (Sabi)
-- 2.1 WITH STATEMENT
-- 2.1.1 unkorrelierte Unterabfrage im From Teil
SELECT
*
...
...
@@ -35,7 +36,7 @@ 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
(
SELECT
...
...
@@ -47,17 +48,21 @@ WITH wettkampfjahre (wettkampfjahr, name, datum, ort) AS(
)
SELECT
*
FROM
wettkampfjahre
;
----------------------------------------------------------------------
-- 2.2. GROUP-BY Funktionen
-- 2.2.1 GROUP BY-Klausel
SELECT
tournier
,
COUNT
(
tournier
)
AS
"Anmeldungen"
FROM
anmeldung
GROUP
BY
tournier
ORDER
BY
tournier
;
--------------------------------
-- 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)
-- normale query welche vorherige view verwendet
-- mit mind. 3 tabellen
CREATE
VIEW
wettkampf1
AS
SELECT
w1
.
id
,
w2
.
name
,
m1
.
name
AS
"Teilnehmer"
,
a1
.
typ
...
...
@@ -66,13 +71,11 @@ 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
-- View soll alle Mitglieder anzeigen
und deren Mailadressen
CREATE
VIEW
Mitglieder
AS
SELECT
name
,
mail
FROM
mitglied
;
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment