A criação e manipulação de dados formam a base dos bancos de dados e denominamos DDL e DML, respectivamente. DDL é uma abreviação de Data Definition Language. Ele poderia criar ou modificar as estruturas de dados nos bancos de dados e elas não puderam ser usadas para alterar os dados presentes nas tabelas. Por exemplo, temos comandos que apenas criam uma tabela com os atributos de tabela especificados, mas nunca adicionam nenhuma linha à tabela. Mas um DML, a Data Manipulation Language, é capaz de adicionar, excluir ou modificar dados nas tabelas. Como regra geral, os comandos DDL lidam com as estruturas da tabela, enquanto os comandos DML lidam com os dados reais. Seja como for, por que simplesmente nos desviamos do tópico "Diferença entre Truncar e Excluir"? Há razões pelas quais falamos sobre o DML e o DDL. Você entenderia isso na próxima discussão.
O objetivo de um comando Truncar é excluir a tabela inteira. Portanto, quando você usa um comando Truncar, perde todos os dados da tabela e deve ser cauteloso ao usá-los. Vamos saber como usá-lo.
A sintaxe do Truncate:
TABELA TRUNCATE Nome da tabela;
Aqui, você deve especificar o nome da tabela que deve ser excluída no seu conjunto. Isso garante que haja qualquer mesa no espaço de memória. Aqui está um exemplo do uso de Truncate.
Abaixo está a tabela 'employee' e basta olhar para as linhas de dados nela.
emp-id | emp-name | designação |
1011 | Jack | Escriturário |
1012 | Rosy | Admin |
1014 | Nancy | Finança |
Agora, vamos emitir o comando abaixo na tabela de funcionários.
TABELA TRUNCATE empregado;
Aqui está o resultado da sintaxe acima e não há dados nela.
emp-id | emp-name | designação |
O objetivo de um comando Excluir é remover as linhas especificadas da tabela. Aqui, a cláusula 'Where' é usada aqui para especificar as linhas que precisam ser excluídas. Quando não especificamos as linhas, o comando excluiria todas as linhas da tabela. Basta olhar para a sintaxe dele.
EXCLUIR DE empregado;
A sintaxe acima exclui todas as linhas da tabela 'employee'. Portanto, a tabela resultante não conteria dados.
EXCLUIR DE empregado ONDE emp-id = 1011;
Esta instrução exclui apenas uma única linha cujo emp-id é 1011. Portanto, a tabela resultante seria a seguinte.
emp-id | emp-name | designação |
1012 | Rosy | Admin |
1014 | Nancy | Finança |
Truncar -> remover dados inteiros da tabela -> o espaço de tabela é liberado agora.
Excluir -> Copie os dados da tabela original para o espaço Rollback -> exclua os dados especificados / a tabela inteira -> o espaço da tabela é liberado, mas o espaço Rollback é preenchido.
Truncar é um comando DDL, o gatilho não é permitido aqui. Mas um Delete é um comando DML, Triggers são permitidos aqui.
Então, essas são as diferenças e vamos olhar de forma tabular.
S.No | Diferenças em | Truncar | Excluir |
1. | DDL ou DML? | É um DDL e opera no nível da estrutura de dados. Outros exemplos de DDL são CREATE e ALTER. | É um comando DML e opera nos dados da tabela. O DML significa Linguagem de manipulação de dados. Os comandos como SELECT, UPDATE e INSERT são exemplos perfeitos para um DML. O DML significa Linguagem de Manipulação de Dados. |
2. | Como funciona? | Assim que emitimos o comando Truncar, ele apenas procura a tabela especificada. Em seguida, remove completamente todos os dados da memória. | Aqui, os dados da tabela original são copiados para o espaço chamado espaço 'Reverter' antes de fazer a manipulação real dos dados. Em seguida, as alterações são feitas no espaço de dados da tabela real. |
3. | RollBack | O comando Truncar nunca usa um espaço de reversão e não foi possível retornar aos dados originais. Um espaço de reversão é exclusivo e é ocupado quando os comandos DML são emitidos. | O comando Delete usa o espaço de reversão e podemos usar 'Commit' ou 'RollBack' para aceitar ou cancelar as alterações, respectivamente.
|
4. | Gatilhos | Truncar é um comando DDL, gatilhos não são permitidos. | Excluir é um comando DML, gatilhos são permitidos aqui.
|
5. | O que é mais rápido? | Ele pode remover todos os dados e não há necessidade de verificar se há condições correspondentes. Além disso, os dados originais não são copiados para o espaço de reversão e isso economiza muito tempo. Esses dois fatores fazem o Truncate funcionar mais rápido que o Delete.
| Ele usa o espaço de reversão e sempre os dados originais devem ser mantidos nele. Isso é um fardo extra e, por sua vez, leva muito tempo que o Truncate. |
6. | Podemos usar a cláusula WHERE? | Como o Truncate nunca procura nenhuma condição correspondente e apenas remove todas as linhas, não podemos usar uma cláusula 'Where' aqui. | Mas sempre podemos especificar a condição com a ajuda da cláusula 'where' no comando Excluir. |
7. | Que ocupa mais espaço? | O truncado não vai usar o espaço de reversão e economiza essa memória. | Ele precisa de um backup na forma de espaço de reversão e, portanto, requer mais espaço de memória do que o truncado. |
Conhecer as diferenças entre duas entidades amplia o conhecimento de ambas! Você chegou ao caminho certo, ou seja, a página da web para entender as diferenças, especialmente entre os comandos truncar e excluir. Espero que agora você esteja claro com suas diferenças e deixe-nos saber se nós o ajudamos a entender isso. Você também pode nos ajudar a apontar quais foram deixados!