Database
 sql >> Base de données >  >> RDS >> Database

Drop vs Truncate en SQL

Dans cet article, nous allons apprendre et comprendre les commandes Drop et Truncate et la différence entre ces deux commandes.

Qu'est-ce que la commande Drop ?

Drop est une commande du langage de définition de données dans le langage de requête structuré. La commande Drop dans SQL est utilisée pour supprimer ou supprimer la définition de table, la base de données, les index, la vue, les déclencheurs et les contraintes de données des tables de base de données.

Dans le langage de requête structuré, la commande drop est utilisée pour supprimer les éléments du système de gestion de base de données relationnelle (RDBMS).

La commande Supprimer peut annuler les données une fois qu'elle est exécutée, mais les commandes Supprimer ne peuvent pas annuler les données une fois qu'elles sont exécutées. La commande Drop est utilisée pour libérer de la mémoire là où l'espace table est stocké, car les commandes Drop suppriment définitivement la table et son contenu.

La commande Drop est rapide par rapport à la commande tronquer dans le langage de requête structuré. Cependant, le temps d'exécution de la commande drop est lent car il comporte de nombreuses complications.

Pour supprimer une ou plusieurs colonnes de la table, nous utilisons la commande drop avec la commande ALTER TABLE.

La syntaxe de la commande DROP pour supprimer la base de données est la suivante :

DROP DATABASE Database_Name;

Dans la syntaxe ci-dessus, nous devons spécifier le nom de la base de données que nous voulons supprimer du système.

Remarque :- Soyez prudent avant d'utiliser la commande DROP pour supprimer la base de données car les commandes drop suppriment tous les objets de la base de données comme les tables, les index, les vues, les déclencheurs créés dans la base de données.

La syntaxe pour supprimer le tableau est la suivante :

DROP TABLE Table_Name;

Dans la syntaxe ci-dessus, nous devons spécifier le nom de la table que nous voulons supprimer de la base de données.

La syntaxe pour supprimer plusieurs tables de la même base de données dans une seule instruction est la suivante :

DROP TABLE table1, table2, table3;

Nous pouvons supprimer plusieurs tables de la même base de données en utilisant la syntaxe ci-dessus.

La syntaxe pour supprimer l'index est la suivante :

DROP INDEX Index_Name;

Nous devons spécifier le nom de l'index dans la syntaxe ci-dessus juste après le mot-clé de l'index.

La syntaxe pour supprimer la vue est la suivante :

DROP VIEW View_Name;

Nous devons spécifier le nom de la vue dans la syntaxe ci-dessus juste après le mot-clé de la vue.

La syntaxe pour supprimer la contrainte de la table à l'aide de ALTER TABLE est la suivante :

ALTER TABLE Table_Name DROP CONSTRAINT Constraint_Name;

En utilisant la commande ALTER TABLE dans le SQL, nous pouvons supprimer la contrainte de la table.

Exemple de commande DROP :

Nous allons prendre quelques exemples en utilisant la commande DROP.

Étape 1 : Créez une base de données ou utilisez une base de données existante. Nous allons utiliser deux bases de données pour la commande DROP.

Étape 2 : Créez une nouvelle table ou utilisez une table, un index ou une vue existants.

Exemple 1 : Écrivez une requête pour supprimer la table student_information de la base de données de l'école.

Nous allons d'abord sélectionner la base de données de l'école en utilisant le mot-clé USE suivi du nom de la base de données.

USE School;

Nous allons écrire la commande drop pour supprimer la table student_information de la base de données sélectionnée.

Considérez la table Students_information avec les enregistrements suivants :

Student_Id Student_Name Student_Cours Student_Marks
1 Anjali BCOM 85
2 Pranav ACC 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;

Nous avons supprimé la table Students_information avec tous les enregistrements présents dans la table à partir de la requête ci-dessus.

Pour vérifier si la requête a été exécutée avec succès ou non, nous exécuterons la requête SELECT.

SELECT * FROM Students_Information;

Lorsque nous exécutons la requête de sélection sur la table Students_information, la table n'existe pas de message s'affiche, ce qui signifie que la requête de commande Drop sur la table Students_information est exécutée avec succès.

Exemple 2 : Écrivez une requête pour supprimer la vue manager_view1 de la base de données de l'entreprise.

Considérez la vue manager_view1 avec les enregistrements suivants :

MANAGERID MANAGER_NAME MANAGER_DEPARTMENT
1 Snehdeep Kaur ORACLE
3 Abhishek Manich JAVA

Nous allons écrire la commande drop pour supprimer la vue manager_view1 de la base de données sélectionnée.

DROP VIEW Manager_view1;

Nous avons supprimé la vue manager_view1 de la requête ci-dessus avec tous les enregistrements présents dans la vue.

Pour vérifier si la requête a été exécutée avec succès ou non, nous exécuterons la requête SELECT.

SELECT * FROM Manager_view1;

Lorsque nous exécutons la requête de sélection sur la vue manager_view1, le message "La vue n'existe pas" s'affiche, ce qui signifie que la requête de commande Drop sur la vue manager_view1 est exécutée avec succès.

Exemple 3 : Écrivez une requête pour supprimer la base de données Cricket du système.

Avant d'exécuter la commande drop pour la base de données, nous exécutons d'abord la commande show databases pour vérifier à la fin de la commande drop que nous avons bien supprimé la base de données Cricket du système.

