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;