MySQL DELETE upit: Kako izbrisati redak iz tablice

Sadržaj:

Anonim

Što je DELETE upit?

Naredba MySQL DELETE koristi se za brisanje redaka koji više nisu potrebni iz tablica baze podataka. Iz tablice briše cijeli redak i vraća broj izbrisanih redaka. Naredba Delete korisna je za brisanje privremenih ili zastarjelih podataka iz baze podataka.

Upit Delete u MySQL može izbrisati više od jednog retka iz tablice u jednom upitu. To se pokazuje kao prednost prilikom uklanjanja velikog broja redaka iz tablice baze podataka.

Jednom kada je izbrisan redak u MySQL retku, ne može se oporaviti. Stoga se snažno preporučuje izrada sigurnosnih kopija baze podataka prije brisanja podataka iz baze podataka. To vam može omogućiti da vratite bazu podataka i kasnije ih pregledate ako zatreba.

Kako izbrisati red u MySQL-u

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

DELETE FROM `table_name` [WHERE condition];

OVDJE

  • DELETE FROM `ime_tabele` govori MySQL poslužitelju da ukloni retke iz tablice ...
  • [WHERE uvjet] nije obavezan i koristi se za stavljanje filtra koji ograničava broj redaka na koje utječe MySQL DELETE upit retka.

Ako se klauzula WHERE ne koristi u upitu MySQL DELETE, tada će se izbrisati svi retci u datoj tablici.

Primjer MySQL upita za brisanje

Prije nego što krenemo u detaljniju raspravu o naredbi DELETE, ubacimo neke uzorke podataka u tablicu filmova s ​​kojima ćemo raditi.

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 krenemo dalje u našu lekciju, stavimo sve filmove u tablicu. Skripta prikazana u nastavku to čini.

SELECT * FROM `movies`;

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

 
movie_id itle 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 ​​"Veliki diktator" svojim članovima i žele ga ukloniti iz baze podataka. Njegov je ID filma 18, možemo koristiti skriptu prikazanu dolje kako bismo izbrisali njegov redak iz tablice filmova.

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

Izvršavanje gornje skripte u MySQL WorkBenchu ​​protiv Myflixa briše film s id 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

BILJEŠKA:

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

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

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

Izvršavanjem gornje skripte filmovi s ID-ovima 20 i 21 brišu se iz naše tablice filmova.

Sažetak

  • Naredba delete 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 upit DELETE.
  • Jednom kad se podaci izbrišu, ne mogu se oporaviti, stoga se preporučuje da napravite sigurnosne kopije prije brisanja podataka.