Pengantar
- Dalam SQL, terkadang diperlukan untuk menghapus kolom dari sebuah tabel.
- Penggunaan ALTER TABLE perintah dengan DROP COLUMN klausa akan berfungsi untuk menghapus/menghapus kolom dari tabel.
- Dimungkinkan untuk menghapus satu atau beberapa kolom dari sebuah tabel.
1. Menghapus satu kolom dari tabel
Untuk menghapus satu kolom tabel, gunakan sintaks yang diberikan di bawah ini:
ALTER TABLE TableName DROP COLUMN ColumnName;
Di sini,
- NamaTabel adalah nama tabel yang kolomnya akan dihapus.
- ColumnName setelah klausa DROP COLUMN adalah nama kolom yang akan dihapus.
Contoh:
Pertimbangkan database dengan nama "employee_db" dengan tabel 'employee' dibuat di dalamnya. Dalam topik ini, kami akan mempertimbangkan tabel dan database ini untuk semua contoh berikut:
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)
Di sini, kami telah memilih database yang sudah dibuat dengan perintah 'USE employee_db'. Perintah "DESC employee" menjelaskan struktur tabel 'employee'. Kemudian kita telah menggunakan perintah SELECT untuk menampilkan tabel karyawan yang dibuat menjadi employee_db.
Sekarang, kami akan menulis kueri untuk menghapus kolom yang berisi kota karyawan di tabel 'karyawan' .
mysql> ALTER TABLE employee DROP COLUMN Emp_City;
Query OK, 5 rows affected (0.30 sec)
Records: 5 Duplicates: 0 Warnings: 0
Perintah ALTER TABLE digunakan pada tabel karyawan dengan klausa DROP COLUMN di 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)
Ketika kita kembali menerapkan perintah DESC pada tabel 'karyawan' tepat setelah menerapkan perintah ALTER yang tertulis di atas, sekarang kita dapat melihat bahwa Emp_City tidak terdaftar dalam hasil. Ini menunjukkan bahwa kolom bernama Emp_City sekarang telah dihapus dari tabel karyawan.
Kami juga telah menggunakan perintah SELECT lagi. Pada hasil perintah SELECT, dari semua record nilai yang terdapat di Emp_City dihapus.
2. Hapus beberapa kolom dari tabel
Untuk menghapus lebih dari satu kolom tabel, gunakan sintaks yang diberikan di bawah ini:
ALTER TABLE TableName DROP COLUMN ColumnName1, DROP COLUMN ColumnName2,……ColumnNameN;
Di sini,
Kita perlu menentukan semua nama kolom yang akan dihapus, dengan klausa DROP COLUMN.
Contoh:
Pertama, kita akan melihat struktur tabel karyawan dan record yang ada di dalamnya.
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)
Di sini, kami telah memilih database yang sudah dibuat dengan perintah 'USE employee_db'. Perintah "DESC employee" menjelaskan struktur tabel 'employee'. Kemudian kita telah menggunakan perintah SELECT untuk menampilkan tabel karyawan yang dibuat menjadi employee_db.
Sekarang, kami akan menulis kueri untuk menghapus kolom yang berisi gaji karyawan dan nomor telepon karyawan di tabel 'karyawan'.
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
Perintah ALTER TABLE digunakan pada tabel karyawan dengan klausa DROP COLUMN pada Emp_Salary dan 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)
Ketika kita kembali menerapkan perintah DESC pada tabel 'karyawan' setelah menerapkan perintah ALTER yang tertulis di atas, kita dapat melihat bahwa Emp_Salary dan Emp_PhoneNo tidak tercantum dalam hasil. Ini menunjukkan bahwa kolom bernama Emp_Salary dan Emp_PhoneNo sekarang dihapus dari tabel karyawan. Kemudian kami juga menggunakan perintah SELECT lagi. Pada hasil perintah SELECT, dari semua record nilai yang terdapat pada Emp_Salary dan Emp_PhoneNo dihilangkan.