Database
 sql >> Database >  >> RDS >> Database

Come eliminare la colonna nella tabella

Introduzione

  • In SQL, a volte è necessario eliminare una colonna di una tabella.
  • L'uso di ALTER TABLE comando con DROP COLUMN clausola servirà allo scopo di eliminare/rimuovere una colonna da una tabella.
  • È possibile rimuovere colonne singole o multiple da una tabella.

1. Elimina una singola colonna da una tabella

Per eliminare una singola colonna della tabella, utilizzare la sintassi riportata di seguito:

ALTER TABLE TableName DROP COLUMN ColumnName;

Ecco,

  • TableName è il nome della tabella la cui colonna deve essere eliminata.
  • ColumnName dopo la clausola DROP COLUMN è il nome della colonna da eliminare.

Esempio:

Considera un database con il nome "employee_db" con una tabella "employee" creata al suo interno. In questo argomento, considereremo questa tabella e database per tutti gli esempi successivi:

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)

Qui abbiamo selezionato il database già creato con il comando 'USE employee_db'. Il comando "DESC dipendente" descrive la struttura della tabella "dipendente". Quindi abbiamo utilizzato il comando SELECT per visualizzare la tabella employee creata in employee_db.

Ora scriveremo una query per eliminare una colonna contenente la città dei dipendenti nella tabella "dipendente" .

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

Il comando ALTER TABLE viene utilizzato sulla tabella dei dipendenti con la clausola DROP COLUMN su 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)

Quando applichiamo nuovamente il comando DESC sulla tabella "dipendente" subito dopo aver applicato il comando ALTER scritto sopra, ora possiamo vedere che Emp_City non è elencato nei risultati. Questo mostra che la colonna denominata Emp_City è ora eliminata dalla tabella dei dipendenti.

Abbiamo anche usato di nuovo il comando SELECT. Nei risultati del comando SELECT, da tutti i record vengono rimossi i valori contenuti in Emp_City.

2. Elimina più colonne da una tabella

Per eliminare più di una colonna della tabella, utilizzare la sintassi riportata di seguito:

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

Ecco,

Dobbiamo specificare tutti i nomi di colonna che devono essere rimossi, con clausola DROP COLUMN.

Esempio:

Per prima cosa vedremo la struttura della tabella dei dipendenti e i record presenti in essa.

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)

Qui abbiamo selezionato il database già creato con il comando 'USE employee_db'. Il comando "DESC dipendente" descrive la struttura della tabella "dipendente". Quindi abbiamo utilizzato il comando SELECT per visualizzare la tabella employee creata in employee_db.

Ora scriveremo una query per eliminare una colonna contenente lo stipendio del dipendente e il numero di telefono del dipendente nella tabella "dipendente".

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

Il comando ALTER TABLE viene utilizzato sulla tabella dei dipendenti con la clausola DROP COLUMN su Emp_Salary e 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)

Quando applichiamo nuovamente il comando DESC sulla tabella "dipendente" subito dopo aver applicato il comando ALTER scritto sopra, possiamo vedere che Emp_Salary e Emp_PhoneNo non sono elencati nei risultati. Questo mostra che la colonna denominata come Emp_Salary e Emp_PhoneNo è ora eliminata dalla tabella dei dipendenti. Quindi abbiamo utilizzato di nuovo anche il comando SELECT. Nei risultati del comando SELECT, da tutti i record vengono rimossi i valori contenuti in Emp_Salary e Emp_PhoneNo.