sql >> Databáze >  >> RDS >> Database

Drop vs. Truncate v SQL

V tomto článku se naučíme a pochopíme příkazy Drop a Truncate a rozdíl mezi těmito dvěma příkazy.

Co je příkaz Drop?

Drop je příkaz Data Definition Language v jazyce Structured Query Language. Příkaz Drop v SQL se používá k odstranění nebo zrušení definice tabulky, databáze, indexů, pohledu, spouštěčů a datových omezení z databázových tabulek.

V jazyce Structured Query Language se příkaz drop používá k odstranění prvků ze systému správy relačních databází (RDBMS).

Příkaz Delete může vrátit data, jakmile je proveden, ale příkaz Drop nemůže vrátit data, jakmile je proveden. Příkaz Drop se používá k uvolnění paměti, kde je uložen tabulkový prostor, protože příkazy drop trvale odstraní tabulku a její obsah.

Příkaz Drop je rychlý ve srovnání s příkazem zkrátit ve strukturovaném dotazovacím jazyce. Ale načasování provádění příkazu drop je pomalé, protože má mnoho komplikací.

Chcete-li odstranit jeden nebo více sloupců z tabulky, použijeme příkaz drop s příkazem ALTER TABLE.

Syntaxe příkazu DROP k odstranění databáze je následující:

DROP DATABASE Database_Name;

Ve výše uvedené syntaxi musíme zadat název databáze, kterou chceme ze systému odstranit.

Poznámka:- Před použitím příkazu DROP k odstranění databáze buďte opatrní, protože příkazy drop odstraní z databáze všechny objekty, jako jsou tabulky, indexy, pohledy, spouštěče vytvořené v databázi.

Syntaxe pro odstranění tabulky je následující:

DROP TABLE Table_Name;

Ve výše uvedené syntaxi musíme zadat název tabulky, kterou chceme z databáze odstranit.

Syntaxe pro odebrání více tabulek ze stejné databáze v jednom příkazu je následující:

DROP TABLE table1, table2, table3;

Pomocí výše uvedené syntaxe můžeme odstranit více tabulek ze stejné databáze.

Syntaxe pro odstranění indexu je následující:

DROP INDEX Index_Name;

Musíme zadat název indexu ve výše uvedené syntaxi hned za klíčové slovo indexu.

Syntaxe pro odebrání pohledu je následující:

DROP VIEW View_Name;

Musíme zadat název zobrazení ve výše uvedené syntaxi hned za klíčové slovo zobrazení.

Syntaxe pro odstranění omezení z tabulky pomocí ALTER TABLE je následující:

ALTER TABLE Table_Name DROP CONSTRAINT Constraint_Name;

Pomocí příkazu ALTER TABLE v SQL můžeme odstranit omezení z tabulky.

Příklad příkazu DROP:

Vezmeme si několik příkladů pomocí příkazu DROP.

Krok 1: Vytvořte databázi nebo použijte existující databázi. Pro příkaz DROP použijeme dvě databáze.

Krok 2: Vytvořte novou tabulku nebo použijte existující tabulku, index, zobrazení.

Příklad 1: Napište dotaz pro odstranění tabulky students_information ze školní databáze.

Nejprve vybereme školní databázi pomocí klíčového slova USE následovaného názvem databáze.

USE School;

Napíšeme příkaz drop pro smazání tabulky students_information z vybrané databáze.

Zvažte tabulku Students_information s následujícími záznamy:

ID_studenta Jméno_studenta Student_Course Student_Marks
1 Anjali BCOM 85
2 Pranav BCA 80
3 Yogesh B.E 88
4 Bhushan MBA 95
5 Poonam MCOM 97
6 Bhavesh B.E 90
7 Khushi BSC 94
8 Piyush BCOM 75
9 Nikita BA 88
10 Aishwariya BSC 70
DROP TABLE Students_Information;

Z výše uvedeného dotazu jsme vypustili tabulku Students_information se všemi záznamy přítomnými v tabulce.

Pro křížovou kontrolu, zda byl dotaz proveden úspěšně nebo ne, provedeme dotaz SELECT.

SELECT * FROM Students_Information;

Když provádíme výběrový dotaz na tabulku Students_information, zobrazí se zpráva tabulka neexistuje, což znamená, že dotaz příkazu Drop na tabulku Students_information byl úspěšně proveden.

Příklad 2: Napište dotaz pro zrušení pohledu manager_view1 z databáze společnosti.

Zvažte zobrazení manager_view1 s následujícími záznamy:

ID SPRÁVCE MANAGER_NAME ODDĚLENÍ SPRÁVCE
1 Snehdeep Kaur ORACLE
3 Abhishek Manish JAVA

Napíšeme příkaz drop pro odstranění pohledu manager_view1 z vybrané databáze.

DROP VIEW Manager_view1;

Z výše uvedeného dotazu jsme vypustili pohled manager_view1 se všemi záznamy přítomnými v pohledu.

Pro křížovou kontrolu, zda byl dotaz proveden úspěšně nebo ne, provedeme dotaz SELECT.

SELECT * FROM Manager_view1;

Když provádíme výběrový dotaz v pohledu manager_view1, zobrazí se zpráva pohled neexistuje, což znamená, že dotaz příkazu Drop v pohledu manager_view1 byl úspěšně proveden.

Příklad 3: Napište dotaz na odstranění databáze Cricket ze systému.

Před spuštěním příkazu drop pro databázi nejprve provedeme příkaz show databases, abychom na konci příkazu drop ověřili, že jsme úspěšně odstranili databázi Cricket ze systému.

SHOW DATABASES;
Databáze
Chk
Společnost
Kriket
Zaměstnanec
Informační_schéma
Mysql
Schéma_výkonu
Phpmyadmin
Škola
Test
WordPress

Výše jsou databáze, které již v systému existují; odstraníme databázi kriketu ze systému. Zrušení databáze znamená smazání všech objektů přítomných v databázové tabulce, pohledu, indexu, triggerech atd.

Nyní provedeme dotaz na zrušení databáze Cricket.

DROP DATABASE Cricket;

Provedli jsme dotaz na drop v databázi Cricket. Abychom zkontrolovali, zda byla databáze úspěšně zrušena nebo ne, provedeme dotaz SHOW DATABASES.

SHOW DATABASES;
Databáze
Chk
Společnost
Zaměstnanec
Informační_schéma
Mysql
Schéma_výkonu
Phpmyadmin
Škola
Test
WordPress

Jak můžete vidět, databáze kriketu byla ze systému úspěšně odstraněna.

Příklad 4: Napište dotaz na odstranění sloupce příjmení z tabulky zaměstnanců.

ALTER TABLE employee DROP Last_Name;

Pomocí příkazu DROP s příkazem ALTER ve výše uvedeném dotazu jsme odstranili sloupec Last_Name z tabulky zaměstnanců.

Pole Typ Null Klíč Výchozí Navíc
ID ZAMĚSTNANCE int(11) NE PRI NULL
FIRST_NAME varchar(20) ANO NULL
PLAT int(11) ANO NULL
MĚSTO varchar(20) ANO NULL
ODDĚLENÍ varchar(20) ANO NULL
MANAGERID int(11) ANO NULL

Výše uvedený výstup ukazuje, že Last_Name je odstraněno z tabulky zaměstnanců.

Co je příkaz zkrátit?

Truncate je další příkaz Data Definition Language ve strukturovaném dotazovacím jazyce. Příkaz Zkrátit se používá k odstranění všech záznamů z tabulky. Stejně jako příkaz DROP, ale příkaz TRUNCATE neobsahuje klauzuli WHERE. Příkaz Truncate je rychlejší než příkaz DROP i DELETE. Po použití příkazu TRUNCATE nemůžeme záznamy vrátit zpět jako příkaz DROP.

Syntaxe příkazu TRUNCATE v SQL:

TRUNCATE TABLE tablename;

Ve výše uvedené syntaxi musíme zmínit název tabulky, jejíž data chceme z tabulky odstranit.

Vezmeme si několik příkladů pomocí příkazu TRUNCATE.

Příklad příkazu TRUNCATE:

Krok 1: Vytvořte databázi nebo použijte existující databázi.

Krok 2: Vytvořte novou tabulku nebo použijte existující tabulku.

Zvažte existující tabulku s následujícími záznamy:

Tabulka:Zaměstnanec:

ID ZAMĚSTNANCE FIRST_NAME LAST_NAME PLAT MĚSTO ODDĚLENÍ ID SPRÁVCE
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
1002 VAIBHAV SHARMA 60 000 NOIDA C# 5
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 CHANDIgarH ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50 000 MUMBAI C# 5
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA WANRE 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH GOUD 60500 MUMBAI TESTOVÁNÍ 4
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
4003 RUCHIKA AGARWAL 60 000 DELHI ORACLE 1
5001 ARCHIT SHARMA 55500 DELHI TESTOVÁNÍ 4

Příklad: Napište dotaz na odstranění všech záznamů z tabulky zaměstnanců pomocí příkazu truncate.

TRUNCATE TABLE Employee;

Smazali jsme všechny záznamy z výše uvedeného dotazu z tabulky zaměstnanců.

Pro křížovou kontrolu, zda jsou všechny záznamy z tabulky zaměstnanců odstraněny nebo neúspěšně, provedeme dotaz SELECT na tabulku zaměstnanců.

SELECT * FROM Employee;
ID ZAMĚSTNANCE FIRST_NAME LAST_NAME PLAT MĚSTO ODDĚLENÍ ID SPRÁVCE

Když provádíme výběrový dotaz na tabulce zaměstnanců, zobrazí se zpráva o prázdné sadě, což znamená, že příkaz zkrátit v tabulce zaměstnanců byl úspěšně proveden.

Níže uvedené body ukazují rozdíl mezi příkazem Drop a příkazem Truncate ve strukturovaném dotazovacím jazyce:

Příkaz DROP Příkaz TRUNCATE
Příkaz DROP odstraní strukturu tabulky a záznamy tabulky. Příkaz TRUNCATE odstraní všechny záznamy z tabulky.
Příkaz DROP je příkaz Data Definition Language. Příkaz TRUNCATE je také příkazem Data Definition Language.
V příkazu DROP je tabulkový prostor bez paměti Příkaz TRUNCATE neuvolní tabulkový prostor z paměti.
Tabulkový pohled v příkazu DROP neexistuje Tabulkový pohled existuje v příkazu TRUNCATE
V příkazu DROP nemůžeme použít vymazat mezeru. V příkazu TRUNCATE můžeme použít vymazat mezeru, ale méně než ve srovnání s příkazem DELETE.
V příkazu DROP budou omezení integrity z tabulky automaticky odstraněna. Omezení integrity nebudou z tabulky v příkazu TRUNCATE odstraněna.
Příkaz DROP odstraní záznamy rychle, ale je zde mnoho komplikací. Příkaz TRUNCATE je rychlejší než příkaz DROP.


  1. Správa dalšího PostgreSQL Commitfestu

  2. Jak stáhnout osolené heslo z databáze a auth uživatele?

  3. Jak poznám, že je databáze vysoce kvalitní?

  4. Vkládání do MySQL z PHP (jQuery/AJAX)