Tworzenie bazy danych i tabel
Utwórz bazę danych sklep oraz tabele: klienci, produkty i zamowienia z odpowiednimi kluczami głównymi i obcymi.
CREATE DATABASE sklep;
USE sklep;
CREATE TABLE klienci (
id INT AUTO_INCREMENT PRIMARY KEY,
imie VARCHAR(50),
nazwisko VARCHAR(50)
);
CREATE TABLE produkty (
id INT AUTO_INCREMENT PRIMARY KEY,
nazwa VARCHAR(100),
cena DECIMAL(10,2)
);
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)
);
Analiza struktury
Wyświetl strukturę tabeli klienci oraz relacje w tabeli zamowienia korzystając z information_schema.
DESCRIBE klienci;
SELECT *
FROM information_schema.KEY_COLUMN_USAGE
WHERE TABLE_NAME = 'zamowienia'
AND TABLE_SCHEMA = 'sklep';
Rozbudowa bazy danych
Dodaj kolumnę email do tabeli klienci oraz utwórz tabelę dostawy powiązaną z tabelą zamowienia.
ALTER TABLE klienci
ADD email VARCHAR(100);
CREATE TABLE dostawy (
id INT AUTO_INCREMENT PRIMARY KEY,
zamowienie_id INT,
data_dostawy DATE,
FOREIGN KEY (zamowienie_id) REFERENCES zamowienia(id)
);
Usuwanie elementów
Usuń kolumnę cena z tabeli produkty oraz tabelę dostawy.
ALTER TABLE produkty
DROP COLUMN cena;
DROP TABLE dostawy;
Modyfikowanie struktury i danych
Zmień nazwę kolumny imie na imie_klienta i zaktualizuj dane klienta o id = 1, ustawiając adres e‑mail.
ALTER TABLE klienci
CHANGE imie imie_klienta VARCHAR(50);
UPDATE klienci
SET email = 'jan.kowalski@example.com'
WHERE id = 1;
Zmiana typu kolumny
Zmień typ kolumny nazwisko w tabeli klienci z VARCHAR(50) na VARCHAR(100), aby umożliwić dłuższe nazwiska.
ALTER TABLE klienci
MODIFY COLUMN nazwisko VARCHAR(100);
Dodawanie i usuwanie klucza obcego
Dodaj klucz obcy w tabeli zamowienia, wiążący kolumnę klient_id z tabelą klienci, a następnie usuń ten klucz obcy.
-- dodanie klucza obcego (jeśli wcześniej go nie było)
ALTER TABLE zamowienia
ADD CONSTRAINT fk_zamowienia_klienci
FOREIGN KEY (klient_id) REFERENCES klienci(id);
-- usunięcie klucza obcego
ALTER TABLE zamowienia
DROP FOREIGN KEY fk_zamowienia_klienci;
Zmiana nazwy tabeli
Zmień nazwę tabeli klienci na klienci_sklepu, a następnie sprawdź, czy struktura i dane zostały zachowane.
RENAME TABLE klienci TO klienci_sklepu;
DESCRIBE klienci_sklepu;
SELECT *
FROM klienci_sklepu
LIMIT 5;