Database
 sql >> база данни >  >> RDS >> Database

Как да изтриете колона в таблицата

Въведение

  • В SQL понякога е необходимо да се изтрие колона от таблица.
  • Използването на ALTER TABLE команда с DROP COLUMN клаузата ще служи за изтриване/премахване на колона от таблица.
  • Възможно е да премахнете една, както и множество колони от таблица.

1. Изтриване на една колона от таблица

За да изтриете една колона от таблицата, използвайте синтаксиса, даден по-долу:

ALTER TABLE TableName DROP COLUMN ColumnName;

Ето,

  • Име на таблица е името на таблицата, чиято колона трябва да бъде изтрита.
  • Име на колона след клаузата DROP COLUMN е името на колоната, която трябва да бъде изтрита.

Пример:

Помислете за база данни с име „employee_db“ с създадена в нея таблица „служител“. В тази тема ще разгледаме тази таблица и база данни за всички следващи примери:

mysql> USE employee_db;
Database changed
mysql> DESC employee;
+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| Emp_ID      | int(11)     | NO   | PRI | NULL    |       |
| Emp_Name    | varchar(20) | YES  |     | NULL    |       |
| Emp_Salary  | int(11)     | YES  |     | NULL    |       |
| Emp_Dept    | varchar(20) | YES  |     | NULL    |       |
| Emp_City    | varchar(20) | YES  |     | NULL    |       |
| Emp_PhoneNo | varchar(20) | YES  |     | NULL    |       |
+-------------+-------------+------+-----+---------+-------+
6 rows in set (0.07 sec)


mysql> SELECT *FROM employee;
+--------+----------+------------+------------+----------+-------------+
| Emp_ID | Emp_Name | Emp_Salary | Emp_Dept   | Emp_City | Emp_PhoneNo |
+--------+----------+------------+------------+----------+-------------+
|    101 | Ram      |      52000 | R&D        | Pune     | 8798654676  |
|    102 | Shyam    |      38000 | Finance    | Delhi    | 9898765687  |
|    103 | Anmol    |      61000 | Accounting | Mumbai   | 9087864532  |
|    104 | Abhishek |      69000 | Purchasing | Shimla   | 7678987534  |
|    105 | Rohit    |      53000 | HRM        | Ambala   | 8897865643  |
+--------+----------+------------+------------+----------+-------------+
5 rows in set (0.00 sec)

Тук сме избрали вече създадената база данни с командата „USE employee_db“. Командата „DESC служител“ описва структурата на таблицата „служител“. След това използвахме командата SELECT, за да покажем таблицата на служителите, създадена в employee_db.

Сега ще напишем заявка за изтриване на колона, съдържаща град на служителите в таблицата „служител“ .

mysql> ALTER TABLE employee DROP COLUMN Emp_City;
Query OK, 5 rows affected (0.30 sec)
Records: 5  Duplicates: 0  Warnings: 0

Командата ALTER TABLE се използва в таблицата на служителите с клауза DROP COLUMN в Emp_City.

mysql> DESC employee;
+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| Emp_ID      | int(11)     | NO   | PRI | NULL    |       |
| Emp_Name    | varchar(20) | YES  |     | NULL    |       |
| Emp_Salary  | int(11)     | YES  |     | NULL    |       |
| Emp_Dept    | varchar(20) | YES  |     | NULL    |       |
| Emp_PhoneNo | varchar(20) | YES  |     | NULL    |       |
+-------------+-------------+------+-----+---------+-------+
5 rows in set (0.02 sec)


mysql> SELECT *FROM employee;
+--------+----------+------------+------------+-------------+
| Emp_ID | Emp_Name | Emp_Salary | Emp_Dept   | Emp_PhoneNo |
+--------+----------+------------+------------+-------------+
|    101 | Ram      |      52000 | R&D        | 8798654676  |
|    102 | Shyam    |      38000 | Finance    | 9898765687  |
|    103 | Anmol    |      61000 | Accounting | 9087864532  |
|    104 | Abhishek |      69000 | Purchasing | 7678987534  |
|    105 | Rohit    |      53000 | HRM        | 8897865643  |
+--------+----------+------------+------------+-------------+
5 rows in set (0.00 sec)

