Tutorial SQL ini menjelaskan cara menggunakan pernyataan SQL DELETE dengan sintaks, contoh, dan latihan praktik
Keterangan
Pernyataan SQL DELETE digunakan untuk menghapus satu atau lebih catatan dari tabel
Sintaksis
Sintaks untuk pernyataan DELETE di SQL adalah
DELETE FROM table [WHERE conditions];Parameter atau Argumen
tableTabel yang catatannya ingin Anda hapus. Kondisi WHERE Opsional. Kondisi yang harus dipenuhi agar catatan dihapus. Jika tidak ada ketentuan yang diberikan, semua catatan dalam tabel akan dihapusCatatan
- Anda tidak perlu mencantumkan bidang dalam pernyataan DELETE karena Anda menghapus seluruh baris dari tabel
DDL/DML untuk Contoh
Jika Anda ingin mengikuti tutorial ini, dapatkan DDL untuk membuat tabel dan DML untuk mengisi data. Kemudian coba contoh di database Anda sendiri
Dapatkan DDL/DML
Contoh - HAPUS Pernyataan dengan Satu Kondisi
Jika Anda menjalankan pernyataan DELETE tanpa ketentuan dalam klausa WHERE, semua rekaman dari tabel akan dihapus. Akibatnya, Anda akan paling sering menyertakan klausa WHERE dengan setidaknya satu syarat dalam pernyataan DELETE Anda
Mari kita mulai dengan contoh sederhana kueri DELETE yang memiliki satu syarat dalam klausa WHERE
Dalam contoh ini, kami memiliki tabel yang disebut pemasok dengan data berikut
supplier_idsupplier_namecitystate100MicrosoftRedmondWashington200GoogleMountain ViewCalifornia300OracleRedwood CityCalifornia400Kimberly-ClarkIrvingTexas500Tyson FoodsSpringdaleArkansas600SC JohnsonRacineWisconsin700Dole Food CompanyWestlake VillageCalifornia800Flowers FoodsThomasvilleGeorgia900Electronic ArtsRedwood CityCalifornia
Masukkan pernyataan DELETE berikut
CobalahDELETE FROM suppliers WHERE supplier_name = 'Microsoft';_Akan ada 1 record yang dihapus. Pilih data dari tabel pemasok lagi
SELECT * FROM suppliers;Ini adalah hasil yang harus Anda lihat
supplier_idsupplier_namecitystate200GoogleMountain ViewCalifornia300OracleRedwood CityCalifornia400Kimberly-ClarkIrvingTexas500Tyson FoodsSpringdaleArkansas600SC JohnsonRacineWisconsin700Dole Food CompanyWestlake VillageCalifornia800Flowers FoodsThomasvilleGeorgia900Electronic ArtsRedwood CityCalifornia
Contoh ini akan menghapus semua record dari tabel pemasok di mana supplier_name adalah 'Microsoft'
Anda mungkin ingin memeriksa jumlah baris yang akan dihapus. Anda dapat menentukan jumlah baris yang akan dihapus dengan menjalankan pernyataan SELECT berikut sebelum melakukan penghapusan
CobalahSELECT COUNT(*) FROM suppliers WHERE supplier_name = 'Microsoft';Kueri ini akan mengembalikan jumlah rekaman yang akan dihapus saat Anda menjalankan pernyataan DELETE
JUMLAH(*)1Contoh - HAPUS Pernyataan dengan lebih dari Satu Kondisi
Anda dapat memiliki lebih dari satu kondisi dalam pernyataan DELETE di SQL menggunakan kondisi AND atau kondisi OR. Kondisi DAN memungkinkan Anda untuk menghapus catatan jika semua kondisi terpenuhi. Kondisi ATAU menghapus rekaman jika salah satu kondisi terpenuhi
Mari kita lihat contoh bagaimana menggunakan pernyataan DELETE dengan dua kondisi menggunakan kondisi AND
Dalam contoh ini, kami memiliki tabel bernama produk dengan data berikut
product_idproduct_namecategory_id1Pear502Banana503Orange504Apple505Bread756Sliced Ham257KleenexNULL
Masukkan pernyataan DELETE berikut
CobalahDELETE FROM products WHERE category_id = 50 AND product_name <> 'Pear';Akan ada 3 record yang dihapus. Pilih data dari tabel produk lagi
SELECT * FROM products;Ini adalah hasil yang harus Anda lihat
product_idproduct_namecategory_id1Pear505Bread756Sliced Ham257KleenexNULL
Contoh ini akan menghapus semua rekaman dari tabel produk yang id_kategorinya adalah 50 dan yang nama_produknya bukan Pear
Untuk memeriksa jumlah baris yang akan dihapus, Anda dapat menjalankan pernyataan SELECT berikut sebelum melakukan penghapusan
CobalahSELECT COUNT(*) FROM products WHERE category_id = 50 AND product_name <> 'Pear';Ini akan mengembalikan jumlah rekaman yang akan dihapus saat Anda menjalankan pernyataan DELETE
JUMLAH(*)3Contoh - Menggunakan EXISTS dengan Pernyataan DELETE
Anda juga dapat melakukan penghapusan yang lebih rumit
Anda mungkin ingin menghapus rekaman di satu tabel berdasarkan nilai di tabel lain. Karena Anda tidak dapat mencantumkan lebih dari satu tabel dalam klausa FROM saat Anda melakukan penghapusan, Anda dapat menggunakan klausa EXISTS
Dalam contoh ini, kami memiliki tabel yang disebut pelanggan dengan data berikut
customer_idlast_namefirst_namefavorite_website4000JacksonJoetechonthenet. com5000SmithJanedigminecraft. com6000FergusonSamanthabigactivities. com7000ReynoldsAllencheckyourmath. com8000AndersonPaigeNULL9000JohnsonDerektechonthenet. com
Dan tabel yang disebut pesanan dengan data berikut
order_idcustomer_idorder_date170002016/04/18250002016/04/18380002016/04/19440002016/04/205NULL2016/05/01
Masukkan pernyataan DELETE berikut
DELETE FROM orders WHERE EXISTS (SELECT * FROM customers WHERE customers.customer_id = orders.customer_id AND customers.last_name = 'Jackson');Akan ada 1 record yang dihapus. Pilih data dari tabel pesanan lagi
SELECT * FROM orders;_Ini adalah hasil yang harus Anda lihat
order_idcustomer_idorder_date170002016/04/18250002016/04/18380002016/04/195NULL2016/05/01
Contoh ini akan menghapus semua catatan dari tabel pesanan di mana ada catatan di tabel pelanggan dengan last_name 'Jackson' dan nilai customer_id yang cocok di kedua tabel. Dalam contoh ini, record untuk order_id=4 telah dihapus
Jika Anda ingin menentukan jumlah baris yang akan dihapus, Anda dapat menjalankan pernyataan SQL SELECT berikut sebelum melakukan penghapusan
SELECT COUNT(*) FROM orders WHERE EXISTS (SELECT * FROM customers WHERE customers.customer_id = orders.customer_id AND customers.last_name = 'Jackson');_Ini akan mengembalikan jumlah rekaman yang akan dihapus saat Anda menjalankan pernyataan DELETE
JUMLAH(*)1Pertanyaan yang Sering Diajukan
Pertanyaan. Bagaimana cara saya menulis pernyataan SQL DELETE untuk menghapus semua record di TableA yang datanya di field1 & field2 TIDAK cocok dengan data di fieldx & fieldz dari TableB?
Jawaban. Anda dapat mencoba sesuatu seperti ini untuk pernyataan SQL DELETE Anda.
DELETE FROM suppliers WHERE supplier_name = 'Microsoft';_0Latihan Latihan
Jika Anda ingin menguji kemampuan Anda menggunakan pernyataan SQL DELETE, cobalah beberapa latihan latihan kami
Latihan ini memungkinkan Anda untuk mencoba keterampilan Anda dengan pernyataan DELETE. Anda akan diberikan pertanyaan yang perlu Anda selesaikan. Setelah setiap latihan, kami memberikan solusinya sehingga Anda dapat memeriksa jawaban Anda. Cobalah