MYSQL

 

EXCLUSÃO DE DADOS

 

A função primordial do comando DELETE consiste em eliminar registros de uma tabela, oferecendo a possibilidade de filtrar para remover dados específicos conforme desejado.

 

Portanto, para efetuar a exclusão de uma tupla específica em um banco de dados, é necessário empregar a seguinte sintaxe:

 

DELETE (tuplas a serem excluídas) FROM (tabela onde as tuplas se encontram);

 

A título de ilustração, será abordado um cenário envolvendo um banco de dados de uma rede de lojas que opera através de diversas filiais em todo o território brasileiro.

 
 

Com isso, segue abaixo o script de criação de tabelas e para popular o banco com algumas informações:

 
-- Script para criação das tabelas

CREATE DATABASE FranquiaLoja;
USE FranquiaLoja;

CREATE TABLE LOJA (
   idLoja INTEGER NOT NULL,
   nome VARCHAR(100) NOT NULL,
   CONSTRAINT LOJA_PK PRIMARY KEY(idLoja)
);

CREATE TABLE CLIENTE (
    idCliente INTEGER NOT NULL,
    idLoja INTEGER  NOT NULL,
    nome VARCHAR(100)  NOT NULL,
    cpf  NUMERIC(11) NOT NULL,
    rua VARCHAR(100) NOT NULL,
    cidade VARCHAR(100) NOT NULL,
    estado VARCHAR(2) NOT NULL,
    credito_limite DECIMAL(7,2) NOT NULL,
    CONSTRAINT CLIENTE_PK PRIMARY KEY(idCliente),
    CONSTRAINT CLIENTE_LOJA_FK FOREIGN KEY(idLoja) REFERENCES LOJA(idLoja)
);

-- Inserção das informações das lojas

INSERT INTO LOJA VALUES (1, 'Casas Bahia');
INSERT INTO LOJA VALUES (2, 'Ponto Frio');
INSERT INTO LOJA VALUES (3, 'Pao de acucar');
INSERT INTO LOJA VALUES (4, 'Extra');
INSERT INTO LOJA VALUES (5, 'Acai atacadista');

-- Inserção das informações dos clientes

INSERT INTO CLIENTE VALUES (1,1, 'Pedro Augusto da Rocha',
'48181884094', 'Rua Pedro Carlos Hoffman', 'Porto Alegre', 'RS', 700.00);
INSERT INTO CLIENTE VALUES (2,2, 'Antonio Carlos Mamel',
'50574326219', 'Av. Pinheiros', 'Belo Horizonte', 'MG', 3500.50);
INSERT INTO CLIENTE VALUES (3,3, 'Luiza Augusta Mhor', '59154535387',
'Rua Salto Grande', 'Niteroi', 'RJ', 4000.00);
INSERT INTO CLIENTE VALUES (4,4, 'Jane Ester', '69760415160',
'Av. 7 de setembro', 'Erechim', 'RS', 800.00);
INSERT INTO CLIENTE VALUES (5,5, 'Marcos Antonio dos Santos',
'73649809893', 'Av. Farrapos', 'Porto Alegre', 'RS', 4250.25);

Com as informações prontas, segue a seguinte tabela como resultado inicial, podendo ser visualizada utilizando o comando a seguir:

 
SELECT * FROM CLIENTE;


 

Com isso, por alguns problemas na franquia do dono em determinado estado, ele deseja excluir todos os clientes que moram no Rio Grande do Sul (RS). Logo, para isso, segue o seguinte comando:

 
DELETE FROM CLIENTE WHERE estado = 'RS';


 

A cláusula WHERE no código anterior tem como função filtrar o tipo de informação que deseja ser, no caso, deletado, pois como desejado pelo dono da franquia, deseja-se deletar todos os clientes que habitam no Rio Grande do Sul. Mas enfim, como estaria a tabela depois das exclusões? Para visualizar melhor, segue abaixo um comando básico para mostrar a tabela resultante:

 
SELECT * FROM CLIENTE;

Tendo como resultado a seguinte tabela:

 
 

Com isso, pode-se perceber que todos os clientes que moram no estado do Rio Grande de Sul foram deletados do bando de dados geral da loja.


Caso você quisesse apagar todos os dados da tabela, bastaria omitir a cláusula WHERE. Então, o comando ficaria assim:

 
DELETE * FROM CLIENTE;
 

Atividade de Fixação

 

No intuito de fixar a aprendizagem iniciada por meio deste módulo e verificar como está sua compreensão sobre o mesmo, são sugeridos alguns exercícios de fixação para serem resolvidos. Clique no link de exercícios ao lado, pois será por meio dele iniciada a lista de exercícios sobre os conteúdos estudados até este momento. Boa revisão sobre os mesmos!!