Database
 sql >> Baza danych >  >> RDS >> Database

Jak usunąć kolumnę w tabeli

Wprowadzenie

  • W SQL czasami wymagane jest usunięcie kolumny tabeli.
  • Korzystanie z ALTER TABLE polecenie z DROP COLUMN klauzula posłuży do usunięcia/usunięcia kolumny z tabeli.
  • Możliwe jest usunięcie zarówno jednej, jak i wielu kolumn z tabeli.

1. Usuń pojedynczą kolumnę z tabeli

Aby usunąć pojedynczą kolumnę tabeli, użyj składni podanej poniżej:

ALTER TABLE TableName DROP COLUMN ColumnName;

Tutaj

  • TableName to nazwa tabeli, której kolumna ma zostać usunięta.
  • ColumnName po klauzuli DROP COLUMN jest nazwą kolumny, która ma zostać usunięta.

Przykład:

Rozważ bazę danych o nazwie „pracownik_db” z utworzoną w niej tabelą „pracownik”. W tym temacie rozważymy tę tabelę i bazę danych dla wszystkich kolejnych przykładów:

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)

Tutaj wybraliśmy już utworzoną bazę danych za pomocą polecenia „UŻYJ pracownika_db”. Polecenie „Pracownik DESC” opisuje strukturę tabeli „pracownik”. Następnie użyliśmy polecenia SELECT, aby wyświetlić tabelę pracowników utworzoną w pliku worker_db.

Teraz napiszemy zapytanie, aby usunąć kolumnę zawierającą miasto pracownika w tabeli „pracownik” .

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

Polecenie ALTER TABLE jest używane na stole pracowników z klauzulą ​​DROP COLUMN w 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)

Kiedy ponownie zastosujemy polecenie DESC do tabeli „pracownik” zaraz po zastosowaniu polecenia ALTER opisanego powyżej, teraz widzimy, że Emp_City nie jest wymienione w wynikach. Pokazuje to, że kolumna o nazwie Emp_City została usunięta z tabeli pracowników.

Ponownie użyliśmy również polecenia SELECT. W wynikach polecenia SELECT ze wszystkich rekordów usuwane są wartości zawarte w Emp_City.

2. Usuń wiele kolumn z tabeli

Aby usunąć więcej niż jedną kolumnę tabeli, użyj składni podanej poniżej:

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

Tutaj

Musimy określić wszystkie nazwy kolumn, które mają zostać usunięte, za pomocą klauzuli DROP COLUMN.

Przykład:

Najpierw zobaczymy strukturę tabeli pracowników i znajdujące się w niej rekordy.

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)

Tutaj wybraliśmy już utworzoną bazę danych za pomocą polecenia „USE worker_db”. Polecenie „Pracownik DESC” opisuje strukturę tabeli „pracownik”. Następnie użyliśmy polecenia SELECT, aby wyświetlić tabelę pracowników utworzoną w pliku worker_db.

Teraz napiszemy zapytanie, aby usunąć kolumnę zawierającą wynagrodzenie pracownika i numer telefonu pracownika w tabeli „pracownik”.

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

Polecenie ALTER TABLE jest używane na stole pracowników z klauzulą ​​DROP COLUMN na Emp_Salary i 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)

Kiedy ponownie zastosujemy polecenie DESC na tabeli „pracownik” zaraz po zastosowaniu polecenia ALTER opisanego powyżej, widzimy, że Emp_Salary i Emp_PhoneNo nie są wymienione w wynikach. Pokazuje to, że kolumna o nazwach Emp_Salary i Emp_PhoneNo została usunięta z tabeli pracowników. Następnie ponownie użyliśmy polecenia SELECT. W wynikach polecenia SELECT ze wszystkich rekordów usuwane są wartości zawarte w Emp_Salary i 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. Jak połączyć bazę danych z Amazon VPC

  2. Zrozumienie czasów operatora planu wykonania

  3. Jak sztuczna inteligencja zmieni tworzenie i testowanie oprogramowania

  4. Jeśli używasz widoków indeksowanych i MERGE, przeczytaj to!

  5. Profilowanie danych:odkrywanie szczegółów danych