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
email 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
email 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

  1. Usuń bazę danych z MySQL serwer
  2. 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
email 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

  1. Zmień nazwę kolumny
  2. Zmień typ danych kolumny
  3. 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
email varchar(255) YES NULL

Załóżmy, że chcemy

  1. Zmień nazwę pola z „full_names” na „fullname
  2. Zmień go na typ danych char o szerokości 250
  3. 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
email varchar(255) YES NULL

ZMIEŃ SŁOWO KLUCZOWE

Słowo kluczowe MODIFY pozwala na to

  1. Zmodyfikuj typ danych kolumny
  2. 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
email 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
email varchar(255) YES NULL
Note: The Hilighted row is added after date_of_birth cloumn

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