Ćwiczenia SQL – Podzapytania

Ćwiczenie 1: Produkty droższe niż średnia cena

Opis: Wyświetl produkty, których cena jest wyższa od średniej ceny wszystkich produktów.

Rezultat: Lista produktów, w których cena > średnia.
SELECT nazwa, cena FROM produkty WHERE cena > (SELECT AVG(cena) FROM produkty);

Ćwiczenie 2: Klienci, którzy złożyli zamówienie

Opis: Znajdź wszystkich klientów, którzy mają co najmniej jedno zamówienie.

Rezultat: Lista imion i nazwisk klientów z zamówieniami.
SELECT imie, nazwisko FROM klienci WHERE id_klienta IN (SELECT id_klienta FROM zamowienia);

Ćwiczenie 3: Produkty z najniższą ceną

Opis: Wyświetl wszystkie produkty, które mają najniższą cenę w tabeli.

Rezultat: Produkty o minimalnej cenie.
SELECT nazwa, cena FROM produkty WHERE cena = (SELECT MIN(cena) FROM produkty);

Ćwiczenie 4: Zamówienia droższe niż średnia

Opis: Wyświetl zamówienia, których wartość jest większa od średniej wszystkich zamówień.

Rezultat: Lista zamówień powyżej średniej.
SELECT id_zamowienia, suma FROM zamowienia WHERE suma > (SELECT AVG(suma) FROM zamowienia);

Ćwiczenie 5: Produkty tańsze niż najdroższy w kategorii

Opis: Wyświetl produkty, których cena jest niższa od najdroższego produktu w kategorii Elektronika.

Rezultat: Produkty tańsze niż najdroższy w Elektronice.
SELECT nazwa, cena FROM produkty WHERE cena < (SELECT MAX(cena) FROM produkty WHERE kategoria='Elektronika');

Ćwiczenie 6: Klienci bogatsi niż Kowalski

Opis: Znajdź klientów, którzy wydali więcej pieniędzy niż Jan Kowalski.

Rezultat: Lista klientów wydających więcej niż Kowalski.
SELECT imie, nazwisko FROM klienci WHERE id_klienta IN ( SELECT id_klienta FROM zamowienia GROUP BY id_klienta HAVING SUM(suma) > ( SELECT SUM(suma) FROM zamowienia z JOIN klienci k ON z.id_klienta = k.id_klienta WHERE k.imie='Jan' AND k.nazwisko='Kowalski' ) );

Ćwiczenie 7: Produkty droższe niż średnia w kategorii

Opis: Dla każdej kategorii znajdź produkty droższe od średniej ceny w tej kategorii.

Rezultat: Produkty powyżej średniej w kategorii.
SELECT nazwa, cena, id_kategorii FROM produkty p WHERE cena > ( SELECT AVG(cena) FROM produkty WHERE id_kategorii = p.id_kategorii );

Ćwiczenie 8: Klienci tylko z 2024 roku

Opis: Wyświetl klientów, którzy składali zamówienia tylko w roku 2024.

Rezultat: Klienci aktywni wyłącznie w 2024.
SELECT imie, nazwisko FROM klienci WHERE id_klienta NOT IN ( SELECT id_klienta FROM zamowienia WHERE YEAR(data_zamowienia) <> 2024 );

Ćwiczenie 9: Top 3 najdroższe produkty

Opis: Wyświetl trzy najdroższe produkty.

Rezultat: Trzy rekordy najdroższych produktów.
SELECT nazwa, cena FROM produkty WHERE cena IN ( SELECT cena FROM produkty ORDER BY cena DESC LIMIT 3 );

Ćwiczenie 10: Średnia wartość zamówień dla aktywnych klientów

Opis: Oblicz średnią wartość zamówienia dla klientów, którzy mają więcej niż 5 zamówień.

Rezultat: Średnia wartość zamówień dla aktywnych klientów.
SELECT AVG(suma) AS srednia FROM zamowienia WHERE id_klienta IN ( SELECT id_klienta FROM zamowienia GROUP BY id_klienta HAVING COUNT(*) > 5 );

Rezultat 1: Operacje na bazie danych

R.1.1 Wykonany import tabel do bazy danych obuwie, udokumentowany plikiem JPEG.

R.1.2 Zapisany plik kwerendy.txt z co najmniej jednym zapytaniem SQL.

R.1.3 Zapytanie wybierające kolor i materiał produktów, których wysokość buta > 10.

SELECT kolor, material FROM produkt WHERE wysokosc_buta > 10;

R.1.4 Zapytanie wybierające nazwę i cenę buta oraz nazwę kategorii (JOIN).

SELECT nazwa, cena, nazwa_kat FROM buty JOIN kategorie USING(id_kat);

R.1.5 Utworzenie konta użytkownika Marek.

CREATE USER 'Marek'@'localhost' IDENTIFIED BY 'M@reK';

R.1.6 Nadanie kontu Marek uprawnień SELECT, UPDATE w tabeli produkt.

GRANT SELECT, UPDATE ON obuwie.produkt TO 'Marek'@'localhost';