sql >> Database teknologi >  >> RDS >> Database

Drop vs Truncate i SQL

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.


  1. Hvordan finder man den tredje eller nᵗʰ maksimale løn fra løntabellen?

  2. Fjernelse af sporfiler med ADRCI

  3. cd:-M:ugyldig mulighed

  4. Valg af flere max()-værdier ved hjælp af en enkelt SQL-sætning