sql >> Databasteknik >  >> RDS >> Database

Drop vs Truncate i SQL

I den här artikeln kommer vi att lära oss och förstå kommandona Drop och Truncate och skillnaden mellan dessa två kommandon.

Vad är Drop Command?

Drop är ett datadefinitionsspråk-kommando i Structured Query Language. Drop-kommandot i SQL används för att ta bort eller släppa tabelldefinitionen, databasen, index, vy, triggers och databegränsningar från databastabellerna.

I Structured Query Language används kommandot drop för att ta bort elementen från RDBMS (Relational Database Management System).

Kommandot Delete kan återställa data när det väl har utförts, men Drop-kommandona kan inte återställa data när det väl har utförts. Kommandot Drop används för att frigöra minne där tabellutrymme lagras eftersom drop-kommandon raderar tabellen och dess innehåll permanent.

Kommandot Drop är snabbt jämfört med trunkeringskommandot i Structured Query Language. Men tidpunkten för exekveringen av drop-kommandot är långsam eftersom det har många komplikationer.

För att ta bort en eller flera kolumner från tabellen använder vi kommandot släpp med kommandot ALTER TABLE.

Syntaxen för kommandot DROP för att ta bort databasen är följande:

DROP DATABASE Database_Name;

I ovanstående syntax måste vi ange databasnamnet som vi vill ta bort från systemet.

Obs:- Var försiktig innan du använder kommandot DROP för att ta bort databasen eftersom drop-kommandona tar bort alla objekt från databasen som tabeller, index, vyer, triggers skapade i databasen.

Syntaxen för att ta bort tabellen är följande:

DROP TABLE Table_Name;

I ovanstående syntax måste vi ange tabellnamnet som vi vill ta bort från databasen.

Syntaxen för att ta bort flera tabeller från samma databas i en enda sats är följande:

DROP TABLE table1, table2, table3;

Vi kan ta bort flera tabeller från samma databas med ovanstående syntax.

Syntaxen för att ta bort indexet är följande:

DROP INDEX Index_Name;

Vi måste ange indexnamnet i ovanstående syntax precis efter Index nyckelordet.

Syntaxen för att ta bort vyn är följande:

DROP VIEW View_Name;

Vi måste ange vynamnet i syntaxen ovan precis efter vynyckelordet.

Syntaxen för att ta bort begränsningen från tabellen med ALTER TABLE är följande:

ALTER TABLE Table_Name DROP CONSTRAINT Constraint_Name;

Genom att använda kommandot ALTER TABLE i SQL kan vi ta bort begränsningen från tabellen.

Exempel på DROP-kommando:

Vi kommer att ta några exempel med kommandot DROP.

Steg 1: Skapa en databas eller använd en befintlig databas. Vi kommer att använda två databaser för kommandot DROP.

Steg 2: Skapa en ny tabell eller använd en befintlig tabell, index, vy.

Exempel 1: Skriv en fråga för att ta bort tabell students_information från skolans databas.

Vi väljer först skoldatabasen med hjälp av USE-nyckelordet följt av databasens namn.

USE School;

Vi kommer att skriva drop-kommandot för att ta bort students_information-tabellen från den valda databasen.

Betrakta tabellen Students_information med följande 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 tagit bort tabellen Students_information med alla poster som finns i tabellen från ovanstående fråga.

För att korskontrollera om frågan kördes framgångsrikt eller inte kommer vi att köra SELECT-frågan.

SELECT * FROM Students_Information;

När vi kör urvalsfrågan i tabellen Students_information, visas meddelandet om tabellen existerar inte, vilket innebär att kommandofrågan Drop i tabellen Students_information körs framgångsrikt.

Exempel 2: Skriv en fråga för att ta bort manager_view1-vyn från företagsdatabasen.

Överväg vyn manager_view1 med följande poster:

MANAGERID MANAGER_NAME MANAGER_DEPARTMENT
1 Snehdeep Kaur ORACLE
3 Abhishek Manish JAVA

Vi kommer att skriva drop-kommandot för att ta bort vyn manager_view1 från den valda databasen.

DROP VIEW Manager_view1;

Vi har tagit bort vyn manager_view1 från ovanstående fråga med alla poster i vyn.

För att korskontrollera om frågan kördes framgångsrikt eller inte kommer vi att köra SELECT-frågan.

SELECT * FROM Manager_view1;

När vi kör urvalsfrågan i vyn manager_view1, visas meddelandet om vyn existerar inte, vilket betyder att kommandot Släpp i vyn manager_view1 körs framgångsrikt.

Exempel 3: Skriv en fråga för att ta bort Cricket-databasen från systemet.

Innan vi kör drop-kommandot för databasen, kör vi först kommandot show databases för att i slutet av drop-kommandot verifiera att vi lyckats tappa Cricket-databasen från systemet.

SHOW DATABASES;
Databas
Chk
Företag
Cricket
Anställd
Informationsschema
Mysql
Prestanda_schema
Phpmyadmin
Skola
Testa
WordPress

