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

Sådan sletter du kolonne i tabel

Introduktion

  • I SQL er det nogle gange nødvendigt at slette en kolonne i en tabel.
  • Brugen af ​​ALTER TABLE kommando med DROP COLUMN klausul tjener det formål at slette/fjerne en kolonne fra en tabel.
  • Det er muligt at fjerne enkelte såvel som flere kolonner fra en tabel.

1. Slet en enkelt kolonne fra en tabel

For at slette en enkelt kolonne i tabellen skal du bruge syntaksen nedenfor:

ALTER TABLE TableName DROP COLUMN ColumnName;

Her,

  • Tabelnavn er navnet på den tabel, hvis kolonne skal slettes.
  • Kolonnenavn efter DROP COLUMN-udtrykket er navnet på den kolonne, der skal slettes.

Eksempel:

Overvej en database med navnet "employee_db" med en tabel "employee" oprettet i den. I dette emne vil vi overveje denne tabel og database for alle de efterfølgende eksempler:

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)

Her har vi valgt den allerede oprettede database med kommandoen 'USE werknemer_db'. "DESC-medarbejder"-kommandoen beskriver strukturen af ​​'medarbejder'-tabellen. Så har vi brugt SELECT-kommandoen til at vise den medarbejdertabel, der er oprettet i medarbejder_db.

Nu vil vi skrive en forespørgsel for at slette en kolonne, der indeholder medarbejderby i tabellen "medarbejder" .

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

ALTER TABLE-kommandoen bruges på medarbejdertabellen med DROP COLUMN-klausulen på 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)

Når vi igen anvender DESC-kommandoen på 'employee'-tabellen lige efter at have anvendt ALTER-kommandoen skrevet ovenfor, kan vi nu se, at Emp_City ikke er opført i resultaterne. Dette viser, at kolonne med navnet Emp_City nu er slettet fra medarbejdertabellen.

Vi har også brugt SELECT-kommandoen igen. I resultaterne af SELECT-kommandoen fjernes værdierne i Emp_City fra alle posterne.

2. Slet flere kolonner fra en tabel

For at slette mere end én kolonne i tabellen skal du bruge syntaksen nedenfor:

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

Her,

Vi er nødt til at angive alle kolonnenavne, som skal fjernes, med DROP COLUMN-sætning.

Eksempel:

For det første vil vi se strukturen af ​​medarbejdertabellen og de poster, der findes i den.

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)

Her har vi valgt den allerede oprettede database med kommandoen 'USE werknemer_db'. "DESC-medarbejder"-kommandoen beskriver strukturen af ​​'medarbejder'-tabellen. Så har vi brugt SELECT-kommandoen til at vise den medarbejdertabel, der er oprettet i medarbejder_db.

Nu vil vi skrive en forespørgsel for at slette en kolonne, der indeholder medarbejderens løn og medarbejdertelefonnummer i tabellen "medarbejder".

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-kommandoen bruges på medarbejdertabellen med DROP COLUMN-klausulen på Emp_Salary og 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)

Når vi igen anvender DESC-kommandoen på 'employee'-tabellen lige efter at have anvendt ALTER-kommandoen skrevet ovenfor, kan vi se, at Emp_Salary og Emp_PhoneNo ikke er angivet i resultaterne. Dette viser, at kolonne navngivet som Emp_Salary og Emp_PhoneNo er nu slettet fra medarbejdertabellen. Så har vi også brugt SELECT-kommandoen igen. I resultaterne af SELECT-kommandoen fjernes værdierne i Emp_Salary og Emp_PhoneNo fra alle posterne.


  1. PostgreSQL – Sådan fjerner du gentagne værdier

  2. Søg efter en bestemt streng i Oracle clob-kolonnen

  3. Oracle Update hænger

  4. Sådan oprettes VARRAY'er som databaseobjekt i Oracle-databasen