Odstranit (SQL) - Delete (SQL)
V databázi strukturovaný dotazovací jazyk (SQL ), VYMAZAT příkaz odstraní jeden nebo více záznamů z a stůl. Podmnožinu lze definovat pro odstranění pomocí podmínky, jinak budou odstraněny všechny záznamy.[1] Nějaký systémy pro správu databází (DBMS), jako MySQL, povolte mazání řádků z více tabulek pomocí jednoho příkazu DELETE (tomu se někdy říká více tabulek DELETE).
Příklady
Vymazat řádky od stolu koláče kde sloupec příchuť rovná se Citronová pusinka:
VYMAZAT Z koláče KDE příchuť='Lemon Meringue';
Smazat řádky stromy, pokud je hodnota výška je menší než 80.
VYMAZAT Z stromy KDE výška < 80;
Smazat všechny řádky z mytable:
VYMAZAT Z mytable;
Smazat řádky z mytable pomocí poddotazu v podmínce where:
VYMAZAT Z mytable KDE id V ( VYBRAT id Z mytable2 );
Smazat řádky z mytable pomocí seznamu hodnot:
VYMAZAT Z mytable KDE id V ( hodnota1, hodnota2, hodnota3, hodnota4, hodnota5 );
Předpokládejme, že existuje jednoduchá databáze se seznamem osob a adres. Na konkrétní adrese může žít více než jedna osoba a osoba může žít na více než jedné adrese (toto je příklad a vztah mnoho k mnoha ). Databáze má pouze tři tabulky, osoba, adresa, a pa, s následujícími údaji:
|
|
|
The pa Tabulka se týká tabulek osob a adres, což ukazuje, že Joe, Bob a Ann žijí na hlavní ulici v roce 2001, ale Joe také bydlí na Pico Boulevard.
Chcete-li odebrat joe z databáze, je třeba provést dvě odstranění:
VYMAZAT Z osoba KDE pid=1; VYMAZAT Z pa KDE pid=1;
Aby byla zachována referenční integrita, musí být Joeovy záznamy odstraněny z obou osoba a pa. Prostředky, kterými se udržuje integrita, se mohou v různých systémech správy relačních databází stát různě.[Citace je zapotřebí ] Může se stát, že kromě pouhé tří tabulek byla databáze také nastavena pomocí spouštěče, takže kdykoli je odstraněn řádek osoba všechny propojené řádky budou odstraněny z pa. Pak první prohlášení:
VYMAZAT Z osoba KDE pid=1;
bych automaticky spusťte druhou:
VYMAZAT Z pa KDE pid=1;
Související příkazy
Odstranění všech řádků z tabulky může být velmi časově náročné. Nějaký DBMS[je zapotřebí objasnění ] nabídka a ZKUŠEBNÍ STŮL příkaz, který funguje mnohem rychleji, protože mění pouze metadata a obvykle netráví čas vymáháním omezení nebo spouštěním spouštěčů.
DELETE pouze odstraní řádky. Pro úplné odstranění tabulky POKLES lze použít příkaz.
Reference
- ^ "Příkaz pro smazání SQL". w3schools.com.