MySQL POISTA-kysely: Kuinka poistaa rivi taulukosta

⚡ Älykäs yhteenveto

MySQL DELETE-kysely poistaa taulukosta rivit, joita ei enää tarvita, ja palauttaa niiden rivien määrän, joihin tämä vaikuttaa. Tämä resurssi selittää DELETE-syntaksin, WHERE-suodatuksen, usean rivin poiston IN-operaattorilla sekä turvallisemmat vaihtoehdot TRUNCATE ja DROP.

  • 🗑️ Ydinlausunto: DELETE FROM `table_name` [WHERE-ehto] poistaa kokonaiset rivit ja palauttaa poistettujen rivien määrän.
  • ⚠️ Pois jätetty WHERE: WHERE-lauseen poisjättäminen poistaa kaikki taulukon rivit, joten suodata aina ennen suorittamista.
  • 🎯 Targeted:n poisto: WHERE `movie_id` = 18 poistaa yhden tietueen, kun taas WHERE `movie_id` IN (20,21) poistaa useita yhdellä lausekkeella.
  • 🔁 Peruuttamaton toiminta: Poistettuja tietoja ei voida palauttaa ilman varmuuskopiota, joten varmuuskopioi tietokanta ennen DELETE-komennon suorittamista.
  • 📊 Rivitason laajuus: DELETE poistaa vain kokonaisia ​​rivejä; yhden sarakkeen arvon tyhjentäminen vaatii UPDATE-komennon ja NULL-arvon.
  • 🇧🇷 POISTA vs. LYHENNY vs. PUDOTA: DELETE suodattaa rivit, TRUNCATE tyhjentää taulukon välittömästi ja DROP poistaa itse taulukkorakenteen.

Mikä on DELETE-kysely?

MySQL POISTA lauseketta käytetään poistamaan rivejä, joita ei enää tarvita tietokantataulukosta. Se poistaa koko rivin taulukosta ja palauttaa poistettujen rivien määrän. DELETE-lauseke on kätevä, kun sinun on poistettava väliaikaisia ​​tai vanhentuneita tietoja tietokannastasi.

POISTA-kysely kohdassa MySQL voi poistaa useamman kuin yhden rivin taulukosta yhdellä suorituksella. Tästä on hyötyä, kun poistat suuria määriä rivejä tietokantataulukosta.

Kun rivi on poistettu, sitä ei voi palauttaa. Tee aina tietokannasta varmuuskopio ennen tietojen poistamista, jotta tietokanta voidaan palauttaa ja tarkastella myöhemmin tarvittaessa.

Rivin poistaminen MySQL

Kun lausekkeen tarkoitus on selvä, seuraava vaihe on syntaksi. Rivin poistaminen kohdassa MySQL, DELETE FROM -käskyä käytetään:

DELETE FROM `table_name` [WHERE condition];

TÄSTÄ:

  • POISTA `taulukon_nimi`-taulukosta kertoo MySQL palvelinta rivien poistamiseksi nimetystä taulukosta.
  • [WHERE ehto] on valinnainen ja sitä käytetään suodattimen käyttämiseen, joka rajoittaa DELETE-kyselyn vaikutuspiirissä olevien rivien määrää.

Jos WHERE-lauseke ei käytetä MySQL POISTA kysely ja sitten kaikki tietyn taulukon rivit poistetaan.

⚠️ Varoitus: Suorita suodatin ensin SELECT-käskyllä. Jos se palauttaa täsmälleen ne rivit, jotka haluat poistaa, vastaava DELETE-käsky on turvallinen. Koko syntaksi on dokumentoitu kohdassa MySQL POISTA-lausekkeen käyttöohje.

Esimerkki MySQL Poista kysely

Seuraavassa osiossa luodaan pieni tietojoukko ja poistetaan siitä sitten tietoja.

Vaihe 1: Lisää esimerkkitiedot

Ennen kuin siirrymme yksityiskohtaisempaan keskusteluun SQL DELETE -lauseesta, lisätään esimerkkidataa movies-taulukkoon työskentelyä varten.

INSERT INTO `movies` (`title`, `director`, `year_released`, `category_id`) VALUES ('The Great Dictator', 'Charlie Chaplin', 1940, 7);
INSERT INTO `movies` (`title`, `director`, `category_id`) VALUES ('sample movie', 'Anonymous', 8);
INSERT INTO `movies` (`title`, `director`, `year_released`, `category_id`) VALUES ('movie 3', 'John Brown', 1920, 8);

Yllä olevan skriptin suorittaminen lisää kolme (3) elokuvaa elokuvat-taulukkoon. Ennen kuin jatkamme, listataan kaikki taulukossamme olevat elokuvat.

SELECT * FROM `movies`;

Yllä olevan komentosarjan suorittaminen antaa seuraavat tulokset. Kolme uutta riviä on korostettu.

elokuvan_tunnus otsikko johtaja vuosi_vapautettu kategorian_tunnus
1 Pirates of the Caribbean 4 Rob Marshall 2011 1
2 Sarah Marshal unohdetaan Nicholas Stoller 2008 2
3 X-Men NULL 2008 NULL
4 Code Nimi Musta Edgar Jimz 2010 NULL
5 Isän pienet tytöt NULL 2007 8
6 enkelit ja demonit NULL 2007 6
7 DaVinci Code NULL 2007 6
9 Honey mooners John Schultz 2005 8
16 67% syyllinen NULL 2012 NULL
18 Diktaattori Charlie Chaplin 1940 7
19 esimerkkielokuva anonyymi NULL 8
20 elokuva 3 John Brown 1920 8

