mysql alter table how add column table mysql
Dowiedz się o poleceniu MySQL ALTER Table, aby dodać / usunąć kolumnę, indeks, ograniczenie, zmienić nazwę tabeli itp. Z przykładami:
MySQL ALTER polecenie służy do modyfikowania istniejącej tabeli przez dodanie nowej kolumny lub usunięcie istniejącej kolumny lub zmianę typu danych kolumny.
Mówiąc najprościej, polecenie ALTER służy do modyfikowania struktury istniejącej tabeli poprzez dodawanie / usuwanie / aktualizację kolumn, zmianę nazw tabel itp.
Jest prawie niemożliwe, aby wszystkie wymagania dla danego schematu były dostępne z wyprzedzeniem, dlatego konieczne jest, aby istniał sposób na zaktualizowanie struktury tabeli w razie potrzeby.
Czego się nauczysz:
MySQL ALTER TABLE
SKŁADNIA:
ALTER TABLE table_name (alter_option1, alter_option2...)
Tutaj nazwa_tabeli to nazwa tabeli, na której chcemy wykonać akcję alter. Można określić jedną lub więcej opcji alter_options wraz z rozszerzeniem ALTER TABELA Komenda.
Przyjrzyjmy się różnym, najczęściej używanym alter_options udostępnianym przez MySQL.
Przykładowe dane i konfiguracja tabeli
W celu zrozumienia różnych zastosowań WIEK posłużymy się 2 przykładowymi tabelami - Pracownik i Dział o strukturze opisanej poniżej.
Dodajemy również fikcyjne dane do obu tabel.
Do tych tabel nie dodaliśmy żadnych ograniczeń typu KLUCZ OBCY. Nauczymy się dodawać je za pomocą polecenia ALTER w przykładach pokazanych w poniższych sekcjach, jak omówimy.
CREATE TABLE IF NOT EXISTS Employee_Department ( id INT, name VARCHAR(100), PRIMARY KEY (id) ); CREATE TABLE IF NOT EXISTS Employee ( name VARCHAR(100), id INT, address VARCHAR(100), department_id INT, PRIMARY KEY (id) ); INSERT INTO `employee_department`(`name`,`id`) VALUES ('Information Technology',1),('HR',2),('Finance',3),('Accounting',4),('Housekeeping',5 ),('Security',6),('Support',7),('Contract Staff',8),('Sales',9),('Management',10); INSERT INTO `employee` (`id`,`name`,`address`) VALUES (1,'Alyssa Villarreal','Ap #558-3012 Nulla Street'),(2,'Vanna Parks','103-986 Cursus Rd.'),(3,'Quyn Byers','770 Nulla Avenue'),(4,'Kristen Hall','Ap #622-9967 Nullam St.'),(5,'Chelsea Stone','6017 Elementum St.'),(6,'Sacha Sweeney','239-7402 Etiam St.'),(7,'Sophia Charles','799 -745 Tellus. Rd.'),(8,'Jennifer Joyner','5803 Ligula. Avenue'),(9,'Mercedes Head','Ap #375-7999 Facilisis Rd.'),(10,'Reagan Holland','P.O. Box 625, 5744 Proin Avenue');
Różne sposoby użycia polecenia ALTER tabeli
Plik MySQL ALTER Polecenie może być używane do wielu rzeczy, takich jak dodawanie / upuszczanie kolumny, dodawanie / usuwanie indeksu lub ograniczenia oraz aktualizowanie samej tabeli. Przyjrzyjmy się różnym scenariuszom z pomocą przykładów.
DODAJ KOLUMNĘ
Mając powyższe przykładowe tabele, dodajmy nową kolumnę o nazwie „id_działu” typu INT w tabeli Pracownik.
ALTER TABLE employee ADD COLUMN department_id INT
DROP COLUMN
Podobnie jak w przypadku dodawania nowej kolumny MySQL ALTER można użyć polecenia do usunięcia istniejącej kolumny z tabeli.
Spróbuj usunąć dodaną powyżej kolumnę id_działu z tabeli Pracownik.
ALTER TABLE employee DROP COLUMN department_id
Pamiętaj, że upuszczając kolumnę, wystarczy podać nazwę kolumny, a nie typ danych.
Aby sprawdzić, czy polecenie ALTER powiodło się, możesz uruchomić polecenie SHOW COLUMNS.
SHOW COLUMNS FROM employee;
Wynik:
Pole | Rodzaj | Zero | Klucz | Domyślna | Dodatkowy |
---|---|---|---|---|---|
Nazwa | varchar (100) | TAK | ZERO | ||
ID | int | TAK | ZERO | ||
adres | varchar (100) | TAK | ZERO |
W tabeli „Employee” nie ma teraz kolumny id_działu.
Dodaj / usuń ograniczenia
Zobaczmy teraz, jak można użyć ALTER do dodania ograniczenia.
Polecenie ALTER może służyć do dodawania lub usuwania ograniczeń dla istniejącej tabeli. Zobaczmy przykład ograniczenia klucza obcego, które należy dodać między dwiema tabelami.
Użyjemy polecenia ALTER, aby dodać OGRANICZENIE KLUCZA OBCEGO w tabeli Pracownik dla tabeli dział_pracownika.
Dodaj nową kolumnę o nazwie id_ działu w tabeli Pracownik.
ALTER TABLE employee ADD COLUMN department_id INT
Teraz dodaj ograniczenie KLUCZ OBCY.
ALTER TABLE employee ADD FOREIGN KEY (department_id) REFERENCES employee_department(id)
Aby sprawdzić to ograniczenie, możemy użyć polecenia SHOW, aby zobaczyć definicję tabeli.
SHOW CREATE TABLE employee;
Stół | Utwórz tabelę |
---|---|
pracownik | UTWÓRZ TABELĘ `pracownik` ( `name` varchar (100) DEFAULT NULL, `id` int DEFAULT NULL, `address` varchar (100) DEFAULT NULL, `id_działu` int DEFAULT NULL, KEY `id_działu` (` id_ działu`), OGRANICZENIE `pracownik_ibfk_1` KLUCZ OBCY (` identyfikator_ działu`) REFERENCJE `dział_pracownika` (` identyfikator`) ) ENGINE = DOMYŚLNY ZESTAW ZNAKÓW InnoDB = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
Przekonasz się, że w kolumnie id_działu utworzono ograniczenie KLUCZ OBCY.
Zobaczmy teraz, jak możemy użyć polecenia ALTER, aby usunąć ograniczenie klucza OBCEGO, które właśnie dodaliśmy.
ALTER TABLE employee DROP CONSTRAINT employee_ibfk_1
Pamiętaj, że będziesz musiał użyć nazwy utworzonego ograniczenia. Tak więc na powyższym wyjściu polecenia SHOW można zobaczyć, że nazwa ograniczenia utworzona przez MySQL dla ograniczenia FOREIGN KEY to „ pracownik_ibfk_1 ”
Uruchom polecenie POKAŻ, aby sprawdzić, czy wiązanie zostało usunięte, jak pokazano poniżej:
SHOW CREATE TABLE employee;
Stół | Utwórz tabelę |
---|---|
pracownik | UTWÓRZ TABELĘ `pracownik` ( `name` varchar (100) DEFAULT NULL, `id` int DEFAULT NULL, `address` varchar (100) DEFAULT NULL, `id_działu` int DEFAULT NULL, KEY `id_działu` (` id_ działu`) ) ENGINE = DOMYŚLNY ZESTAW ZNAKÓW InnoDB = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
Dodaj / upuść indeksy
MySQL ALTER Polecenie table umożliwia także tworzenie lub upuszczanie INDEKSÓW względem tabeli.
Mogą istnieć cztery różne typy indeksów, które można dodać za pomocą polecenia ALTER TABLE.
# 1) Dodaj KLUCZ PODSTAWOWY: To polecenie dodaje indeks klucza podstawowego do danej kolumny (lub kolumn)
W poniższym przykładzie użyj tabeli Employee i dodaj indeks PRIMARY KEY do kolumny „Id”.
ALTER TABLE employee ADD PRIMARY KEY (id);
# 2) Dodaj UNIQUE: Dodaje lub tworzy unikalny indeks dla danej kolumny (kolumn)
Załóżmy, że hipotetycznie chcemy po prostu mieć unikalne nazwy w tabeli. Dodaj UNIQUE indeks w kolumnie „name” w tabeli Employee, jak pokazano poniżej.
ALTER TABLE employee ADD UNIQUE (name);
# 3) Dodaj INDEKS: Dodaj zwykły indeks do dowolnej kolumny.
Dodaj normalny indeks w polu „adres” w tabeli Pracownik.
ALTER TABLE employee ADD INDEX (name);
# 4) Dodaj indeks FULLTEXT: Jest to specjalny typ indeksu, który służy do wyszukiwania tekstu.
Dodamy indeks FULLTEXT do wartości kolumny „name” w tabeli Employee.
ALTER TABLE employee ADD FULLTEXT(address);
Dla wszystkich powyższych 4 przykładów możemy uruchomić POKAŻ STWÓRZ TABELĘ polecenie, aby uzyskać szczegółowe informacje o utworzonych indeksach.
SHOW CREATE TABLE employee;
Stół | Utwórz tabelę |
---|---|
pracownik | UTWÓRZ TABELĘ `pracownik` ( `name` varchar (100) DEFAULT NULL, `id` int NOT NULL, `address` varchar (100) DEFAULT NULL, `id_działu` int DEFAULT NULL, KLUCZ PODSTAWOWY („id”), UNIQUE KEY `nazwa` (` nazwa`), KEY `nazwa_2` (` nazwa`), KLUCZ PEŁNOTEKSTOWY `adres` (` adres`) ) ENGINE = DOMYŚLNY ZESTAW ZNAKÓW InnoDB = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
W powyższym wyniku zauważysz, że wszystkie indeksy zostały utworzone zgodnie z wartością w kolumnie create_table.
Podobnie jak w przypadku tworzenia indeksów, polecenie ALTER może być również używane do usuwania istniejących indeksów z tabeli.
Przykład:
ALTER TABLE employee DROP INDEX address;
Powyższe polecenie spowoduje UPADNIENIE indeksu FULLTEXT, który dodaliśmy do pola adresu.
Zwróć uwagę na nazwę 'adres'. Powinno to być zgodne z nazwą indeksu w danych wyjściowych POKAŻ STWÓRZ TABELĘ Komenda.
Zmień domyślną wartość kolumny
ALTER TABELA Polecenie może być również użyte do ustawienia / zmiany wartości DOMYŚLNEJ dla istniejącej kolumny.
jakie jest najlepsze oprogramowanie do usuwania oprogramowania szpiegującego
Spójrzmy na przykład, w którym zmienimy domyślną wartość kolumny id_działu na „1”. Dzięki temu każde nowe wstawienie do tej tabeli zmieni / ustawi wartość kolumny id_działu na 1
ALTER TABLE employee ALTER department_id SET DEFAULT 1
Dodaj nowy rekord do tabeli Employee:
INSERT INTO `employee` (`id`,`name`,`address`) VALUES (11,'Saket Sharma','NB 23 Domlur')
A teraz zapytajmy o identyfikator działu dla tego rekordu i zobaczmy, jaka jest ustawiana wartość.
SELECT department_id FROM employee where id=11 //Output department_id 1
Zaktualizuj nazwę tabeli
MySQL ALTER table można również użyć do zaktualizowania nazwy istniejącej tabeli. Czasami wymagana jest aktualizacja struktury schematu, co może obejmować zmianę / aktualizację nazw tabel.
Przykład - Zmienimy nazwę tabeli „worker” na „Employee_details”.
ALTER TABLE table_name RENAME TO new_table_name;
Często Zadawane Pytania
Q # 1) Jak zmienić strukturę tabeli w MySQL?
Odpowiedź: MySQL udostępnia polecenie ALTER do zmiany struktury istniejącej tabeli w MySQL. Możesz wykonywać różne operacje za pomocą polecenia ALTER, np.
- Dodawanie / upuszczanie kolumny
- Dodawanie / usuwanie indeksu lub ograniczenia
- Zmiana nazwy tabeli
P # 2) Czy polecenie ALTER blokuje tabelę?
Odpowiedź: Może to zależeć od wersji - w przypadku starszych wersji MySQL Blokowanie tabeli podczas wykonywania instrukcji ALTER. Ogólnie rzecz biorąc, blokowanie nastąpiłoby, tj. Każdy odczyt i zapis podczas ALTER.
Na przykład - Dodanie nowej kolumny do istniejącej tabeli spowodowałoby dotknięcie wszystkich wierszy tabeli, do której dodawana jest kolumna, a gdy tabela ma liczbę rekordów w milionach, wykonanie operacji ALTER może zająć trochę czasu. W takim przypadku blokowanie podczas odczytów / zapisów byłoby kosztowne, ponieważ baza danych byłaby wyłączona i niedostępna.
P # 3) Czy możemy dodać więcej niż jedną kolumnę w tabeli ALTER?
Odpowiedź: Tak, polecenie ALTER może służyć do dodawania wielu kolumn w ramach jednej instrukcji.
Spójrzmy na przykład, w którym mamy tabelę Pracownik z kolumnami id, imię i nazwisko oraz adres i przypuśćmy, że chcemy dodać jeszcze 2 kolumny o nazwach - najwyższe_edukacja (typ varchar) i numer_telefonu (typ varchar)
ALTER TABLE employee ADD highest_education VARCHAR(50), ADD phone_number VARCHAR(20);
Rzućmy okiem na informacje o tabeli
SHOW COLUMNS FROM employee;
Wynik:
Pole | Rodzaj | Zero | Klucz | Domyślna | Dodatkowy |
---|---|---|---|---|---|
Nazwa | varchar (100) | TAK | ZJEDNOCZONY | ZERO | |
ID | int | NIE | PRI | ZERO | |
adres | varchar (100) | TAK | ZERO | ||
id_ działu | int | TAK | 1 | ||
najwyższe wykształcenie | varchar (50) | TAK | ZERO | ||
numer telefonu | varchar (20) | TAK | ZERO |
Na powyższym wyjściu widać kolumny, dodano najwyższe wykształcenie i numer telefonu.
Wniosek
W tym samouczku dowiedzieliśmy się o różnych zastosowaniach MySQL ALTER Tabela poleceń. ALTER to ważne polecenie, ponieważ może być używane do różnych celów, aby ZMIENIĆ strukturę istniejącej tabeli w MySQL.
Może być używany do takich rzeczy, jak - dodawanie / usuwanie kolumny, dodawanie / usuwanie indeksów lub ograniczeń, a także może być używany nawet do zmiany nazwy istniejącej tabeli.
Każdy, kto uczy się MySQL, powinien mieć dogłębną wiedzę na temat polecenia ALTER table, ponieważ jest ono używane głównie podczas faz konserwacji baz danych, w których konieczna jest zmiana istniejącego schematu tabeli.
rekomendowane lektury
- MySQL Tworzenie tabeli z przykładami
- MySQL Wstaw do tabeli - Wstaw składnię instrukcji i przykłady
- Typy danych MySQL | Jakie są różne typy danych w MySQL
- Podstawy ograniczenia klucza obcego MySQL z przykładami
- MySQL JOIN Tutorial: wewnętrzny, zewnętrzny, krzyżowy, lewy, prawy i własny
- MySQL Create Database - Jak utworzyć bazę danych w MySQL
- Top 40 najlepszych pytań i odpowiedzi do wywiadów MySQL (pytania 2021)
- Hash Table w C ++: Programy do implementacji Hash Table i Hash Maps