SHOW DATABASES;
Base de données
Vérifier
Entreprise
Cricket
Employé
Information_schema
Mysql
Performance_schema
Phpmyadmin
École
Tester
WordPress

Ci-dessus se trouvent les bases de données qui existent déjà dans le système ; nous supprimerons la base de données Cricket du système. La suppression de la base de données signifie la suppression de tous les objets présents dans la table, la vue, l'index, les déclencheurs, etc. de la base de données.

Maintenant, nous allons exécuter une requête pour supprimer la base de données Cricket.

DROP DATABASE Cricket;

Nous avons exécuté la requête drop sur la base de données Cricket. Pour vérifier si la base de données est supprimée avec succès ou non, nous exécuterons la requête SHOW DATABASES.

SHOW DATABASES;
Base de données
Vérifier
Entreprise
Employé
Information_schema
Mysql
Performance_schema
Phpmyadmin
École
Tester
WordPress

Comme vous pouvez le voir, la base de données de cricket est supprimée du système avec succès.

Exemple 4 : Écrivez une requête pour supprimer la colonne du nom de famille de la table des employés.

ALTER TABLE employee DROP Last_Name;

Nous avons supprimé la colonne Last_Name de la table des employés à l'aide de la commande DROP avec la commande ALTER dans la requête ci-dessus.

Champ Type Nul Clé Par défaut Extra
ID EMPLOYEE int(11) NON PRI NULL
FIRST_NAME varchar(20) OUI NULL
SALAIRE int(11) OUI NULL
VILLE varchar(20) OUI NULL
DÉPARTEMENT varchar(20) OUI NULL
MANAGERID int(11) OUI NULL

La sortie ci-dessus montre que Last_Name est supprimé de la table des employés.

Qu'est-ce que la commande Tronquer ?

Tronquer est une autre commande du langage de définition de données dans le langage de requête structuré. La commande Tronquer est utilisée pour supprimer tous les enregistrements de la table. Comme la commande DROP, mais la commande TRUNCATE ne contient pas de clause WHERE. La commande Tronquer est plus rapide que les commandes DROP et DELETE. Nous ne pouvons pas restaurer les enregistrements comme la commande DROP après avoir utilisé la commande TRUNCATE.

Syntaxe de la commande TRUNCATE en SQL :

TRUNCATE TABLE tablename;

Dans la syntaxe ci-dessus, nous devons mentionner le nom de la table dont nous voulons supprimer les données de la table.

Nous allons prendre quelques exemples en utilisant la commande TRUNCATE.

Exemple de commande TRUNCATE :

Étape 1 : Créez une base de données ou utilisez une base de données existante.

Étape 2 : Créez un nouveau tableau ou utilisez un tableau existant.

Considérez la table existante avec les enregistrements suivants :

Table :Employé :

ID EMPLOYEE FIRST_NAME LAST_NAME SALAIRE VILLE DÉPARTEMENT MANAGERID
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
1002 VAIBHAV SHARMA 60000 NOÏDA C# 5
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 CHANDIGAR ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50000 Bombay C# 5
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA WANRE 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 Bombay JAVA 3
4001 RAJESH GOUD 60500 Bombay TEST 4
4002 ASHWINI BAGHAT 54500 NOÏDA JAVA 3
4003 RUCHIKA AGARWAL 60000 DELHI ORACLE 1
5001 ARCHIT SHARMA 55500 DELHI TEST 4

Exemple : Écrivez une requête pour supprimer tous les enregistrements de la table des employés à l'aide de la commande truncate.

TRUNCATE TABLE Employee;

Nous avons supprimé tous les enregistrements de la requête ci-dessus de la table des employés.

Pour vérifier si tous les enregistrements de la table des employés sont supprimés ou non, nous exécuterons la requête SELECT sur la table des employés.

SELECT * FROM Employee;
ID EMPLOYEE FIRST_NAME LAST_NAME SALAIRE VILLE DÉPARTEMENT MANAGERID

Lorsque nous exécutons la requête de sélection sur la table des employés, le message d'ensemble vide s'affiche, ce qui signifie que la commande de troncature sur la table des employés est exécutée avec succès.

Les points ci-dessous montrent la différence entre la commande Drop et la commande Truncate dans le langage de requête structuré :

La commande DROP La commande TRUNCATE
La commande DROP supprime la structure de la table et les enregistrements de la table. La commande TRUNCATE supprime tous les enregistrements de la table.
La commande DROP est une commande du langage de définition de données. La commande TRUNCATE est également une commande du langage de définition de données.
Dans la commande DROP, l'espace table est libre de mémoire La commande TRUNCATE ne libère pas l'espace table de la mémoire.
La vue tableau n'existe pas dans la commande DROP La vue de table existe dans la commande TRUNCATE
Dans la commande DROP, nous ne pouvons pas utiliser d'espace de suppression. Dans la commande TRUNCATE, nous pouvons utiliser un espace de suppression mais moins que par rapport à l'instruction DELETE.
Dans la commande DROP, les contraintes d'intégrité seront supprimées automatiquement de la table. Les contraintes d'intégrité ne seront pas supprimées du tableau dans la commande TRUNCATE.
La commande DROP supprime les enregistrements rapidement, mais il y a de nombreuses complications. La commande TRUNCATE est plus rapide que la commande DROP.