Как да добавя колона в таблица в SQL
Въведение
- За да добавите колона във вече създадена таблица, трябва да използвате командата ALTER заедно с клаузата ADD.
- Ако в заявката не е посочено къде да се добави новата колона, по подразбиране тя ще бъде добавена като последна колона.
- Можете също да добавите нова колона на първата или дори след конкретна колона от вече създадена таблица.
- Можете да добавите една колона или повече от една колони наведнъж, като използвате една SQL заявка.
(A). Добавяне на нова колона в последната от съществуваща таблицата
Синтаксис:
ALTER TABLE tablename ADD (ColumnName datatype);
къде ,
- Име на таблица е името на вече съществуваща таблица, към която трябва да добавите нова колона.
- Column_name е името на колоната, която трябва да бъде добавена към вече съществуваща таблица.
Пример:
Първо, ще създадем база данни с име „studentdb “. След това в тази база данни ще създадем таблица „студент“ и ще вмъкнем записи в таблицата. Ще разгледаме същата база данни и същата таблица за следващите примери.
Сега ще добавим нова колона „Град“ към съществуваща таблица.
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)
Нова колона „Град“ се добавя към съществуваща таблица за ученици. Тъй като в заявката не сме посочили къде да се добави, така че по подразбиране тя се добавя като последна колона.
(B) Добавяне на повече от една колона към съществуваща таблица
Синтаксис:
ALTER TABLE tablename ADD (ColumnName1 datatype, ColumnName2 datatype);
Пример:
Сега ще добавим две нови колони „Град“ и „Марки“ към съществуваща таблица с помощта на една заявка.
mysql> ИЗПОЛЗВАЙТЕ 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),Marks INT); Query OK, 4 rows affected (0.40 sec) mysql> SELECT *FROM student;
Изход:
+---------+-----------+-----------+-------------+------+-------+ | 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)
Нови колони „Град“ и „Отметки“ се добавят към съществуваща таблица за ученици. Тъй като в заявката не сме посочили къде трябва да се добави, така че по подразбиране и двете колони се добавят на последно с помощта на една заявка.
(C) Добавяне на колона на първа позиция на съществуваща таблица
Синтаксис :
ALTER TABLE tablename ADD ColumnName datatype FIRST;
Пример: Сега ще добавим нова колона „Sr_No“ към съществуваща таблица като първа колона.
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 Sr_No INT FIRST;
Изход:
Query OK, 4 rows affected (0.24 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql> SELECT *FROM student;
Изход:
+-------+---------+-----------+-----------+-------------+ | 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)
Нова колона „Sr_No“ се добавя към съществуваща таблица за ученици. Тъй като в заявката сме посочили ключова дума „FIRST“, така че „Sr_No“ се добавя като първа колона.
(D) Добавяне на нова колона след конкретна колона от съществуваща таблица
Синтаксис:
ALTER TABLE tablename ADD ColumnName datatype AFTER column_name;
Пример:
Сега ще добавим нова колона „Marks“ към съществуваща таблица след „Course_Name“ .
mysql> USE studentdb;
Изход:
Database changed 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) mysql> ALTER TABLE student ADD Marks INT AFTER Course_Name;
Изход :
Query OK, 4 rows affected (0.28 sec) Records: 4 Duplicates: 0 Warnings: 0
mysql> SELECT *FROM student;
Изход:
+---------+-----------+-----------+-------------+-------+------+ | 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)
Нова колона „Оценки“ се добавя към съществуваща таблица за ученици. Тъй като в заявката сме посочили ключова дума 'AFTER' с името на колоната, след което трябва да се добави новата колона. Следователно „Оценки“ се добавя след „Course_Name“.