====== LU06 - Assignment: Animal Shelter on the Ron ======
===== Prerequisites =====
* **Working method:** Pair work (same group as in LU05)
* **Resources:** Your own database from LU05.
* **Time:** approx. 30 minutes
===== Background =====
We would like to help animals at the **Ron Animal Shelter** in Root (LU) that are up for adoption ([[https://tierschutz-luzern.ch/tierheim-an-der-ron/|tierschutz-luzern.ch]]) in our database.
Your tables: **gehege**, **tierart**, **tier**.
===== Task =====
==== 1. Insert data records ====
**tierart** (columns: name, herkunft)
Hund, Weltweit domestiziert
Katze, Weltweit domestiziert
Kaninchen, Europa
**gehege** (columns: name, standort, flaeche)
Hundeaussenbereich 1, Garten, 45.50
Kleintierraum, Innenbereich, 20.00
Katzenzimmer, Innenbereich, 15.00
**tier** (Columns: name, geburtsdatum, geschlecht, gehege_id, art_id)
('Zuki', '2024-04-01', 'w', 2, 3),
('Sokka', '2024-04-01', 'm', 2, 3),
('Mila', '2019-09-03', 'w', 3, 2),
('Bäry', '2022-01-20', 'm', 1, 1),
('Luigi', '2025-09-01', 'm', 1, 1),
('Fred', '2025-11-01', 'm', 1, 1);
==== 2. Deliberately violating a constraint ====
Try to create an animal **without a name**. Read the error message.
==== 3. Modifying data ====
- An input error has been detected for Mila: she is actually housed in a different enclosure – change her enclosure_id to **2**.
- Luigi and Fred are being moved together to a new enclosure **and** their species is being corrected, as they are actually rabbits rather than dogs – change the ‘gehege_id’ for both to 2 **and** `art_id` to 3. To do this, use a `WHERE` clause that matches both at the same time.
Filter by name, e.g. ''WHERE name = 'Mila' ''. For both animals at the same time, you could use, for example: ''WHERE name = 'Luigi' OR name = 'Fred' ''. Use SELECT beforehand to check how many rows are affected.
==== 4. Deleting data ====
- Bäry has been successfully rehomed – delete his record specifically by name.
- Zuki and Sokka are being rehomed together – delete both records using a WHERE condition that matches both at the same time.
Remember to carry out a dry run with SELECT before every DELETE.
----
{{tag>M290-LU06}}
[[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] Guido Koch