Utwórz bazę danych
Utwórz bazę danych sklep i przełącz się na nią poleceniem USE.
CREATE DATABASE sklep;
USE sklep;
Utwórz tabelę klientów
Utwórz tabelę klienci z kolumnami: identyfikator, imię, nazwisko i adres e‑mail.
CREATE TABLE klienci (
id INT AUTO_INCREMENT PRIMARY KEY,
imie VARCHAR(50),
nazwisko VARCHAR(50),
email VARCHAR(100)
);
Utwórz tabelę produktów
Utwórz tabelę produkty przechowującą nazwę produktu i jego cenę.
CREATE TABLE produkty (
id INT AUTO_INCREMENT PRIMARY KEY,
nazwa VARCHAR(100),
cena DECIMAL(10,2)
);
Utwórz tabelę zamówień z relacjami
Utwórz tabelę zamowienia, która wiąże klientów z produktami poprzez klucze obce.
CREATE TABLE zamowienia (
id INT AUTO_INCREMENT PRIMARY KEY,
klient_id INT,
produkt_id INT,
data_zamowienia DATE,
FOREIGN KEY (klient_id) REFERENCES klienci(id),
FOREIGN KEY (produkt_id) REFERENCES produkty(id)
);
Wyświetl strukturę tabeli
Wyświetl strukturę tabeli klienci, aby sprawdzić typy kolumn i klucze.
DESCRIBE klienci;
Wyświetl relacje między tabelami
Wyświetl klucze obce tabeli zamowienia z widoku information_schema.KEY_COLUMN_USAGE.
SELECT *
FROM information_schema.KEY_COLUMN_USAGE
WHERE TABLE_NAME = 'zamowienia'
AND TABLE_SCHEMA = 'sklep';
Dodaj kolumnę „telefon” do klientów
Dodaj kolumnę telefon do tabeli klienci, aby przechowywać numer telefonu klienta.
ALTER TABLE klienci
ADD telefon VARCHAR(15);
Dodaj tabelę „kategorie” i połącz z produktami
Stwórz tabelę kategorie, a następnie dodaj do produkty kolumnę kategoria_id z kluczem obcym.
CREATE TABLE kategorie (
id INT AUTO_INCREMENT PRIMARY KEY,
nazwa VARCHAR(50)
);
ALTER TABLE produkty
ADD kategoria_id INT;
ALTER TABLE produkty
ADD CONSTRAINT fk_kategoria
FOREIGN KEY (kategoria_id) REFERENCES kategorie(id);
Usuń kolumnę „telefon” z klientów
Usuń kolumnę telefon z tabeli klienci, gdy nie jest już potrzebna.
ALTER TABLE klienci
DROP COLUMN telefon;
Usuń tabelę „kategorie”
Usuń relację z tabeli produkty do kategorie, a następnie usuń całą tabelę kategorie.
ALTER TABLE produkty
DROP FOREIGN KEY fk_kategoria;
ALTER TABLE produkty
DROP COLUMN kategoria_id;
DROP TABLE kategorie;
Zmień nazwę kolumny „imie” na „imie_klienta”
Zmień nazwę kolumny imie w tabeli klienci na imie_klienta, zachowując jej typ.
ALTER TABLE klienci
CHANGE imie imie_klienta VARCHAR(50);
Zmień typ kolumny „cena” na FLOAT
Zmień typ kolumny cena w tabeli produkty z DECIMAL(10,2) na FLOAT.
ALTER TABLE produkty
MODIFY cena FLOAT;
Zmień nazwę tabeli „produkty” na „asortyment”
Zmień nazwę tabeli produkty na asortyment, a następnie sprawdź, czy dane wciąż są dostępne.
RENAME TABLE produkty TO asortyment;
SELECT *
FROM asortyment
LIMIT 5;
Przywróć nazwę tabeli na „produkty”
Przywróć pierwotną nazwę tabeli, zmieniając asortyment ponownie na produkty.
RENAME TABLE asortyment TO produkty;
Zaktualizuj email klienta o ID 1
Zaktualizuj adres e‑mail klienta o id = 1 w tabeli klienci.
UPDATE klienci
SET email = 'jan@example.com'
WHERE id = 1;
Dodaj kolumnę „status” do zamówień
Dodaj kolumnę status do tabeli zamowienia z domyślną wartością 'oczekujące'.
ALTER TABLE zamowienia
ADD status VARCHAR(20) DEFAULT 'oczekujące';
Zmień długość kolumny „nazwisko”
Zwiększ długość kolumny nazwisko w tabeli klienci do 80 znaków.
ALTER TABLE klienci
MODIFY nazwisko VARCHAR(80);
Stwórz tabelę „pracownicy”
Utwórz tabelę pracownicy z informacjami o imieniu, stanowisku i pensji pracownika.
CREATE TABLE pracownicy (
id INT AUTO_INCREMENT PRIMARY KEY,
imie VARCHAR(50),
stanowisko VARCHAR(50),
pensja DECIMAL(8,2)
);
Usuń tabelę „pracownicy”
Usuń tabelę pracownicy z bazy danych.
DROP TABLE pracownicy;
Dodaj unikalność do kolumny „email”
Dodaj unikalne ograniczenie do kolumny email w tabeli klienci, aby zapobiec duplikatom.
ALTER TABLE klienci
ADD UNIQUE (email);
Dodaj indeks do kolumny „data_zamowienia”
Utwórz indeks idx_data na kolumnie data_zamowienia w tabeli zamowienia, aby przyspieszyć zapytania po dacie.
CREATE INDEX idx_data
ON zamowienia(data_zamowienia);
Usuń indeks „idx_data”
Usuń indeks idx_data z tabeli zamowienia.
DROP INDEX idx_data
ON zamowienia;
Zmień nazwę kolumny „nazwisko” na „nazwisko_klienta”
Zmień nazwę kolumny nazwisko na nazwisko_klienta w tabeli klienci.
ALTER TABLE klienci
CHANGE nazwisko nazwisko_klienta VARCHAR(80);
Zadanie końcowe: zaprojektuj tabelę „opinie”
Stwórz tabelę opinie z ocenami klientów dla produktów oraz powiąż ją relacjami z tabelami klienci i produkty.
CREATE TABLE opinie (
id INT AUTO_INCREMENT PRIMARY KEY,
klient_id INT,
produkt_id INT,
ocena INT,
komentarz TEXT,
FOREIGN KEY (klient_id) REFERENCES klienci(id),
FOREIGN KEY (produkt_id) REFERENCES produkty(id)
);