Il ya deux façons d'éliminer les enregistrements dans Oracle. La première consiste à utiliser le " tuer tous " situation où la commande TRUNCATE vide complètement la table de base de données , et l'autre est la commande DELETE , qui peut filtrer les enregistrements éventuels et inverser l'action dans des cas tels que la suppression accidentelle . La meilleure façon de démontrer ce processus est de créer une table de test et d'essayer les commandes potentiels sur l'expérience plutôt que sur une base de données existante . Instructions
Supprimer
1
Créer une table de test et de le remplir avec des données pour tester le résultat. Les données insérées illustre l'utilisation de la suppression et la déclaration tronquée, comme suit :
CREATE TABLE test ( testdata VARCHAR2 ( 2));
INSERT INTO essai ( testdata ) VALUES (' AX ');
INSERT INTO essai ( testdata ) VALUES (' AY ' );
INSERT INTO essai ( testdata ) VALUES ( ' AZ ');
INSERT INTO essai ( testdata ) VALUES (' BX' );
INSERT INTO essai ( testdata ) VALUES (' par');
INSERT INTO essai ( testdata ) VALUES (' BZ '); < br >
INSERT INTO essai ( testdata ) VALUES (' CX' );
INSERT INTO essai ( testdata ) VALUES (' CY ');
INSERT INTO essai VALUES ( testdata ) ( « CZ ») ;
INSERT INTO essai VALUES ( testdata ) (' DX ');
INSERT INTO essai ( testdata ) VALUES (' DY ');
INSERT EN essai ( testdata ) VALUES (' DZ ') ;
COMMIT ;
SELECT * FROM test ;
2
Supprimer un certain nombre de lignes à l'aide de la commande delete , mais ne commettez pas le résultat. Cela montrera comment supprimer protège les données contre une suppression accidentelle dans des circonstances normales . La commande delete fonctionne en ligne de commande comme suit :
SQL > DELETE FROM test où testdata LIKE ' A% ';
Ceci va supprimer toutes les lignes préfixées par "A" et de laisser le reste demeurant
Rollback le résultat et afficher les résultats de la table comme ceci: .
SQL > ROLLBACK ;
Cela inversera la déclaration de suppression précédent et le tableau doit maintenant être remise à son état original. Ceci est vérifiable par:
SQL > SELECT * FROM test ;
3
Exécutez la commande DELETE nouveau, puis "Commit " et " démantèlement" avant de tester la sortie comme illustré :
SQL > DELETE FROM test où testdata LIKE ' A% ';
SQL > COMMIT ;
SQL > ROLLBACK ;
SQL > SELECT * FROM test ;
Cela montre que la déclaration Oracle "DELETE" a été efficace et a ignoré la déclaration d'annulation , en raison d'une action " COMMIT " qui aura lieu immédiatement après. Cela signifie que toutes les lignes commençant par "A" dans le champ " testdata " disparaissent de la base de données et ne sont pas récupérables avec une déclaration «rollback ».
TRUNCATE
4 < p> Exécuter une déclaration tronquée sur la table de test comme suit :
SQL > Test de
TRUNCATE tABLE ;
5
Rollback la déclaration précédente comme suit:
SQL > ROLLBACK ;
6
sélectionner des éléments dans la table de test comme suit:
SQL > SELECT * FROM test ;
Cela montre pas d'articles sur la table. La déclaration «rollback » ne fonctionne pas sur la commande TRUNCATE et toutes les lignes de la base de données disparaissent.
Une autre différence majeure "DELETE" est que " TRUNCATE " travaille plus vite, mais n'est pas capable de filtrer les données à l'aide une clause «WHERE» (contrairement DELETE).