Untuk menghapus table Dalam sebuah Database MariaDB atau MySQL, gunakan perintah DROP TABLE diikuti dengan nama table (bisa lebih dari satu). Contoh DROP TABLE namatable1, namatabel2.


Syntax

MariaDB
Syntax
DROP [TEMPORARY] TABLE [IF EXISTS] [/*COMMENT TO SAVE*/]
    tbl_name [, tbl_name] ...
    [RESTRICT | CASCADE]

Penjelasan

DROP TABLE secara sederhana diartikan dengan HAPUS TABEL, digunakan untuk menghapus tabel dalam sebuah database. Perintah ini akan menghapus seluruh data (kolom-kolom) berikut definisi yang ada dalam table tersebut. Perlu diketahui, perintah ini bukan mengkosongkan table (menghapus kolom-kolomnya saja) tetapi juga nama table dan seluruh konten didalamnya. Oleh karenanya, berhati-hatilah dalam menjalankan perintah ini.

DROP TABLE hanya dapat dijalankan pada orang (user) yang memiliki hak akses DROP privilege. Untuk table yang dibuat secara sementara (temporary) maka tidak ada hak akses karena table tersebut hanya berlaku pada sesi yang sedang berlangsung.

Contoh

Pada contoh dibawah ini, saya ingin menghapus table "siswa_sementara" dalam sebuah database "dbcontohsekolah".

MariaDB
DROP TABLE siswa_sementara;

Atau bisa kita tulis seperti ini:

MariaDB
DROP TABLE dbcontohsekolah.siswa_sementara

Perlu diperhatikan sekali lagi, perintah DROP TABLE ini sangat berbahaya, karena menyangkut data yang hendak dihapus. Jika data dalam table tersebut begitu penting, ada baiknya backup terlebih dahulu sebelum menjalankan perintah ini. Jika dalam sistem administrasi Anda terdapat banyak orang (multi user) dan ada yang memiliki hak akses DROP TABLE pastikan bahwa orang tersebut benar-benar bisa dipercaya.

DROP TABLE IF EXISTS

MariaDB
DROP TABLE IF EXISTS siswa_sementara; 

Hapus Table Jika Ada

DROP TABLE IF EXISTS artinya, HAPUS TABEL JIKA ada. Jadi, perintah ini hanya akan menghapus table jika memang ada, jika tidak ada maka perintah akan diabaikan. Tambahan IF EXISTS hanya opsional, boleh ditulis atau tidak akan tetapi lebih baik ditulis untuk menghindari errror. Jika perintah hapus tabel ditulis tanpa IF EXISTS maka jika table yang hendak dihapus tersebut ternyata tidak ada, maka akan terjadi error tapi sebaliknya jika ditulis dengan IF EXISTS maka hanya berisi peringatan.

Ketika sebuah table dihapus, maka user privileges (hak akses user) untuk table tersebut tidak ikut dihapus.

Jika ada koneksi lain yang menggunakan table yang hendak dihapus ini, maka metadata lock akan aktif dan perintah hapus table tidak akan dijalankan (menunggu) sampai lock tersebut dilepas (tidak digunakan). Juga berlaku untuk table non-transaksi (non-transactional).

Jika ada sebuah foreign key pada table lain yang mereferensikan table yang hendak dihapus ini, maka table tidak dapat dihapus sebelum foreign key dalam tabel lain tersebut dihapus terlebih dahulu.

Contoh Praktek HAPUS TABEL (DROP TABLE)

Contoh dapat dipraktekkan pada database MySQL atau MariaDB. Untuk memudahkan pemahaman Anda dan agar benar-benar mengerti bagaimana menggunakan DROP TABLE ini, mari kita praktekkan contoh sederhana dibawah ini secara langkah demi langkah:

  1. Buat Database baru, jalankan perintah CREATE DATABASE dbcontohsekolah;. Kira-kira hasilnya seperti ini:
    MariaDB [belajar1]> CREATE DATABASE dbcontohsekolah;
    Query OK, 1 row affected (0.05 sec)
    
    Disini, saya membuat database dengan nama "dbcontohsekolah"
  2. Gunakan database "dbcontohsekolah" dengan menjalankan perintah
    USE dbcontohsekolah;
    
  3. Buat Table, jalankan perintah berikut:
    CREATE TABLE siswa_sementara (
      id int AUTO_INCREMENT PRIMARY KEY,
      nama varchar(50) NOT NULL
    );
    
    Kira-kira hasilnya seperti ini:
    MariaDB [dbcontohsekolah]> CREATE TABLE siswa_sementara (
      -> id int AUTO_INCREMENT PRIMARY KEY,
      -> nama varchar(50) NOT NULL
      -> );
    Query OK, 0 rows affected (0.71 sec)
    
  4. Lihat table apa saja yang ada dalam database yang telah kita buat pada no.1 diatas dengan menjalankan perintah: SHOW TABLES; Kira-kira tampilannya seperti ini:
    MariaDB [dbcontohsekolah]> SHOW TABLES;
    +---------------------------+
    | Tables_in_dbcontohsekolah |
    +---------------------------+
    | siswa_sementara           |
    +---------------------------+
    1 row in set (0.00 sec)
    
    Hasil diatas menunjukkan bahwa kita hanya memiliki satu table yaitu siswa_sementara.
  5. Sekarang coba kita hapus table siswa_sementara yang telah dibuat tersebut dengan menjalankan perintah berikut:
    DROP TABLE IF EXISTS siswa_sementara;
    
    Kemudian kita jalankan lagi perintah
    SHOW TABLES;
    
    Maka, hasilnya sebagai berikut:
    MariaDB [dbcontohsekolah]> SHOW TABLES;
    Empty set (0.00 sec)
    
    Empty menunjukkan Kosong, artinya tidak ada satu tabel pun dalam database tersebut. Ini menunjukkan perintah Hapus table tersebut telah berhasil dijalankan.

Reference: