Mysql menghapus beberapa baris tabel

Catatan. Berhati-hatilah saat menghapus catatan dalam tabel. Perhatikan klausa WHERE dalam pernyataan DELETE. Klausa WHERE menentukan catatan mana yang harus dihapus. Jika Anda menghilangkan klausa WHERE, semua catatan dalam tabel akan dihapus


Basis Data Demo

Di bawah ini adalah pilihan dari tabel "Pelanggan" di database sampel Northwind

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Jerman2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D. F. 05021Mexico3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D. F. 05023Meksiko4Di Sekitar TandukThomas Hardy120 Hanover Sq. LondonWA1 1DPUK5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Swedia



Contoh HAPUS SQL

Pernyataan SQL berikut menghapus pelanggan "Alfreds Futterkiste" dari tabel "Pelanggan".

Contoh

HAPUS DARI Pelanggan DIMANA CustomerName='Alfreds Futterkiste';

Tabel "Pelanggan" sekarang akan terlihat seperti ini

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D. F. 05021Mexico3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D. F. 05023Meksiko4Di Sekitar TandukThomas Hardy120 Hanover Sq. LondonWA1 1DPUK5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Swedia


Hapus Semua Catatan

Dimungkinkan untuk menghapus semua baris dalam tabel tanpa menghapus tabel. Ini berarti struktur tabel, atribut, dan indeks akan utuh

Hapus baris dari beberapa tabel

        
mysql>
mysql> CREATE TABLE Books
    -> (
    ->     BookID SMALLINT NOT NULL PRIMARY KEY,
    ->     BookTitle VARCHAR(60) NOT NULL,
    ->     Copyright YEAR NOT NULL
    -> )
    -> ENGINE=INNODB;
Query OK, 0 rows affected (0.01 sec)

mysql>
mysql> INSERT INTO Books VALUES
    -> (12786, 'Notebook', 1934),
    -> (13331, 'C++', 1919),
    -> (14356, 'Opera', 1966),
    -> (15729, 'Sql Server', 1932),
    -> (16284, 'C', 1996),
    -> (17695, 'Pascal', 1980),
    -> (19264, 'Postcards', 1992),
    -> (19354, 'Oracle', 1993);
Query OK, 8 rows affected (0.00 sec)
Records: 8  Duplicates: 0  Warnings: 0

mysql>
mysql>
mysql> CREATE TABLE Authors
    -> (
    ->     AuthID SMALLINT NOT NULL PRIMARY KEY,
    ->     AuthFN VARCHAR(20),
    ->     AuthMN VARCHAR(20),
    ->     AuthLN VARCHAR(20)
    -> )
    -> ENGINE=INNODB;
Query OK, 0 rows affected (0.01 sec)

mysql>
mysql> INSERT INTO Authors VALUES
    -> (1006, 'Hunter', 'S.', 'Thompson'),
    -> (1007, 'Joyce', 'Carol', 'Oates'),
    -> (1008, 'Black', NULL, 'Elk'),
    -> (1009, 'Rainer', 'Maria', 'Rilke'),
    -> (1010, 'John', 'Kennedy', 'Toole'),
    -> (1011, 'John', 'G.', 'Neihardt'),
    -> (1012, 'Annie', NULL, 'Proulx'),
    -> (1013, 'Alan', NULL, 'Watts'),
    -> (1014, 'Nelson', NULL, 'Algren');
Query OK, 9 rows affected (0.00 sec)
Records: 9  Duplicates: 0  Warnings: 0

mysql>
mysql>
mysql> CREATE TABLE AuthorBook
    -> (
    ->     BookID SMALLINT NOT NULL,
    ->     AuthID SMALLINT NOT NULL,
    ->     PRIMARY KEY (AuthID, BookID)
    -> )
    -> ENGINE=INNODB;
Query OK, 0 rows affected (0.01 sec)

mysql>
mysql> INSERT INTO AuthorBook VALUES
    -> (1006, 14356),
    -> (1008, 15729),
    -> (1009, 12786),
    -> (1010, 17695),
    -> (1011, 15729),
    -> (1012, 19264),
    -> (1012, 19354),
    -> (1014, 16284);
Query OK, 8 rows affected (0.00 sec)
Records: 8  Duplicates: 0  Warnings: 0

mysql>
mysql>
mysql> DELETE ab, b
    -> FROM Authors AS a, AuthorBook AS ab, Books AS b
    -> WHERE a.AuthID=ab.AuthID AND ab.BookID=b.BookID
    -> AND AuthLN='Watts';
Query OK, 0 rows affected (0.00 sec)

mysql>
mysql>
mysql>
mysql> drop table AuthorBook;
Query OK, 0 rows affected (0.00 sec)

mysql> drop table Authors;
Query OK, 0 rows affected (0.00 sec)

mysql> drop table Books;
Query OK, 0 rows affected (0.00 sec)

mysql>

   
    
    
    
    
    
    
    
  

Contoh terkait dalam kategori yang sama

