MySQL Upit DELETE: Kako izbrisati redak iz tablice

Što je DELETE upit?

MySQL Izbrisati naredba se koristi za brisanje redaka koji više nisu potrebni iz tablica baze podataka. Briše cijeli red iz tablice i vraća broj izbrisanih redaka. Naredba Delete je korisna za brisanje privremenih ili zastarjelih podataka iz vaše baze podataka.

Upit za brisanje u MySQL može izbrisati više od jednog retka iz tablice u jednom upitu. To se pokazalo kao prednost pri uklanjanju velikog broja redaka iz tablice baze podataka.

Nakon brisanja retka u MySQL redak je izbrisan, ne može se vratiti. Stoga se snažno preporuča napraviti sigurnosnu kopiju baze podataka prije brisanja bilo kakvih podataka iz baze podataka. To vam može omogućiti vraćanje baze podataka i pregled podataka kasnije ako to bude potrebno.

Kako izbrisati red u MySQL

Za brisanje retka u MySQL, koristi se naredba DELETE FROM:

DELETE FROM `table_name` [WHERE condition];

OVDJE

  • DELETE FROM `table_name` govori MySQL poslužitelj za uklanjanje redaka iz tablice ..
  • [Uvjet WHERE] nije obavezan i koristi se za postavljanje filtra koji ograničava broj redaka na koje utječe sintaksa DELETE MySQL upit reda.

Ako WHERE klauzula ne koristi se u MySQL DELETE upit, tada će svi redci u datoj tablici biti izbrisani.

Primjer MySQL Izbriši upit

Prije nego krenemo u detaljniju raspravu o SQL naredbi DELETE, umetnimo neke uzorke podataka u tablicu filmova za rad.

INSERT INTO  `movies` (`title`, `director`, `year_released`, `category_id`) VALUES ('The Great Dictator', 'Chalie Chaplie', 1920, 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);

Izvršavanje gornje skripte dodaje tri (3) filma u tablicu filmova. Prije nego što nastavimo s našom lekcijom, stavimo sve filmove u našu tablicu. Skripta prikazana u nastavku to čini.

SELECT * FROM `movies`;

Izvršavanje gornje skripte daje nam sljedeće rezultate.

movie_id title director year_released category_id
1 Pirates of the Caribean 4 Rob Marshall 2011 1
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2
3 X-Men NULL 2008 NULL
4 Code Name Black Edgar Jimz 2010 NULL
5 Daddy's Little Girls NULL 2007 8
6 Angels and Demons NULL 2007 6
7 Davinci Code NULL 2007 6
9 Honey mooners John Schultz 2005 8
16 67% Guilty NULL 2012 NULL
18 The Great Dictator Chalie Chaplie 1920 7
19 sample movie Anonymous NULL 8
20 movie 3 John Brown 1920 8

Pretpostavimo da videoteka Myflix više ne želi iznajmljivati ​​“Velikog diktatora” svojim članovima i žele da ga uklone iz baze podataka. Njegov ID filma je 18, možemo upotrijebiti skriptu prikazanu u nastavku za brisanje retka iz tablice MySQL primjer.

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

Izvršavanje gornje skripte u MySQL radni stol protiv Myflixa briše film s ID-om 18 iz tablice baze podataka.

Pogledajmo trenutni status tablice filmova.

SELECT * FROM `movies`;
movie_id title director year_released category_id
1 Pirates of the Caribean 4 Rob Marshall 2011 1
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2
3 X-Men NULL 2008 NULL
4 Code Name Black Edgar Jimz 2010 NULL
5 Daddy's Little Girls NULL 2007 8
6 Angels and Demons NULL 2007 6
7 Davinci Code NULL 2007 6
9 Honey mooners John Schultz 2005 8
16 67% Guilty NULL 2012 NULL
19 sample movie Anonymous NULL 8
20 movie 3 John Brown 1920 8

NAPOMENA:

  • film s ID-om 18 nije vraćen u skupu rezultata upita.
  • ne možete izbrisati niti jedan stupac za tablicu. Možete izbrisati cijeli red.

Recimo da imamo popis filmova koje želimo izbrisati. Možemo koristiti WHERE klauzulu zajedno s IN.

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

Izvršavanje gornje skripte briše filmove s ID-ovima 20 i 21 iz naše tablice filmova.

Rezime

  • Naredba Delete in MySQL, koristi se za uklanjanje podataka koji više nisu potrebni iz tablice.
  • Klauzula WHERE koristi se za ograničavanje broja redaka na koje utječe DELETE upit MySQL naredba.
  • Jednom kada se podaci izbrišu, ne mogu se vratiti, stoga se toplo preporučuje da napravite sigurnosne kopije prije brisanja podataka.