Vaihe 2: Poista yksi rivi

Oletetaan, että Myflix-videokirjasto ei enää halua vuokrata elokuvaa ”The Great Dictator” ja haluaa sen poistettavan tietokannasta. Elokuvan tunniste on 18, joten alla oleva skripti poistaa kyseisen rivin.

DELETE FROM `movies` WHERE `movie_id` = 18;

Suoritetaan yllä oleva komentosarja MySQL työpöytä Myflix-tietokantaa vastaan ​​poistaa taulukosta elokuvan, jonka id on 18.

Tarkistetaan nyt elokuvataulukon nykytila.

SELECT * FROM `movies`;
elokuvan_tunnus otsikko johtaja vuosi_vapautettu kategorian_tunnus
1 Pirates of the Caribbean 4 Rob Marshall 2011 1
2 Sarah Marshal unohdetaan Nicholas Stoller 2008 2
3 X-Men NULL 2008 NULL
4 Code Nimi Musta Edgar Jimz 2010 NULL
5 Isän pienet tytöt NULL 2007 8
6 enkelit ja demonit NULL 2007 6
7 DaVinci Code NULL 2007 6
9 Honey mooners John Schultz 2005 8
16 67% syyllinen NULL 2012 NULL
19 esimerkkielokuva anonyymi NULL 8
20 elokuva 3 John Brown 1920 8

HUOMAUTUS:

  • Elokuvaa, jonka id on 18, ei enää palauta kyselyn tulosjoukossa.
  • Et voi poistaa yksittäistä saraketta taulukosta DELETE-komennolla. Lause poistaa kokonaisen rivin. Yhden kentän tyhjentämiseksi käytä PÄIVITYSkysely joka asettaa sarakkeen arvoksi NULL.

Vaihe 3: Poista useita rivejä IN-komennolla

Oletetaan, että meillä on lista elokuvista, jotka haluamme poistaa. Sen sijaan, että suorittaisimme yhden lausekkeen riviä kohden, voimme yhdistää WHERE-lauseen IN-operaattoriin.

DELETE FROM `movies` WHERE `movie_id` IN (20,21);

Yllä olevan komentosarjan suorittaminen poistaa ID:t 20 ja 21 omaavien elokuvat elokuvataulukostamme yhdellä kertaa.

POISTA vs. LYHENNETTY vs. PUDOTA sisään MySQL

POISTA ei ole ainoa tapa poistaa tietoja MySQLAloittelijat usein tarttuvat siihen, kun nopeampi komento sopisi paremmin, joten alla olevassa taulukossa vertaillaan kolmea poistokomentoa.

Ominaisuus POISTA KATKAISTA DROP
Komentotyyppi DML DDL DDL
WHERE-lauseke Tuetut Ei tuettu Ei tuettu
Mitä poistetaan Valitut rivit Kaikki rivit Rivit ja taulukon rakenne
Hintojen lasku Mahdollista transaktion sisällä Ei mahdollista (implisiittinen commit) Ei mahdollista (implisiittinen commit)
AUTO_INCREMENT Laskuri säilyy Laskuri nollautuu aloitusarvoon Laskuri poistetaan pöydän mukana
Nopeus suurilla pöydillä Hidas (rivi riviltä) Erittäin nopea Erittäin nopea

Käytä DELETE-komentoa, kun tarvitset suodattimen tai mahdollisuuden peruuttaa aiemmat muutokset. LASKUTUSTAULUKKO kun haluat tyhjentää taulukon nopeasti ja nollata sen AUTO_INCREMENT-laskurin. Käytä DROP-käskyä vain, kun itse taulukkoa ei enää tarvita, koska se poistaa määritelmän datan mukana.

UKK

Vain avoimen transaktion sisällä. Suorita START TRANSACTION, suorita DELETE ja kumoa se sitten ROLLBACK-komennolla. COMMIT-komennon jälkeen tai automaattisen vahvistuksen ollessa käytössä rivit ovat poissa ja vain varmuuskopio voi palauttaa ne.

Käytä usean taulukon DELETE-komentoa, jossa on LIITY, nimeämällä molemmat taulukot ennen FROM-avainsanaa. Vaihtoehtoisesti voit määrittää viiteavaimen ON DELETE CASCADE -komennolla, jolloin alisätaulukon rivit poistetaan automaattisesti, kun päärivi poistetaan.

Vikasietopäivitystila on oletuksena käytössä MySQL TyöpöytäSe hylkää kaikki DELETE-käskyt, joiden WHERE-lauseke ei käytä avainsaraketta, estäen vahingossa tapahtuvat koko taulukon poistot. Poista se käytöstä kohdassa Muokkaa > Asetukset > SQL-editori.

Kyllä. Tekoälyavustajat kääntävät selkokielisen pyynnön DELETE-syntaksiksi ja osaavat selittää WHERE-lausekkeen. Tarkista aina ensin luotu suodatin SELECT-lausetta vasten, koska tekoälymalli ei voi nähdä reaaliaikaista dataasi.

Ei. Anna tekoälyn luonnostella lauseke, mutta suorita se ensin itse varmuuskopiossa tai valmisteluvaiheessa olevassa kopiossa. Puuttuva WHERE-lauseke poistaa kaikki rivit, eikä mikään tekoälytyökalu voi peruuttaa tätä, kun tapahtuma on vahvistettu.

Tiivistä tämä viesti seuraavasti: