sql >> Database >  >> RDS >> Database

Hoe kolom in tabel te verwijderen

Inleiding

  • In SQL is het soms nodig om een ​​kolom van een tabel te verwijderen.
  • Het gebruik van ALTER TABLE commando met DROP COLUMN clausule zal dienen om een ​​kolom uit een tabel te verwijderen/verwijderen.
  • Het is mogelijk om zowel enkele als meerdere kolommen uit een tabel te verwijderen.

1. Een enkele kolom uit een tabel verwijderen

Gebruik de onderstaande syntaxis om een ​​enkele kolom van de tabel te verwijderen:

ALTER TABLE TableName DROP COLUMN ColumnName;

Hier,

  • TableName is de naam van de tabel waarvan de kolom moet worden verwijderd.
  • ColumnName na de DROP COLUMN-clausule is de naam van de kolom die moet worden verwijderd.

Voorbeeld:

Overweeg een database met de naam "employee_db" met een tabel "employee" erin gemaakt. In dit onderwerp zullen we deze tabel en database beschouwen voor alle volgende voorbeelden:

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)

Hier hebben we de reeds aangemaakte database geselecteerd met de opdracht 'USE employee_db'. Het commando “DESC werknemer” beschrijft de structuur van de tabel “werknemer”. Vervolgens hebben we het SELECT-commando gebruikt om de werknemerstabel weer te geven die is gemaakt in employee_db.

Nu gaan we een query schrijven om een ​​kolom met de plaats van de werknemer in de tabel 'werknemer' te verwijderen .

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

ALTER TABLE-opdracht wordt gebruikt op werknemerstabel met DROP COLUMN-clausule op 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)

Wanneer we het DESC-commando opnieuw toepassen op de 'employee'-tabel net na het toepassen van het hierboven geschreven ALTER-commando, kunnen we nu zien dat Emp_City niet in de resultaten wordt vermeld. Dit laat zien dat de kolom met de naam Emp_City nu is verwijderd uit de werknemerstabel.

We hebben ook weer het SELECT-commando gebruikt. In de resultaten van het SELECT-commando worden uit alle records de waarden in Emp_City verwijderd.

2. Verwijder meerdere kolommen uit een tabel

Gebruik de onderstaande syntaxis om meer dan één kolom van de tabel te verwijderen:

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

Hier,

We moeten alle kolomnamen specificeren die moeten worden verwijderd, met de DROP COLUMN-clausule.

Voorbeeld:

Ten eerste zullen we de structuur van de werknemerstabel en de daarin aanwezige records zien.

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)

Hier hebben we de reeds gemaakte database geselecteerd met de opdracht 'USE employee_db'. Het commando “DESC werknemer” beschrijft de structuur van de tabel “werknemer”. Vervolgens hebben we het SELECT-commando gebruikt om de werknemerstabel weer te geven die is gemaakt in employee_db.

Nu gaan we een verzoek schrijven om een ​​kolom met het salaris van de werknemer en het telefoonnummer van de werknemer in de tabel 'werknemer' te verwijderen.

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-opdracht wordt gebruikt op werknemerstabel met DROP COLUMN-clausule op Emp_Salary en 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)

Wanneer we het DESC-commando opnieuw toepassen op de 'employee'-tabel net na het toepassen van het hierboven geschreven ALTER-commando, kunnen we zien dat Emp_Salary en Emp_PhoneNo niet in de resultaten worden vermeld. Dit laat zien dat de kolom met de naam Emp_Salary en Emp_PhoneNo nu is verwijderd uit de werknemerstabel. Dan hebben we ook weer het SELECT-commando gebruikt. In de resultaten van het SELECT-commando worden uit alle records de waarden in Emp_Salary en Emp_PhoneNo verwijderd.


  1. Proactieve MySQL-bewaking (Developer Studio/Advisors Angle)

  2. PostgreSQL-serieel type toewijzen met Hibernate-annotaties

  3. Hoe het root-wachtwoord van MySQL of MariaDB in Linux te veranderen

  4. PostgreSQL LIKE prestatievariaties voor query's