Kas yra „DELETE“ užklausa?
„MySQL DELETE“ komanda naudojama nereikalingoms eilėms ištrinti iš duomenų bazės lentelių. Iš lentelės ištrinama visa eilutė ir pateikiamas ištrintų eilučių skaičius. Ištrinti komandą pravartu ištrinti laikinus ar pasenusius duomenis iš duomenų bazės.
„MySQL“ užklausa „Ištrinti“ gali ištrinti daugiau nei vieną eilutę iš vienos užklausos lentelės. Tai yra privalumai, kai iš duomenų bazės lentelės pašalinamas didelis eilučių skaičius.
Ištrynus eilutę „MySQL“ ištrinti eilutę, jos atkurti nebegalima. Todėl prieš ištrinant bet kokius duomenis iš duomenų bazės, labai rekomenduojama padaryti duomenų bazių atsargines kopijas. Tai gali leisti atkurti duomenų bazę ir peržiūrėti duomenis vėliau, jei to reikės.
Kaip ištrinti eilutę MySQL
Norėdami ištrinti „MySQL“ eilutę, naudojamas sakinys DELETE FROM:
DELETE FROM `table_name` [WHERE condition];
ČIA
- „DELETE FROM“ iš „table_name“ liepia MySQL serveriui pašalinti eilutes iš lentelės ...
- [WHERE condition] yra neprivaloma ir naudojama norint įdėti filtrą, kuris riboja eilučių, kurias paveikė „MySQL DELETE“ eilutės užklausa, skaičių.
Jei klaida „WHERE“ nenaudojama „MySQL DELETE“ užklausoje, visos nurodytos lentelės eilutės bus ištrintos.
„MySQL Delete Query“ pavyzdys
Prieš pradėdami išsamesnės diskusijos komandą DELETE, į filmų lentelę įterpkime keletą pavyzdinių duomenų, su kuriais galėtume dirbti.
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);
Vykdant pirmiau pateiktą scenarijų, į filmų lentelę įtraukiami trys (3) filmai. Prieš eidami toliau į savo pamoką, pateikime visus filmus savo lentelėje. Žemiau pateiktas scenarijus tai daro.
SELECT * FROM `movies`;
Vykdydami pirmiau pateiktą scenarijų, gauname šiuos rezultatus.
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 |
Tarkime, kad „Myflix“ vaizdo biblioteka nebenori nuomoti „Didžiojo diktatoriaus“ savo nariams ir jie nori, kad jis būtų pašalintas iš duomenų bazės. Jo filmo ID yra 18, mes galime naudoti žemiau pateiktą scenarijų, kad ištrintume jo eilutę iš filmų lentelės.
DELETE FROM `movies` WHERE `movie_id` = 18;
Vykdant aukščiau pateiktą scenarijų „MySQL WorkBench“ prieš „Myflix“, iš duomenų bazės lentelės ištrinamas filmas su ID 18.
Pažiūrėkime apie dabartinę filmų lentelės būseną.
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 |
PASTABA:
- filmas, kurio ID 18, nebuvo grąžintas į užklausos rezultatų rinkinį.
- negalima ištrinti vieno lentelės stulpelio. Galite ištrinti visą eilutę.
Tarkime, kad turime filmų, kuriuos norime ištrinti, sąrašą. Kartu su IN galime naudoti sąlygą WHERE.
DELETE FROM `movies` WHERE `movie_id` IN (20,21);
Vykdant pirmiau pateiktą scenarijų, iš mūsų filmų lentelės ištrinami filmai, kurių ID yra 20 ir 21.
Santrauka
- „Delete“ komanda naudojama norint pašalinti iš lentelės nebereikalingus duomenis.
- Sąlyga „WHERE“ naudojama norint apriboti eilučių, kurias paveikė užklausa DELETE, skaičių.
- Ištrynus duomenis jų atkurti nebegalima, todėl prieš ištrinant duomenis primygtinai rekomenduojama atlikti atsargines kopijas.