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. |