I denne artikel vil vi lære og forstå kommandoerne Drop og Truncate og forskellen mellem disse to kommandoer.
Hvad er Drop Command?
Drop er en Data Definition Language-kommando i Structured Query Language. Drop-kommandoen i SQL bruges til at slette eller slette tabeldefinitionen, databasen, indekser, visning, triggere og databegrænsninger fra databasetabellerne.
I Structured Query Language bruges drop-kommandoen til at slette elementerne fra RDBMS (Relational Database Management System).
Kommandoen Slet kan rulle data tilbage, når den først er udført, men Drop-kommandoerne kan ikke rulle data tilbage, når den først er udført. Drop-kommandoen bruges til at frigøre hukommelse, hvor tabelplads er gemt, fordi drop-kommandoer sletter tabellen og dens indhold permanent.
Drop-kommandoen er hurtig sammenlignet med truncate-kommandoen i Structured Query Language. Men udførelsestidspunktet for drop-kommandoen er langsom, fordi den har mange komplikationer.
For at slette en eller flere kolonner fra tabellen bruger vi drop-kommandoen med ALTER TABLE-kommandoen.
Syntaksen for DROP-kommandoen til at fjerne databasen er som følger:
DROP DATABASE Database_Name;
I ovenstående syntaks skal vi angive databasenavnet, som vi ønsker at slette fra systemet.
Bemærk:- Vær forsigtig, før du bruger DROP-kommandoen til at slette databasen, fordi drop-kommandoerne fjerner alle objekter fra databasen, såsom tabeller, indekser, visninger, udløsere, der er oprettet i databasen.
Syntaksen for at fjerne tabellen er som følger:
DROP TABLE Table_Name;
I ovenstående syntaks skal vi angive det tabelnavn, som vi ønsker at slette fra databasen.
Syntaksen for at fjerne flere tabeller fra den samme database i en enkelt sætning er som følger:
DROP TABLE table1, table2, table3;
Vi kan slette flere tabeller fra den samme database ved hjælp af ovenstående syntaks.
Syntaksen for at fjerne indekset er som følger:
DROP INDEX Index_Name;
Vi skal angive indeksnavnet i ovenstående syntaks lige efter indeksnøgleordet.
Syntaksen for at fjerne visningen er som følger:
DROP VIEW View_Name;
Vi skal angive visningsnavnet i ovenstående syntaks lige efter visningssøgeordet.
Syntaksen for at fjerne begrænsningen fra tabellen ved hjælp af ALTER TABLE er som følger:
ALTER TABLE Table_Name DROP CONSTRAINT Constraint_Name;
Ved at bruge ALTER TABLE-kommandoen i SQL'en kan vi slette begrænsningen fra tabellen.
Eksempel på DROP-kommando:
Vi vil tage et par eksempler ved at bruge kommandoen DROP.
Trin 1: Opret en database eller brug en eksisterende database. Vi vil bruge to databaser til DROP-kommandoen.
Trin 2: Opret en ny tabel, eller brug en eksisterende tabel, indeks, visning.
Eksempel 1: Skriv en forespørgsel for at fjerne tabel students_information fra skolens database.
Vi vil først vælge Skoledatabasen ved at bruge USE Keyword efterfulgt af databasenavnet.
USE School;
Vi vil skrive drop-kommandoen for at slette elevinformationstabellen fra den valgte database.
Overvej tabellen Students_information med følgende poster:
Student_Id | Student_Name | 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;
Vi har droppet tabellen Students_information med alle de poster, der er til stede i tabellen fra ovenstående forespørgsel.
For at krydstjekke, om forespørgslen blev udført med succes eller ej, udfører vi SELECT-forespørgslen.
SELECT * FROM Students_Information;
Mens vi udfører select-forespørgslen på Students_information-tabellen, vises meddelelsen om tabellen eksisterer ikke, hvilket betyder, at Drop-kommandoforespørgslen på Students_information-tabellen er udført korrekt.
Eksempel 2: Skriv en forespørgsel for at slippe manager_view1-visningen fra virksomhedens database.
Overvej visningen manager_view1 med følgende registreringer:
MANAGERID | MANAGER_NAME | MANAGER_DEPARTMENT |
1 | Snehdeep Kaur | ORACLE |
3 | Abhishek Manish | JAVA |
Vi vil skrive drop-kommandoen for at slette manager_view1-visningen fra den valgte database.
DROP VIEW Manager_view1;
Vi har droppet manager_view1-visningen fra ovenstående forespørgsel med alle registreringer til stede i visningen.
For at krydstjekke, om forespørgslen blev udført med succes eller ej, udfører vi SELECT-forespørgslen.
SELECT * FROM Manager_view1;
Mens vi udfører valg-forespørgslen i manager_view1-visningen, vises meddelelsen om visningen eksisterer ikke, hvilket betyder, at Drop-kommandoforespørgslen på manager_view1-visningen er udført med succes.
Eksempel 3: Skriv en forespørgsel for at slette Cricket-databasen fra systemet.
Før vi udfører drop-kommandoen for databasen, udfører vi først show databases-kommandoen for at bekræfte i slutningen af drop-kommandoen, at vi med succes droppede Cricket-databasen fra systemet.
SHOW DATABASES;
Database |
Chk |
Virksomhed |
Cricket |
Medarbejder |
Informationsskema |
Mysql |
Performance_schema |
Phpmyadmin |
Skole |
Test |
WordPress |
Ovenfor er de databaser, der allerede findes i systemet; vi vil droppe Cricket-databasen fra systemet. Sletning af databasen betyder sletning af alle de objekter, der findes i databasetabellen, visningen, indekset, udløsere osv.
Nu vil vi udføre en forespørgsel for at droppe Cricket-databasen.
DROP DATABASE Cricket;
Vi har udført drop-forespørgslen på Cricket-databasen. For at kontrollere, om databasen er slettet med succes eller ej, udfører vi SHOW DATABASES-forespørgslen.
SHOW DATABASES;
Database |
Chk |
Virksomhed |
Medarbejder |
Informationsskema |
Mysql |
Performance_schema |
Phpmyadmin |
Skole |
Test |
WordPress |
Som du kan se, er cricketdatabasen slettet fra systemet med succes.
Eksempel 4: Skriv en forespørgsel for at slette efternavnskolonnen fra medarbejdertabellen.
ALTER TABLE employee DROP Last_Name;
Vi har slettet kolonnen Last_Name fra medarbejdertabellen ved hjælp af DROP-kommandoen med ALTER-kommandoen i ovenstående forespørgsel.
Felt | Type | Nul | Nøgle | Standard | Ekstra |
EMPLOYEEID | int(11) | NEJ | PRI | NULL | |
FIRST_NAME | varchar(20) | JA | NULL | ||
LØN | int(11) | JA | NULL | ||
BY | varchar(20) | JA | NULL | ||
AFDELING | varchar(20) | JA | NULL | ||
MANAGERID | int(11) | JA | NULL |
Ovenstående output viser, at Efternavn er slettet fra medarbejdertabellen.
Hvad er Truncate Command?
Truncate er en anden Data Definition Language-kommando i Structured Query Language. Truncate-kommandoen bruges til at slette alle poster fra tabellen. Ligesom DROP-kommandoen, men TRUNCATE-kommandoen indeholder ikke en WHERE-sætning. Truncate-kommandoen er hurtigere end både DROP- og DELETE-kommandoen. Vi kan ikke rulle posterne tilbage som DROP-kommandoen efter brug af TRUNCATE-kommandoen.
Syntaks for TRUNCATE-kommandoen i SQL:
TRUNCATE TABLE tablename;
I ovenstående syntaks skal vi nævne det tabelnavn, hvis data vi ønsker at slette fra tabellen.
Vi vil tage et par eksempler ved at bruge TRUNCATE-kommandoen.
Eksempel på TRUNCATE-kommando:
Trin 1: Opret en database eller brug en eksisterende database.
Trin 2: Opret en ny tabel, eller brug en eksisterende tabel.
Overvej den eksisterende tabel med følgende poster:
Tabel:Medarbejder:
EMPLOYEEID | FIRST_NAME | LAST_NAME | LØN | BY | AFDELING | MANAGERID |
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 | TEST | 4 |
4002 | ASHWINI | BAGHAT | 54500 | NOIDA | JAVA | 3 |
4003 | RUCHIKA | AGARWAL | 60.000 | DELHI | ORACLE | 1 |
5001 | ARCHIT | SHARMA | 55500 | DELHI | TEST | 4 |
Eksempel: Skriv en forespørgsel for at slette alle poster fra medarbejdertabellen ved hjælp af truncate-kommandoen.
TRUNCATE TABLE Employee;
Vi har slettet alle poster fra ovenstående forespørgsel fra medarbejdertabellen.
For at krydstjekke, om alle poster fra medarbejdertabellen er slettet eller ej, udfører vi SELECT-forespørgslen på medarbejdertabellen.
SELECT * FROM Employee;
EMPLOYEEID | FIRST_NAME | LAST_NAME | LØN | BY | AFDELING | MANAGERID |
Mens vi udfører valgforespørgslen på medarbejdertabellen, vises den tomme sæt-meddelelse, hvilket betyder, at trunkeringskommandoen på medarbejdertabellen er udført.
Punkterne nedenfor viser forskellen mellem Drop-kommandoen og Truncate-kommandoen i Structured Query Language:
DROP-kommandoen | TRUNCATE-kommandoen |
DROP-kommandoen sletter tabelstrukturen og tabelposterne. | TRUNCATE-kommandoen sletter alle poster fra tabellen. |
DROP-kommandoen er en Data Definition Language-kommando. | TRUNCATE-kommandoen er også en datadefinitionssprogkommando. |
I DROP-kommandoen er tablespace fri for hukommelse | TRUNCATE-kommandoen frigør ikke tabelpladsen fra hukommelsen. |
Tabelvisningen findes ikke i DROP-kommandoen | Tabelvisningen findes i TRUNCATE-kommandoen |
I DROP-kommandoen kan vi ikke bruge delete space. | I TRUNCATE-kommandoen kan vi bruge delete space, men mindre end sammenlignet med DELETE-sætningen. |
I DROP-kommandoen fjernes integritetsbegrænsningerne automatisk fra tabellen. | Integritetsbegrænsningerne vil ikke blive fjernet fra tabellen i TRUNCATE-kommandoen. |
DROP-kommandoen sletter posterne hurtigt, men der er mange komplikationer. | TRUNCATE-kommandoen er hurtigere end DROP-kommandoen. |