Baza SQL "malarz" - Struktura i dane
Tabela: farby
CREATE TABLE `farby` (
`id_farby` int(11) NOT NULL,
`kolor` text NOT NULL,
`cena` int(11) NOT NULL,
`pojemnosc` int(11) NOT NULL
);
INSERT INTO `farby` (`id_farby`, `kolor`, `cena`, `pojemnosc`) VALUES
(1, 'bialy', 20, 5),
(2, 'czerwony', 30, 3),
(3, 'niebieski', 35, 3),
(4, 'żółty', 22, 4),
(5, 'zielony', 30, 4),
(6, 'czarny', 50, 2),
(7, 'fioletowy', 64, 3);
Tabela: malowanie
CREATE TABLE `malowanie` (
`id_pomieszczenia` int(11) NOT NULL,
`id_sciany` int(11) NOT NULL,
`id_farby` int(11) DEFAULT NULL,
`liczba_puszek` int(11) DEFAULT NULL
);
INSERT INTO `malowanie` (`id_pomieszczenia`, `id_sciany`, `id_farby`, `liczba_puszek`) VALUES
(1, 1, 1, 3),
(1, 2, 3, 2),
(1, 3, 1, 3),
(1, 4, 1, 2),
(2, 1, 7, 4),
(2, 2, 6, 3),
(2, 3, 5, 5),
(2, 4, 3, 2),
(3, 1, 5, 2),
(3, 2, 2, 2),
(4, 4, 5, 2),
(5, 1, 2, 2),
(5, 2, 6, 4);
Twoje zapytania
Zapytanie 1: Cena i pojemność farby czerwonej
SELECT cena, pojemnosc FROM farby WHERE kolor = 'czerwony';
Zapytanie 2: Cena jednostkowa farb
SELECT kolor, cena/pojemnosc AS 'cena_jednostkowa' FROM farby;
Zapytanie 3: Farby w pomieszczeniu 3
SELECT farby.kolor, malowanie.liczba_puszek
FROM farby, malowanie
WHERE malowanie.id_farby = farby.id_farby
AND malowanie.id_pomieszczenia = 3;
Zapytanie 4: Widok pomieszczenie1
CREATE VIEW pomieszczenie1 AS
SELECT id_sciany, id_farby, liczba_puszek
FROM malowanie
WHERE id_pomieszczenia = 1;
Ćwiczenia do bazy "malarz"
Ćwiczenie 1: Lista farb w pomieszczeniu 2
SELECT f.kolor, m.liczba_puszek
FROM farby f
JOIN malowanie m ON f.id_farby = m.id_farby
WHERE m.id_pomieszczenia = 2;
Ćwiczenie 2: Średnia cena farb
SELECT AVG(cena) AS srednia_cena FROM farby;
Ćwiczenie 3: Najdroższa farba
SELECT kolor, cena
FROM farby
ORDER BY cena DESC
LIMIT 1;
Ćwiczenie 4: Liczba puszek potrzebna dla każdego pomieszczenia
SELECT id_pomieszczenia, SUM(liczba_puszek) AS suma_puszek
FROM malowanie
GROUP BY id_pomieszczenia;
Ćwiczenie 5: Pomieszczenia z użyciem czarnej farby
SELECT id_pomieszczenia, id_sciany, liczba_puszek
FROM malowanie
WHERE id_farby = 6;