Jak dodać kolumnę w tabeli w SQL
Wprowadzenie
- Aby dodać kolumnę do już utworzonej tabeli, należy użyć polecenia ALTER wraz z klauzulą ADD.
- Jeśli w zapytaniu nie określono, gdzie ma zostać dodana nowa kolumna, to domyślnie zostanie ona dodana jako ostatnia kolumna.
- Można również dodać nową kolumnę na pierwszej lub nawet po określonej kolumnie już utworzonej tabeli.
- Możesz dodać jedną kolumnę lub więcej niż jedną kolumnę naraz, używając pojedynczego zapytania SQL.
(A). Dodanie nowej kolumny na końcu istniejącej tabeli
Składnia:
ALTER TABLE tablename ADD (ColumnName datatype);
gdzie ,
- Nazwa tabeli to nazwa już istniejącej tabeli, do której musisz dodać nową kolumnę.
- Nazwa_kolumny to nazwa kolumny, która ma zostać dodana do już istniejącej tabeli.
Przykład:
Najpierw utworzymy bazę danych o nazwie „studentdb ”. Następnie w tej bazie utworzymy tabelę „student” i wstawimy do niej rekordy. W kolejnych przykładach rozważymy tę samą bazę danych i tę samą tabelę.
Teraz dodamy nową kolumnę „Miasto” do istniejącej tabeli.
mysql> USE studentdb; Database changed mysql> SELECT *FROM student; +---------+-----------+-----------+-------------+ | Stud_ID | Stud_Name | Course_ID | Course_Name | +---------+-----------+-----------+-------------+ | 1 | Prajakta | 101 | DBMS | | 2 | Shweta | 102 | CN | | 3 | Nikita | 103 | OS | | 4 | Ankita | 104 | C | +---------+-----------+-----------+-------------+ 4 rows in set (0.00 sec) mysql> ALTER TABLE student ADD (City VARCHAR(20)); Query OK, 4 rows affected (0.29 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql> SELECT *FROM student; +---------+-----------+-----------+-------------+------+ | Stud_ID | Stud_Name | Course_ID | Course_Name | City | +---------+-----------+-----------+-------------+------+ | 1 | Prajakta | 101 | DBMS | NULL | | 2 | Shweta | 102 | CN | NULL | | 3 | Nikita | 103 | OS | NULL | | 4 | Ankita | 104 | C | NULL | +---------+-----------+-----------+-------------+------+ 4 rows in set (0.00 sec)
Nowa kolumna „Miasto” została dodana do istniejącej tabeli uczniów. Ponieważ w zapytaniu nie określiliśmy, gdzie ma zostać dodane, więc domyślnie jest ono dodawane jako ostatnia kolumna.
(B)Dodawanie więcej niż jednej kolumny do istniejącej tabeli
Składnia:
ALTER TABLE tablename ADD (ColumnName1 datatype, ColumnName2 datatype);
Przykład:
Teraz dodamy dwie nowe kolumny „Miasto” i „Znaki” do istniejącej tabeli za pomocą jednego zapytania.
mysql> USE studentdb;
Wyjście:
Database changed mysql> SELECT *FROM student; +---------+-----------+-----------+-------------+ | Stud_ID | Stud_Name | Course_ID | Course_Name | +---------+-----------+-----------+-------------+ | 1 | Prajakta | 101 | DBMS | | 2 | Shweta | 102 | CN | | 3 | Nikita | 103 | OS | | 4 | Ankita | 104 | C | +---------+-----------+-----------+-------------+ 4 rows in set (0.00 sec) mysql> ALTER TABLE student ADD (City VARCHAR(20),Marks INT); Query OK, 4 rows affected (0.40 sec) mysql> SELECT *FROM student;
Wyjście:
+---------+-----------+-----------+-------------+------+-------+ | Stud_ID | Stud_Name | Course_ID | Course_Name | City | Marks | +---------+-----------+-----------+-------------+------+-------+ | 1 | Prajakta | 101 | DBMS | NULL | NULL | | 2 | Shweta | 102 | CN | NULL | NULL | | 3 | Nikita | 103 | OS | NULL | NULL | | 4 | Ankita | 104 | C | NULL | NULL | +---------+-----------+-----------+-------------+------+-------+ 4 rows in set (0.00 sec)
Do istniejącej tabeli uczniów dodano nowe kolumny „Miasto” i „Znaki”. Ponieważ w zapytaniu nie określiliśmy, gdzie ma zostać dodane, więc domyślnie obie kolumny są dodawane na końcu za pomocą jednego zapytania.
(C) Dodanie kolumny na pierwszej pozycji istniejącej tabeli
Składnia :
ALTER TABLE tablename ADD ColumnName datatype FIRST;
Przykład: Teraz dodamy nową kolumnę „Sr_No” do istniejącej tabeli jako pierwszą kolumnę.
mysql> USE studentdb;
Wyjście:
Database changed mysql> SELECT *FROM student; +---------+-----------+-----------+-------------+ | Stud_ID | Stud_Name | Course_ID | Course_Name | +---------+-----------+-----------+-------------+ | 1 | Prajakta | 101 | DBMS | | 2 | Shweta | 102 | CN | | 3 | Nikita | 103 | OS | | 4 | Ankita | 104 | C | +---------+-----------+-----------+-------------+ 4 rows in set (0.00 sec) mysql> ALTER TABLE student ADD Sr_No INT FIRST;
Wyjście:
Query OK, 4 rows affected (0.24 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql> SELECT *FROM student;
Wyjście:
+-------+---------+-----------+-----------+-------------+ | Sr_No | Stud_ID | Stud_Name | Course_ID | Course_Name | +-------+---------+-----------+-----------+-------------+ | NULL | 1 | Prajakta | 101 | DBMS | | NULL | 2 | Shweta | 102 | CN | | NULL | 3 | Nikita | 103 | OS | | NULL | 4 | Ankita | 104 | C | +-------+---------+-----------+-----------+-------------+ 4 rows in set (0.00 sec)
Nowa kolumna „Sr_No” została dodana do istniejącej tabeli uczniów. Ponieważ w zapytaniu określiliśmy słowo kluczowe „FIRST”, więc „Sr_No” jest dodawane jako pierwsza kolumna.
(D) Dodanie nowej kolumny po określonej kolumnie istniejącej tabeli
Składnia:
ALTER TABLE tablename ADD ColumnName datatype AFTER column_name;
Przykład:
Teraz dodamy nową kolumnę „Znaki” do istniejącej tabeli po „Nazwa_kursu”.
mysql> USE studentdb;
Wyjście:
Database changed mysql> SELECT *FROM student;
Wyjście:
+---------+-----------+-----------+-------------+------+ | Stud_ID | Stud_Name | Course_ID | Course_Name | City | +---------+-----------+-----------+-------------+------+ | 1 | Prajakta | 101 | DBMS | NULL | | 2 | Shweta | 102 | CN | NULL | | 3 | Nikita | 103 | OS | NULL | | 4 | Ankita | 104 | C | NULL | +---------+-----------+-----------+-------------+------+ 4 rows in set (0.00 sec) mysql> ALTER TABLE student ADD Marks INT AFTER Course_Name;
Wyjście :
Query OK, 4 rows affected (0.28 sec) Records: 4 Duplicates: 0 Warnings: 0
mysql> SELECT *FROM student;
Wyjście:
+---------+-----------+-----------+-------------+-------+------+ | Stud_ID | Stud_Name | Course_ID | Course_Name | Marks | City | +---------+-----------+-----------+-------------+-------+------+ | 1 | Prajakta | 101 | DBMS | NULL | NULL | | 2 | Shweta | 102 | CN | NULL | NULL | | 3 | Nikita | 103 | OS | NULL | NULL | | 4 | Ankita | 104 | C | NULL | NULL | +---------+-----------+-----------+-------------+-------+------+ 4 rows in set (0.00 sec)
Nowa kolumna „Znaki” zostaje dodana do istniejącej tabeli uczniów. Ponieważ w zapytaniu podaliśmy słowo kluczowe „AFTER” z nazwą kolumny, po której ma zostać dodana nowa kolumna. Dlatego „Znaki” są dodawane po „Nazwie_kursu”.