Permintaan DELETE adalah sub-bagian dari bahasa manipulasi data yang digunakan untuk menghapus baris dari tabel. Cara menghapus join di MySQL adalah pertanyaan yang sangat populer selama wawancara. Ini bukan proses yang mudah untuk menggunakan pernyataan delete join di MySQL. Pada bagian ini, kami akan menjelaskan bagaimana Anda dapat menghapus rekaman dari beberapa tabel dengan menggunakan INNER JOIN atau LEFT JOIN dalam kueri DELETE

HAPUS BERGABUNG dengan INNER JOIN

Kueri Gabungan Dalam dapat digunakan dengan kueri Hapus untuk menghapus baris dari satu tabel dan mencocokkan baris dari tabel lain yang memenuhi kondisi yang ditentukan

Sintaksis

Berikut ini adalah sintaks yang dapat digunakan untuk menghapus baris dari lebih dari satu tabel menggunakan Inner Join

Di sini, targetnya adalah nama tabel dari mana kita ingin menghapus baris dengan mencocokkan kondisi yang ditentukan. Misalkan Anda ingin menghapus baris dari tabel T1 dan T2 dimana student_id = 2, maka dapat ditulis seperti pernyataan berikut

Dalam sintaks di atas, tabel target (T1 dan T2) ditulis di antara kata kunci DELETE dan FROM. Jika kita menghilangkan nama tabel dari sana, maka pernyataan hapus hanya menghapus baris dari satu tabel. Ekspresi yang ditulis dengan kata kunci ON adalah kondisi yang cocok dengan baris dalam tabel yang akan Anda hapus

Contoh

Misalkan kita memiliki dua tabel siswa dan kontak yang berisi data berikut

Meja. siswa

Mysql menghapus beberapa baris tabel

Meja. kontak

Mysql menghapus beberapa baris tabel

Jalankan query berikut untuk memahami Delete Join dengan Inner Join. Pernyataan ini menghapus baris yang memiliki id yang sama di kedua tabel

Setelah eksekusi berhasil, itu akan memberikan pesan berikut

Mysql menghapus beberapa baris tabel

Sekarang, jalankan kueri berikut untuk memverifikasi baris yang berhasil dihapus

Anda dapat melihat baris tempat student_id=4 dihapus

Mysql menghapus beberapa baris tabel
Mysql menghapus beberapa baris tabel

HAPUS GABUNG dengan GABUNG KIRI

Kita telah mempelajari klausa LEFT JOIN dengan pernyataan SELECT yang mengembalikan semua baris dari tabel kiri (pertama) dan baris yang cocok atau tidak cocok dari tabel lain. Demikian pula, kita juga dapat menggunakan klausa LEFT JOIN dengan kata kunci DELETE untuk menghapus baris dari tabel kiri (pertama) yang tidak memiliki baris yang cocok dari tabel kanan (kedua).

Kueri berikut menjelaskannya dengan lebih jelas di mana pernyataan DELETE menggunakan LEFT JOIN untuk menghapus baris dari Table1 yang tidak memiliki baris yang cocok di Table2

Pada kueri di atas, perhatikan bahwa kita hanya akan menggunakan Table1 dengan kata kunci DELETE, bukan keduanya seperti pada pernyataan INNER JOIN

Bagaimana cara MENGHAPUS satu baris dalam banyak tabel?

HAPUS DARI nama_tabel MANA nama_kolom ANTARA nilai 1 DAN nilai 2 ; . HAPUS DARI table_name WHERE column_name IN (nilai 1, nilai 2, nilai 3, dll. ); .

Bagaimana cara MENGHAPUS satu baris dalam dua tabel di SQL?

Sintaksnya juga mendukung penghapusan baris dari banyak tabel sekaligus. Untuk menghapus baris dari kedua tabel yang memiliki nilai id yang cocok, beri nama keduanya setelah kata kunci DELETE. HAPUS t1, t2 DARI t1 INNER JOIN t2 ON t1. id = t2. id; Bagaimana jika Anda ingin menghapus baris yang tidak cocok?

Bagaimana cara menghapus data dari beberapa tabel dalam satu permintaan di SQL?

Kemungkinan Solusi. Salah satu cara untuk mengatasi masalah ini adalah dengan menambahkan opsi ON DELETE CASCADE ke semua kunci asing . Dengan opsi ini, saat Anda menghapus baris yang memiliki baris referensi di tabel lain, alih-alih menggagalkan operasi, mesin database akan menghapus baris dan semua baris referensi juga.

Bagaimana cara menghapus data dari 3 tabel di SQL?

Menghapus data dari tabel .
Gunakan pernyataan DELETE tanpa menentukan klausa WHERE. Dengan ruang tabel tersegmentasi, menghapus semua baris tabel sangat cepat. .
Gunakan pernyataan TRUNCATE. Pernyataan TRUNCATE dapat memberikan keuntungan berikut dibandingkan pernyataan DELETE. .
Gunakan pernyataan DROP TABLE