Lekcja powtórzeniowa: CREATE TABLE i ALTER TABLE w MySQL

1. Wprowadzenie

W poprzednich lekcjach omówiliśmy dwa kluczowe polecenia języka SQL w MySQL:

  • CREATE TABLE – pozwala na tworzenie nowych tabel w bazie danych.
  • ALTER TABLE – umożliwia modyfikowanie istniejących tabel, np. dodawanie, usuwanie lub zmienianie kolumn oraz kluczy.

Dzisiaj powtórzymy te zagadnienia, aby utrwalić wiedzę i zwiększyć pewność w pracy z bazami danych.


2. Przypomnienie CREATE TABLE

Polecenie CREATE TABLE służy do definiowania struktury tabeli. Obejmuje ono:

  • Nazwę tabeli
  • Nazwy kolumn i ich typy danych
  • Klucze główne i obce
  • Ograniczenia (np. NOT NULL, UNIQUE, DEFAULT)

Przykład: Tworzenie tabeli z kluczem głównym i obcym

CREATE TABLE klienci (
    id INT AUTO_INCREMENT PRIMARY KEY,
    imie VARCHAR(50) NOT NULL,
    nazwisko VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE,
    data_rejestracji DATE DEFAULT CURRENT_DATE
);

CREATE TABLE zamowienia (
    id INT AUTO_INCREMENT PRIMARY KEY,
    id_klienta INT NOT NULL,
    kwota DECIMAL(10,2) NOT NULL,
    data_zamowienia DATE DEFAULT CURRENT_DATE,
    FOREIGN KEY (id_klienta) REFERENCES klienci(id) ON DELETE CASCADE
);

Powyższy kod tworzy tabelę klienci i zamowienia, gdzie id_klienta w tabeli zamowienia jest kluczem obcym odnoszącym się do id w tabeli klienci.


3. Przypomnienie ALTER TABLE

Polecenie ALTER TABLE służy do modyfikowania istniejących tabel, np.:

  • Dodawania nowych kolumn
  • Zmiany typu danych w kolumnach
  • Usuwania kolumn
  • Dodawania lub usuwania kluczy

Przykłady: Modyfikacja tabeli

Dodanie nowej kolumny:

ALTER TABLE klienci ADD telefon VARCHAR(20);

Zmiana typu danych kolumny:

ALTER TABLE klienci MODIFY telefon VARCHAR(15);

Zmiana nazwy kolumny:

ALTER TABLE klienci CHANGE telefon numer_telefonu VARCHAR(15);

Usunięcie kolumny:

ALTER TABLE klienci DROP COLUMN numer_telefonu;

Dodanie klucza obcego po utworzeniu tabeli:

ALTER TABLE zamowienia ADD CONSTRAINT fk_klient
FOREIGN KEY (id_klienta) REFERENCES klienci(id);

4. Ćwiczenia

Ćwiczenie 1:
Stwórz tabelę produkty, która zawiera kolumny:

  • id (klucz główny, autoinkrementacja)
  • nazwa (tekst, maks. 100 znaków, nie może być puste)
  • cena (wartość dziesiętna do dwóch miejsc po przecinku)
  • ilosc_w_magazynie (liczba całkowita, domyślnie 0)

Ćwiczenie 2:
Stwórz tabelę dostawcy, która zawiera kolumny:

  • id (klucz główny, autoinkrementacja)
  • nazwa (tekst, maks. 100 znaków, unikalna)
  • adres (tekst, maks. 255 znaków)
  • telefon (tekst, 15 znaków)

Ćwiczenie 3:
Dodaj do tabeli produkty kolumnę id_dostawcy, która będzie kluczem obcym odnoszącym się do id w tabeli dostawcy.

Ćwiczenie 4:
Zmień nazwę kolumny telefon w tabeli dostawcy na numer_kontaktowy.

Ćwiczenie 5:
Zmień typ danych kolumny cena w tabeli produkty, aby miała większą precyzję (np. DECIMAL(12,2)).

Ćwiczenie 6:
Usuń kolumnę ilosc_w_magazynie z tabeli produkty.

Ćwiczenie 7:
Dodaj nową kolumnę data_dostawy do tabeli dostawcy, która będzie przechowywać datę dostawy i domyślnie będzie miała wartość bieżącej daty.

Ćwiczenie 8:
Stwórz tabelę klienci i dodaj do niej co najmniej 5 kolumn, w tym klucz główny i kolumnę unikalną.

Ćwiczenie 9:
Dodaj do tabeli klienci klucz obcy odnoszący się do tabeli zamowienia i sprawdź, czy relacja działa poprawnie.

Ćwiczenie 10:
Usuń klucz obcy id_klienta z tabeli zamowienia, a następnie dodaj go ponownie z regułą ON DELETE SET NULL.


5. Podsumowanie

Dzisiejsza lekcja powtórzeniowa pozwoliła utrwalić podstawy tworzenia i modyfikowania tabel w MySQL. Dzięki ćwiczeniom uczniowie przećwiczą różne aspekty pracy z CREATE TABLE oraz ALTER TABLE, w tym dodawanie i usuwanie kolumn, zmienianie nazw, klucze obce i ograniczenia.