Add {filename} for Tutorium 4
This commit is contained in:
61
Tutorium_4_relationship in physical model
Normal file
61
Tutorium_4_relationship in physical model
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
-- Example 1-to-1 relationship
|
||||||
|
-- PK cntry.code is FK ppl.country
|
||||||
|
SELECT cntry."name"
|
||||||
|
,cntry.capital
|
||||||
|
,ppl.population_growth
|
||||||
|
FROM "IDBS01_Q12025"."Country" cntry
|
||||||
|
INNER JOIN "IDBS01_Q12025"."Population" as ppl
|
||||||
|
ON cntry.code = ppl.country
|
||||||
|
limit 10;
|
||||||
|
|
||||||
|
|
||||||
|
-- Example 1-to-CN relationship
|
||||||
|
-- PK cntry.code is FK brd.country1
|
||||||
|
-- without mapping table
|
||||||
|
SELECT *
|
||||||
|
FROM "IDBS01_Q12025"."Country" cntry
|
||||||
|
FULL OUTER JOIN "IDBS01_Q12025".borders brd
|
||||||
|
ON cntry.code = brd.country1
|
||||||
|
WHERE 1 = 1
|
||||||
|
--AND brd.country1 IS NULL
|
||||||
|
AND cntry.code IS NULL
|
||||||
|
limit 10;
|
||||||
|
|
||||||
|
-- Example 1-to-CN relationship
|
||||||
|
--how to check if it is a 1-to-N relationship
|
||||||
|
|
||||||
|
SELECT *
|
||||||
|
FROM "IDBS01_Q12025"."Country" cntry
|
||||||
|
LEFT JOIN "IDBS01_Q12025"."geo_Desert" gdsrt
|
||||||
|
ON cntry.code = gdsrt.country
|
||||||
|
LEFT JOIN "IDBS01_Q12025"."Desert" dsrt
|
||||||
|
ON gdsrt.desert = dsrt."name"
|
||||||
|
limit 10;
|
||||||
|
|
||||||
|
|
||||||
|
--Example N-to-CM relationship
|
||||||
|
--with mapping table to N created by provicence
|
||||||
|
|
||||||
|
SELECT gm.mountain
|
||||||
|
,count (1) AS Anzahl
|
||||||
|
FROM "IDBS01_Q12025"."Country" cntry
|
||||||
|
LEFT JOIN "IDBS01_Q12025"."geo_Mountain" gm
|
||||||
|
ON cntry.code = gm.country
|
||||||
|
group by gm.mountain
|
||||||
|
having count(1) > 1
|
||||||
|
order by 2 desc
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT *
|
||||||
|
FROM "IDBS01_Q12025"."geo_Mountain"
|
||||||
|
WHERE "geo_Mountain".mountain = 'Popocatepetl'
|
||||||
|
limit 10;
|
||||||
|
|
||||||
|
SELECT *
|
||||||
|
FROM "IDBS01_Q12025"."Country" cntry
|
||||||
|
INNER JOIN "IDBS01_Q12025"."Province" prv
|
||||||
|
ON cntry.code = prv.country
|
||||||
|
LEFT OUTER JOIN "IDBS01_Q12025"."geo_Mountain" gm
|
||||||
|
ON prv.country = gm.country
|
||||||
|
AND prv."name" = gm.province
|
||||||
|
limit 10;
|
||||||
Reference in New Issue
Block a user