Baixe o app para aproveitar ainda mais
Prévia do material em texto
Grupo SER Educacional | Tecnologias e Linguagens de Banco de Dados 1 TECNOLOGIAS E LINGUAGENS DE BANCO DE DADOS Tecnologias e Linguagens de Banco de Dados JOÃO DANILO NOGUEIRA ELIMINANDO LINHAS EM UMA TABELA AULA 12 Diretor Executivo DAVID LIRA STEPHEN BARROS Direção Editorial ANDRÉA CÉSAR PEDROSA Projeto Gráfico MANUELA CÉSAR DE ARRUDA Autor JOÃO DANILO NOGUEIRA Desenvolvedor CAIO BENTO GOMES DOS SANTOS O Autor João Danilo Nogueira Olá. Meu nome é João Danilo. Sou graduado em Ciência da Computação pela Faculdade Grande Fortaleza (FGF) e amo programar. Atualmente, o foco de minha expertise é na área de gerenciamento de projetos, teoria dos números, RSA e criptografia. Vai ser um prazer enorme ajudar VOCÊ a se tornar um excelente desenvolvedor de software ou administrador de banco de dados. Conte comigo para lhe ajudar nessa trajetória rumo ao seu desenvolvimento profissional! Muito sucesso para você. JOÃO DANILO NOGUEIRA “ Iconográficos Olá. Meu nome é Manuela César de Arruda. Sou o responsável pelo projeto gráfico de seu material. Esses ícones irão aparecer em sua trilha de aprendizagem toda vez que: INTRODUÇÃO para o início do desenvolvimento de uma nova competência; DEFINIÇÃO houver necessidade de se apresentar um novo conceito; NOTA quando forem necessários observações ou complementações para o seu conhecimento; IMPORTANTE as observações escritas tiveram que ser priorizadas para você; EXPLICANDO MELHOR algo precisa ser melhor explicado ou detalhado; VOCÊ SABIA? curiosidades e indagações lúdicas sobre o tema em estudo, se forem necessárias; SAIBA MAIS textos, referências bibliográficas e links para aprofundamento do seu conhecimento; REFLITA se houver a necessidade de chamar a atenção sobre algo a ser refletido ou discutido sobre; ACESSE se for preciso acessar um ou mais sites para fazer download, assistir vídeos, ler textos, ouvir podcast; RESUMINDO quando for preciso se fazer um resumo acumulativo das últimas abordagens; ATIVIDADES quando alguma atividade de autoaprendizagem for aplicada; TESTANDO quando o desenvolvimento de uma competência for concluído e questões forem explicadas; Sumário 1 ELIMINANDO LINHAS EM UMA TABELA ................................................................... 6 1.1 Comando DELETE .................................................................................................. 6 Considerações Finais ................................................................................................ 10 Atividades de Autoaprendizagem .............................................................................. 10 Questionário Avaliativo ............................................................................................ 10 Bibliografia .............................................................................................................. 11 Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 6 1 Eliminando linhas em uma tabela INTRODUÇÃO: Você sabe qual a diferença entre os termos deleção e exclusão de dados? Aparentemente eles parecem significar a mesma coisa. Mas é só aparência! Ao excluirmos algo de nosso disco rígido, por exemplo, damos um adeus àquela informação excluída. Mas, ao deletarmos essa mesma informação, pedimos ao sistema operacional que a suprima de nossas visualizações. Neste caso, a informação continua lá, mas invisível para nós. Com a grande maioria dos bancos de dados acontece a mesma coisa. Ao deletarmos uma linha de uma tabela, o SGBD muda o status daquela linha para “deletada”. Alguns gerenciadores implementam comandos como RECALL, RESTORE, UNDO, etc, para recuperar linhas deletadas. 1.1 Comando DELETE No MySQL, assim como nos demais SGBDs que se utilizam do padrão ANSI, o comando para deletar linhas de uma tabela é o DELETE. Sua sintaxe é bastante parecida com a dos demais comandos que vimos anteriormente, ou seja, possui uma cláusula WHERE seguida de uma condição, como mostra a sintaxe abaixo: DELETE FROM [tabela] WHERE [condição]; Onde: [tabela]: tabela de onde as linhas deverão ser eliminadas. OBJETIVO: Ao término desta aula você será capaz de eliminar linhas em uma tabela em uma tabela de banco de dados. Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 7 [condição]: expressão lógica que expressa a condição que restringe as linhas a serem eliminadas da tabela [tabela]. A cláusula WHERE permite que várias linhas sejam deletadas de uma só vez, contanto que seja atendida a condição descrita naquela cláusula, como neste exemplo a seguir: DELETE FROM `funcionarios` WHERE `depto`=3; Neste caso, todos os funcionários que pertencem ao departamento de código 3 serão deletados da tabela “funcionarios". Utilize o construtor de comandos SQL do PhpMyAdmin para testar o comando acima. Você verá que, após as operações realizadas na massa de dados da tabela “funcionarios" (na aula anterior, lembra?), o resultado da execução deste comando não resultará em eliminação de linha alguma, uma vez que não mais existem funcionários pertencentes ao departamento de código 3 . Veja você mesmo o resultado disto no console do PhpMyAdmin, conforme ilustra a figura a seguir: Figura 1 - Construção do comando DELETE para eliminar todos os funcionários do departamento 3. Após ter digitado o comando DELETE tal e qual os requisitos explicados anteriormente, basta clicar no botão “Simulate query” (simular consulta) para Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 8 testar que linhas de fato seriam deletadas caso o comando fosse executado, ou diretamente no botão “Go”. Primeiramente tente clicar no botão “Simulate query” e visualize a seguinte mensagem do MySQL, através da interface do PhpMyAdmin: Figura 2 - Mensagem de retorno do MySQL para a deleção dos funcionários do departamento de número 3. Como, de fato, havíamos alterado o único funcionário do departamento 3 para o departamento 2, anteriormente, o resultado deste comando não poderia ser outro, senão “Matched rows: 0”, ou seja, a quantidade linhas correspondentes é igual a zero. Se você tiver certeza de que, realmente, as linhas a serem deletadas são as que você predefiniu na cláusula WHERE, clique em “Go” e veja a seguinte mensagem de retorno (feedback): Como o MySQL não dispõe de comandos de reversão para ações como exclusão de linhas, no caso de uso pelo PhpMyAdmin, convém sempre simular a deleção em massa, ao invés de eliminar linhas de forma intempestiva , pois, uma vez deletada uma linha, pelo PhpMyAdmin, não haverá como revertê-la. No caso do uso do MySQL em transações de programas PHP, existem alguns comandos que podem contornar esta situação, como o COMMIT (que confirma a transação) e o ROLLBACK (que a reverte). IMPORTANTE Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 9 Figura 3 - Mensagem de retorno da execução de um comando DELETE. Vamos praticar? matric Nome endereco salario Depto 0001 JOÃO ALBERTO SILVA RUA VERGUEIRO, 40, APTO 202 5280 001 0002 MARIA CYNTHIA COSTA AV SOARES DA VEIGA, 1468, APTO 1301 3750 001 0003 ANA MARIA CARDOSO RUA HOMERO MACEDO, 608, APTO 101-A 7205 002 0004 SÍLVIOROMERO DOTAS RUA VERGUEIRO, 44 2850 002 0005 SANDRA MARIA MOTA AV SETE DE SETEMBRO, 1209, APTO 401 4620 002 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... Tabela 1: Massa de dados alterada após dois últimos comandos UPDATE, para ser adicionada de 5 linhas e, na sequência, subtraída dessas mesmas. Agora é com você. Exercite o comando DELETE, povoando a tabela “funcionarios” com mais 5 linhas que satisfaçam determinada condição. Depois, execute o comando DELETE com uma condição na cláusula WHERE que delete apenas aquilo que você adicionou na tabela. ATIVIDADES Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 10 Considerações Finais SAIBA MAIS: Falamos a respeito de comandos específicos para reversão ou confirmação de uma transação em uma tabela MySQL. Quer saber mais sobre isto? Então leia estes artigos: Artigo: “Transações no MySQL”, acessível pelo link: http://sqlparatodos.com.br/transacoes-no-mysql/ (Acesso em 05/12/2017). Artigo: “Excluindo Registros de uma Tabela no MySQL com DELETE e TRUNCATE TABLE”, acessível pelo link: http://www.bosontreinamentos.com.br/mysql/mysql -delete-e-truncate- table-excluir-registros-de-uma-tabela-16/ (Acesso em 05/12/2017). Atividades de Autoaprendizagem ATIVIDADES: Pronto para consolidar seus conhecimentos? Leia atentamente o enunciado de sua atividade de autoaprendizagem proposta para esta aula. Se você está fazendo o seu curso presencialmente, é só abrir o seu caderno de atividades. Se você estiver cursando na modalidade de EAD (Educação a Distância), acesse a sua t rilha de aprendizagem no seu ambiente virtual e realize a atividade de modo online. Você pode desenvolver esta atividade sozinho ou em parceria com seus colegas de turma. Dificuldades? Poste suas dúvidas no fórum de discussões em seu ambiente virtual de aprendizagem. Concluiu a sua atividade? Submeta o resultado em uma postagem diretamente em seu ambiente virtual de aprendizagem e boa sorte! Questionário Avaliativo TESTANDO: Chegou a hora de você provar que aprendeu tudo o que foi abordado ao longo desta aula. Para isto, leia e resolva atentamente as questões do seu caderno de atividades. Se você estiver fazendo este curso a distância, acesse o QUIZ (Banco de Questões) em seu ambiente virtual de aprendizagem. http://sqlparatodos.com.br/transacoes-no-mysql/ http://www.bosontreinamentos.com.br/mysql/mysql-delete-e-truncate-table-excluir-registros-de-uma-tabela-16/ http://www.bosontreinamentos.com.br/mysql/mysql-delete-e-truncate-table-excluir-registros-de-uma-tabela-16/ Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 11 Bibliografia REIS, F. d. (11 de Nov de 2013). Excluindo Registros de uma Tabela no MySQL com DELETE e TRUNCATE TABLE. Bóson Treinamentos em Tecnologia. Acesso em 5 de Dez de 2017, disponível em http://www.bosontreinamentos.com.br/mysql/mysql -delete-e-truncate-table- excluir-registros-de-uma-tabela-16/ WILSON, J. (24 de Ago de 2015). Transações no MySQL. SQL para Todos. Acesso em 5 de Dez de 2017, disponível em http://sqlparatodos.com.br/transacoes-no- mysql/ Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 12
Compartilhar