CO ROBI ALTER TABLE
Co robi ALTER TABLE w SQL?
1. Zmiana struktury tabeli
Jedną z podstawowych funkcji ALTER TABLE jest modyfikowanie struktury istniejącej tabeli. Umożliwia dodawanie, usuwanie lub zmianę kolumn, a także zmianę typów danych i ograniczeń. Na przykład:
ALTER TABLE users ADD COLUMN age INT;
ALTER TABLE users DROP COLUMN password;
ALTER TABLE users ALTER COLUMN name VARCHAR(50);
2. Dodawanie kluczy podstawowych i obcych
ALTER TABLE służy również do dodawania kluczy podstawowych i obcych, które zapewniają integralność danych. Klucze podstawowe jednoznacznie identyfikują każdy wiersz w tabeli, natomiast klucze obce łączą tabele i wymuszają spójność.
ALTER TABLE users ADD PRIMARY KEY (id);
ALTER TABLE orders ADD FOREIGN KEY (user_id) REFERENCES users(id);
3. Modyfikacja ograniczeń
Ograniczenia na poziomie kolumn pomagają w wymuszaniu integralności danych i ograniczaniu wartości, które mogą być przechowywane w danej kolumnie. ALTER TABLE umożliwia dodawanie, usuwanie lub zmianę istniejących ograniczeń.
ALTER TABLE users ADD UNIQUE INDEX (email);
ALTER TABLE orders ADD CHECK (quantity > 0);
ALTER TABLE products ALTER COLUMN price SET NOT NULL;
4. Zmiana nazwy tabeli i kolumn
ALTER TABLE pozwala również na zmianę nazwy tabeli lub kolumn, co może być przydatne w przypadku błędów ortograficznych lub konieczności zmiany nazewnictwa.
ALTER TABLE users RENAME TO customers;
ALTER TABLE customers RENAME COLUMN name TO fullname;
5. Zmiana opcji przechowywania
ALTER TABLE oferuje opcje przechowywania, które wpływają na wydajność zapytań. Można na przykład umożliwić kompresję, dodać indeksy częściowe lub zmienić sposób sortowania danych.
ALTER TABLE orders SET ROW_FORMAT=COMPRESSED;
ALTER TABLE products ADD PARTITION BY RANGE (category);
ALTER TABLE employees ORDER BY salary DESC;
Zakończenie
ALTER TABLE to potężne polecenie SQL, które umożliwia administratorom baz danych na modyfikowanie struktury i zachowania istniejących tabel. Poprzez dodawanie, usuwanie lub zmianę kolumn, kluczy, ograniczeń i opcji przechowywania, ALTER TABLE pozwala na dynamiczne dostosowywanie tabel do zmieniających się wymagań aplikacji.
Często zadawane pytania
- Co to jest ALTER TABLE?
- Polecenie SQL służące do modyfikowania struktury i zachowania tabel.
- Jak zmienić nazwę tabeli?
- Użyj składni "ALTER TABLE tableName RENAME TO nowaNazwa".
- Jak dodać kolumnę do tabeli?
- Użyj składni "ALTER TABLE tableName ADD COLUMN nowaKolumna typDanych".
- Jak dodać klucz podstawowy do tabeli?
- Użyj składni "ALTER TABLE tableName ADD PRIMARY KEY (kolumna1, kolumna2, …)".
- Jak włączyć kompresję dla tabeli?
- Użyj składni "ALTER TABLE tableName SET ROW_FORMAT=COMPRESSED".
Instrukcja ALTER TABLE w SQL
Instrukcja ALTER TABLE w języku SQL (Structured Query Language) umożliwia modyfikowanie istniejącej tabeli w bazie danych bez konieczności jej ponownego tworzenia. Dzięki niej można dodawać, usuwać lub modyfikować kolumny, zmieniać nazwę tabeli lub jej ograniczenia.
Dodawanie kolumny
Aby dodać kolumnę do tabeli, użyj następującej składni:
ALTER TABLE nazwa_tabeli ADD COLUMN nazwa_kolumny typ_danych;
W powyższym przykładzie "nazwa_tabeli" to nazwa tabeli, do której dodawana jest kolumna, "nazwa_kolumny" to nazwa nowej kolumny, a "typ_danych" to typ danych nowej kolumny.
Usuwanie kolumny
Aby usunąć kolumnę z tabeli, użyj następującej składni:
ALTER TABLE nazwa_tabeli DROP COLUMN nazwa_kolumny;
W powyższym przykładzie "nazwa_tabeli" to nazwa tabeli, z której usuwana jest kolumna, a "nazwa_kolumny" to nazwa kolumny do usunięcia.
Modyfikowanie kolumny
Aby zmodyfikować istniejącą kolumnę, taką jak zmiana jej nazwy, typu danych lub ograniczeń, użyj następującej składni:
ALTER TABLE nazwa_tabeli MODIFY COLUMN nazwa_kolumny nowy_typ_danych;
W powyższym przykładzie "nazwa_tabeli" to nazwa tabeli, w której modyfikowana jest kolumna, "nazwa_kolumny" to nazwa kolumny do modyfikacji, a "nowy_typ_danych" to nowy typ danych kolumny.
Zmiana nazwy tabeli
Aby zmienić nazwę tabeli, użyj następującej składni:
ALTER TABLE stara_nazwa_tabeli RENAME TO nowa_nazwa_tabeli;
W powyższym przykładzie "stara_nazwa_tabeli" to stara nazwa tabeli, a "nowa_nazwa_tabeli" to nowa nazwa tabeli.
Dodawanie ograniczenia
Aby dodać ograniczenie do tabeli, taką jak klucz główny, klucz obcy lub unikalny indeks, użyj następującej składni:
ALTER TABLE nazwa_tabeli ADD CONSTRAINT nazwa_ograniczenia typ_ograniczenia;
W powyższym przykładzie "nazwa_tabeli" to nazwa tabeli, do której dodawane jest ograniczenie, "nazwa_ograniczenia" to nazwa ograniczenia, a "typ_ograniczenia" to typ ograniczenia, takiego jak "PRIMARY KEY", "FOREIGN KEY" lub "UNIQUE INDEX".
Usuwanie ograniczenia
Aby usunąć ograniczenie z tabeli, użyj następującej składni:
ALTER TABLE nazwa_tabeli DROP CONSTRAINT nazwa_ograniczenia;
W powyższym przykładzie "nazwa_tabeli" to nazwa tabeli, z której usuwane jest ograniczenie, a "nazwa_ograniczenia" to nazwa ograniczenia do usunięcia.
Inne opcje
Instrukcja ALTER TABLE oferuje również kilka innych opcji, takich jak:
- Zmienianie opcji tabeli: Umożliwia zmianę opcji tabeli, takich jak "row_format" lub "engine".
- Dodawanie lub usuwanie partycji: Umożliwia dodawanie lub usuwanie partycji z partycjonowanej tabeli.
- Zmiana liczby kolumn w interleaved table: Umożliwia zmianę liczby kolumn w interleaved table.
- Zmiana kolejności kolumn: Umożliwia zmianę kolejności kolumn w tabeli.
Przykłady
Poniżej przedstawiono kilka przykładów użycia instrukcji ALTER TABLE:
- Dodanie kolumny "wiek" do tabeli "osoby":
ALTER TABLE osoby ADD COLUMN wiek INTEGER;
- Usuwanie kolumny "telefon" z tabeli "klienci":
ALTER TABLE klienci DROP COLUMN telefon;
- Zmiana typu danych kolumny "imie" na VARCHAR(50) w tabeli "osoby":
ALTER TABLE osoby MODIFY COLUMN imie VARCHAR(50);
- Zmiana nazwy tabeli "zamowienia" na "zlecenia":
ALTER TABLE zamowienia RENAME TO zlecenia;
- Dodanie klucza głównego do tabeli "produkty":
ALTER TABLE produkty ADD CONSTRAINT PK_ID PRIMARY KEY (id);
- Usuwanie klucza obcego do tabeli "zamowienia":
ALTER TABLE zamowienia DROP CONSTRAINT FK_Produkt;
Ograniczenia
Istnieją pewne ograniczenia związane z użyciem instrukcji ALTER TABLE:
- Niektóre modyfikacje mogą wymagać zablokowania tabeli, co może wpłynąć na wydajność.
- Niektóre modyfikacje mogą nie być odwracalne, dlatego ważne jest wykonanie kopii zapasowej tabeli przed wprowadzeniem zmian.
- Niektóre zmiany mogą wymagać modyfikacji innych obiektów bazy danych, takich jak procedury składowane lub widoki.