Stronę tą wyświetlono już: 5041 razy
Czasami zachodzi potrzeba zmodyfikowania pól tabeli, ustawienia typu, dodanie nowej kolumny czy też usunięcie. Do tego celu służy polecenie ALTER TABLE.
Dodawanie nowej kolumny danych do tabeli
Oto w jaki sposób dodaje się do tabeli nowe pola:
ALTER TABLE library.books ADD pages_nr INT NOT NULL;
Dodawanie większej liczby pól na raz:
ALTER TABLE library.books ADD nr1 INT NOT NULL, ADD nr2 NOT NULL;
Usuwanie kolumn danych z tabeli
Polecenie ALTER TABLE umożliwia również usuwanie pól tabeli. Oto przykład:
ALTER TABLE library.books DROP nr1, DROP nr2;
Uwaga! Wykonanie powyższej instrukcji nie ostrzega przed usunięciem, więc należy zachować ostrożność przy jego wykonywaniu.
Modyfikowanie pól tabeli
Załóżmy, że się rąbnąłem i chcę zmienić np. nazwę danego pola tabeli, wyglądać to będzie tak:
ALTER TABLE library.books CHANGE pages_nr pages INT NOT NULL;
Przetestowanie powyższych poleceń w konsoli:
Przebieg testowania powyższej funkcji na wcześniej utworzonej bazie danych library z tabelą books:
mysql -u root -p Enter password: ************** Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 172 Server version: 5.6.23 MySQL Community Server (GPL) Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql> ALTER TABLE library.books ADD pages_nr INT NOT NULL; Query OK, 0 rows affected (0.39 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> ALTER TABLE library.books ADD nr1 INT NOT NULL, ADD nr2 INT NOT NULL; Query OK, 0 rows affected (0.41 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> ALTER TABLE library.books DROP nr1, DROP nr2; Query OK, 0 rows affected (0.39 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> ALTER TABLE library.books CHANGE pages_nr pages INT NOT NULL; Query OK, 0 rows affected (0.09 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> DESCRIBE library.books; +--------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------+------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | title | char(255) | NO | | NULL | | | author | char(255) | NO | | NULL | | | pages | int(11) | NO | | NULL | | +--------+------------------+------+-----+---------+----------------+ 4 rows in set (0.02 sec) mysql>