Ovan är de databaser som redan finns i systemet; vi kommer att ta bort Cricket-databasen från systemet. Att släppa databasen innebär att ta bort alla objekt som finns i databastabellen, vyn, index, triggers, etc.

Nu kommer vi att köra en fråga för att ta bort Cricket-databasen.

DROP DATABASE Cricket;

Vi har kört släppfrågan på Cricket-databasen. För att kontrollera om databasen har släppts framgångsrikt eller inte, kommer vi att köra SHOW DATABASES-frågan.

SHOW DATABASES;
Databas
Chk
Företag
Anställd
Informationsschema
Mysql
Prestanda_schema
Phpmyadmin
Skola
Testa
WordPress

Som du kan se har cricketdatabasen tagits bort från systemet framgångsrikt.

Exempel 4: Skriv en fråga för att ta bort efternamnskolumnen från anställdtabellen.

ALTER TABLE employee DROP Last_Name;

Vi har tagit bort kolumnen Efternamn från anställdstabellen med kommandot DROP med kommandot ALTER i ovanstående fråga.

Fält Typ Null Nyckel Standard Extra
ANSTÄLLDA ID int(11) NEJ PRI NULL
FIRST_NAME varchar(20) JA NULL
LÖN int(11) JA NULL
STAD varchar(20) JA NULL
AVDELNING varchar(20) JA NULL
MANAGERID int(11) JA NULL

Ovanstående utdata visar att Last_Name har raderats från personaltabellen.

Vad är Truncate Command?

Truncate är ett annat Data Definition Language-kommando i Structured Query Language. Kommandot Truncate används för att radera alla poster från tabellen. Som DROP-kommandot, men TRUNCATE-kommandot innehåller inte en WHERE-sats. Truncate-kommandot är snabbare än både DROP- och DELETE-kommandot. Vi kan inte återställa posterna som kommandot DROP efter att ha använt kommandot TRUNCATE.

Syntax för TRUNCATE-kommandot i SQL:

TRUNCATE TABLE tablename;

I ovanstående syntax måste vi nämna tabellnamnet vars data vi vill radera från tabellen.

Vi kommer att ta några exempel med kommandot TRUNCATE.

Exempel på TRUNCATE-kommandot:

Steg 1: Skapa en databas eller använd en befintlig databas.

Steg 2: Skapa en ny tabell eller använd en befintlig tabell.

Betrakta den befintliga tabellen med följande poster:

Tabell:Anställd:

ANSTÄLLDA ID FIRST_NAME LAST_NAME LÖN STAD AVDELNING 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 TESTER 4
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
4003 RUCHIKA AGARWAL 60 000 DELHI ORACLE 1
5001 ARCHIT SHARMA 55500 DELHI TESTER 4

Exempel: Skriv en fråga för att radera alla poster från personaltabellen med kommandot trunkate.

TRUNCATE TABLE Employee;

Vi har tagit bort alla poster från ovanstående fråga från personaltabellen.

För att korskontrollera om alla poster från medarbetartabellen har raderats eller inte lyckats, kommer vi att köra SELECT-frågan på personaltabellen.

SELECT * FROM Employee;
ANSTÄLLDA ID FIRST_NAME LAST_NAME LÖN STAD AVDELNING MANAGERID

När vi kör urvalsfrågan på anställdstabellen visas det tomma uppsättningsmeddelandet, vilket betyder att trunkeringskommandot på anställdstabellen körs framgångsrikt.

Punkterna nedan visar skillnaden mellan kommandot Drop och Truncate-kommandot i Structured Query Language:

DROP-kommandot TRUNCATE-kommandot
Kommandot DROP tar bort tabellstrukturen och tabellposterna. Kommandot TRUNCATE tar bort alla poster från tabellen.
DROP-kommandot är ett Data Definition Language-kommando. TRUNCATE-kommandot är också ett datadefinitionsspråk-kommando.
I kommandot DROP är tabellutrymme ledigt från minnet Kommandot TRUNCATE frigör inte tabellutrymmet från minnet.
Tabellvyn finns inte i kommandot DROP Tabellvyn finns i kommandot TRUNCATE
I kommandot DROP kan vi inte använda raderingsutrymme. I kommandot TRUNCATE kan vi använda deleteutrymme men mindre än jämfört med DELETE-satsen.
I kommandot DROP kommer integritetsbegränsningarna att tas bort automatiskt från tabellen. Integritetsbegränsningarna kommer inte att tas bort från tabellen i kommandot TRUNCATE.
Kommandot DROP raderar posterna snabbt, men det finns många komplikationer. TRUNCATE-kommandot är snabbare än DROP-kommandot.


  1. Kumulativ summa i MS SQL-server

  2. Om V-formatelementet i Oracle

  3. Programmatiskt hämta SQL Server lagrad procedur källa som är identisk med källan som returneras av SQL Server Management Studio gui?

  4. ADO.NET-leverantören 'Oracle.ManagedDataAccess.Client' är antingen inte registrerad i maskinens eller programmets konfigurationsfil eller kunde inte laddas