MYSQL – ZMIEŃ, USUŃ, ZMIEŃ NAZWĘ, MODYFIKUJ
Co to jest polecenie ALTER?
Jak to się mówi Tylko zmiana jest stała
Z biegiem czasu zmieniają się także wymagania biznesowe. Wraz ze zmianą wymagań biznesowych, projekty baz danych również wymagają zmian.
MySQL zapewnia ZMIANA funkcja, która nam pomaga uwzględnić zmiany w już istniejącym projekcie bazy danych.
Komenda alter służy do modyfikowania istniejącej bazy danych, tabeli, widoku lub innych obiektów bazy danych, które mogą wymagać zmian w trakcie cyklu życia bazy danych.
Załóżmy, że ukończyliśmy projekt bazy danych i został on wdrożony. Użytkownicy naszych baz danych korzystają z niej i nagle zdają sobie sprawę, że niektóre istotne informacje zostały pominięte w fazie projektowania. Nie chcą stracić istniejących danych, ale chcą po prostu uwzględnić nowe informacje. Polecenie alter przydaje się w takich sytuacjach. Możemy użyć polecenia alter, aby zmienić typ danych pola z ciągu znaków na numeryczny, zmienić nazwę pola na nową, a nawet dodać nową kolumnę w tabeli.
Zmień – składnia
Poniżej przedstawiono podstawową składnię służącą do dodania kolumny do już istniejącej tabeli
ALTER TABLE `table_name` ADD COLUMN `column_name` `data_type`;
TUTAJ
- „ZMIEŃ TABELĘ „nazwa_tabeli”” to polecenie, które mówi MySQL serwer, aby zmodyfikował tabelę o nazwie `nazwa_tabeli`.
- „DODAJ KOLUMNĘ `nazwa_kolumny` `typ_danych`” to polecenie, które mówi MySQL serwer, aby dodać nową kolumnę o nazwie „nazwa_kolumny” z typem danych „typ_danych”.
Załóżmy, że Myflix wprowadził rozliczenia i płatności online. W tym celu poproszono nas o dodanie pola dla numeru karty kredytowej w naszej tabeli members. Możemy użyć polecenia ALTER, aby to zrobić. Najpierw przyjrzyjmy się strukturze tabeli members, zanim wprowadzimy jakiekolwiek zmiany. Skrypt pokazany poniżej pomaga nam to zrobić.
SHOW COLUMNS FROM `members`;
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
full_names | varchar(350) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
Możemy użyć skryptu pokazanego poniżej, aby dodać nowe pole do tabeli członków.
ALTER TABLE `members` ADD COLUMN `credit_card_number` VARCHAR(25);
Wykonanie powyższego skryptu w MySQL przeciwko Myflixdb dodaje nową kolumnę o nazwie credit card number do tabeli members z typem danych VARCHAR. Wykonanie skryptu show columns daje nam następujące wyniki.
SHOW COLUMNS FROM `members`;
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
full_names | varchar(350) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL | |||
credit_card_number | varchar(25) | YES |
Jak widać po zwróconych wynikach, do tabeli członków dodano numer karty kredytowej. Dodanie nowej kolumny nie ma wpływu na dane zawarte w danych członków.
CO TO JEST POLECENIE UPUSZCZENIA?
Do tego służy polecenie DROP
- Usuń bazę danych z MySQL serwer
- Usuń obiekt (taki jak Tabela, Kolumna) z bazy danych.
Przyjrzyjmy się teraz praktycznym przykładom wykorzystania polecenia DROP.
W naszym poprzednim przykładzie polecenia Alter dodaliśmy do tabeli członków kolumnę o nazwie numer karty kredytowej.
Załóżmy, że funkcja rozliczeń online zajmie trochę czasu i chcemy USUNĄĆ kolumnę karty kredytowej
Możemy użyć następującego skryptu
ALTER TABLE `members` DROP COLUMN `credit_card_number`;
Wykonanie powyższego skryptu powoduje usunięcie kolumny numer_karty kredytowej z tabeli członków
Przyjrzyjmy się teraz kolumnom w tabeli członków, aby sprawdzić, czy nasza kolumna została usunięta.
SHOW COLUMNS FROM `members`;
Wykonanie powyższego skryptu w MySQL workbench z myflixdb daje nam następujące wyniki.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
full_names | varchar(350) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
Zauważ, że numer karty kredytowej został usunięty z listy pól.
UPUŚĆ TABELĘ
Składnia USUŃ tabelę z bazy danych jest następująca –
DROP TABLE `sample_table`;
Spójrzmy na przykład
DROP TABLE `categories_archive`;
Wykonanie powyższego skryptu spowoduje usunięcie tabeli o nazwie `categories_archive` z naszej bazy danych.
CO TO JEST POLECENIE ZMIANY NAZWY?
Do tego służy polecenie zmiany nazwy zmień nazwę istniejącego obiektu bazy danych (np. Tabela, Kolumna) na nową nazwę.
Zmiana nazwy tabeli nie powoduje utraty zawartych w niej danych.
Składnia:-
Polecenie rename ma następującą podstawową składnię.
RENAME TABLE `current_table_name` TO `new_table_name`;
Załóżmy, że chcemy zmienić nazwę tabeli movierentals na movie_rentals. Możemy w tym celu skorzystać ze skryptu pokazanego poniżej.
RENAME TABLE `movierentals` TO `movie_rentals`;
Wykonanie powyższego skryptu zmienia nazwę tabeli „movierentals” na „movie_rentals”.
Zmienimy teraz nazwę tabeli movie_rentals z powrotem na pierwotną nazwę.
RENAME TABLE `movie_rentals` TO `movierentals`;
ZMIEŃ SŁOWO KLUCZOWE
Opcja Zmień słowa kluczowe pozwala na to
- Zmień nazwę kolumny
- Zmień typ danych kolumny
- Zmień ograniczenia kolumn
Spójrzmy na przykład. Pole pełnych nazw w tabeli członków ma typ danych varchar i ma szerokość 150.
SHOW COLUMNS FROM `members`;
Wykonanie powyższego skryptu w MySQL workbench z myflixdb daje nam następujące wyniki.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
full_names | varchar(150) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
Załóżmy, że chcemy
- Zmień nazwę pola z „full_names” na „fullname
- Zmień go na typ danych char o szerokości 250
- Dodaj ograniczenie NOT NULL
Możemy to osiągnąć za pomocą polecenia zmiany w następujący sposób –
ALTER TABLE `members` CHANGE COLUMN `full_names` `fullname` char(250) NOT NULL;
Wykonanie powyższego skryptu w MySQL workbench względem myflixdb, a następnie wykonanie powyższego skryptu show columns daje następujące wyniki.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
fullnames | char(250) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
ZMIEŃ SŁOWO KLUCZOWE
Słowo kluczowe MODIFY pozwala na to
- Zmodyfikuj typ danych kolumny
- Modyfikuj wiązania kolumn
W powyższym przykładzie CHANGE musieliśmy zmienić nazwę pola i inne szczegóły. Pominięcie nazwy pola w instrukcji CHANGE spowoduje wygenerowanie błędu. Załóżmy, że interesuje nas tylko zmiana typu danych i ograniczeń pola bez wpływania na nazwę pola, możemy w tym celu użyć słowa kluczowego MODIFY.
Poniższy skrypt zmienia szerokość pola „fullname” z 250 na 50.
ALTER TABLE `members`MODIFY `fullname` char(50) NOT NULL;
Wykonanie powyższego skryptu w MySQL workbench względem myflixdb, a następnie wykonanie powyższego skryptu show columns daje wyniki pokazane poniżej.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
fullnames | char(50) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
PO SŁOWIE KLUCZOWYM
Załóżmy, że chcemy dodać nową kolumnę w określonej pozycji w tabeli.
Polecenie alter możemy używać razem ze słowem kluczowym AFTER.
Poniższy skrypt dodaje „data_rejestracji” zaraz po dacie urodzenia w tabeli członków.
ALTER TABLE `members` ADD `date_of_registration` date NULL AFTER `date_of_birth`;
Wykonanie powyższego skryptu w MySQL workbench względem myflixdb, a następnie wykonanie powyższego skryptu show columns daje wyniki pokazane poniżej.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
fullnames | char(50) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
date_of_registration | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
Podsumowanie
- Komendy alter używamy, gdy chcemy zmodyfikować bazę danych lub dowolny obiekt zawarty w bazie danych.
- Polecenie drop służy do usuwania baz danych z MySQL serwer lub obiektów w bazie danych.
- Polecenie rename służy do zmiany nazwy tabeli na nową nazwę tabeli.
- Słowo kluczowe Change umożliwia zmianę nazwy kolumny, typu danych i ograniczeń
- Modyfikuj słowo kluczowe umożliwia modyfikowanie typu danych kolumny i ograniczeń
- Słowo kluczowe After służy do określenia pozycji kolumny w tabeli