Когато отново приложим командата DESC към таблицата „служител“ непосредствено след прилагането на написаната по-горе команда ALTER, сега можем да видим, че Emp_City не е посочен в резултатите. Това показва, че колоната с име Emp_City вече е изтрита от таблицата на служителите.

Също така използвахме отново командата SELECT. В резултатите от командата SELECT от всички записи се премахват стойностите, съдържащи се в Emp_City.

2. Изтрийте няколко колони от таблица

За да изтриете повече от една колона в таблицата, използвайте синтаксиса, даден по-долу:

ALTER TABLE TableName DROP COLUMN ColumnName1, DROP COLUMN ColumnName2,……ColumnNameN;

Ето,

Трябва да посочим всички имена на колони, които трябва да бъдат премахнати, с клауза DROP COLUMN.

Пример:

Първо, ще видим структурата на таблицата на служителите и записите, присъстващи в нея.

mysql> DESC employee;
+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| Emp_ID      | int(11)     | NO   | PRI | NULL    |       |
| Emp_Name    | varchar(20) | YES  |     | NULL    |       |
| Emp_Salary  | int(11)     | YES  |     | NULL    |       |
| Emp_Dept    | varchar(20) | YES  |     | NULL    |       |
| Emp_PhoneNo | varchar(20) | YES  |     | NULL    |       |
+-------------+-------------+------+-----+---------+-------+
5 rows in set (0.02 sec)


mysql> SELECT *FROM employee;
+--------+----------+------------+------------+-------------+
| Emp_ID | Emp_Name | Emp_Salary | Emp_Dept   | Emp_PhoneNo |
+--------+----------+------------+------------+-------------+
|    101 | Ram      |      52000 | R&D        | 8798654676  |
|    102 | Shyam    |      38000 | Finance    | 9898765687  |
|    103 | Anmol    |      61000 | Accounting | 9087864532  |
|    104 | Abhishek |      69000 | Purchasing | 7678987534  |
|    105 | Rohit    |      53000 | HRM        | 8897865643  |
+--------+----------+------------+------------+-------------+
5 rows in set (0.00 sec)

Тук сме избрали вече създадената база данни с командата ‘USE employee_db’. Командата „DESC служител“ описва структурата на таблицата „служител“. След това използвахме командата SELECT, за да покажем таблицата на служителите, създадена в employee_db.

Сега ще напишем заявка за изтриване на колона, съдържаща заплата на служител и телефонен номер на служител в таблицата „служител“.

mysql> ALTER TABLE employee DROP COLUMN Emp_Salary, DROP COLUMN Emp_PhoneNo;
Query OK, 5 rows affected (0.29 sec)
Records: 5  Duplicates: 0  Warnings: 0

Командата ALTER TABLE се използва в таблицата на служителите с клауза DROP COLUMN на Emp_Salary и Emp_PhoneNo.

mysql> DESC employee;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| Emp_ID   | int(11)     | NO   | PRI | NULL    |       |
| Emp_Name | varchar(20) | YES  |     | NULL    |       |
| Emp_Dept | varchar(20) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)
mysql> SELECT *FROM employee;
+--------+----------+------------+
| Emp_ID | Emp_Name | Emp_Dept   |
+--------+----------+------------+
|    101 | Ram      | R&D        |
|    102 | Shyam    | Finance    |
|    103 | Anmol    | Accounting |
|    104 | Abhishek | Purchasing |
|    105 | Rohit    | HRM        |
+--------+----------+------------+
5 rows in set (0.00 sec)

Когато отново приложим командата DESC към таблицата „служител“ непосредствено след прилагането на написаната по-горе команда ALTER, можем да видим, че Emp_Salary и Emp_PhoneNo не са посочени в резултатите. Това показва, че колоната с име Emp_Salary и Emp_PhoneNo вече е изтрита от таблицата на служителите. След това отново използвахме командата SELECT. В резултатите от командата SELECT от всички записи се премахват стойностите, съдържащи се в Emp_Salary и Emp_PhoneNo.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Оператори на T-SQL SET Част 2:INTERSECT и EXCEPT

  2. Минимално регистриране с INSERT...SELECT и бързо зареждане на контекст

  3. Дигитална трансформация:Всичко започва с мислене на данни

  4. Цели на редове, част 3:Anti Joins

  5. Разбиране на типове и формати на MapReduce