BANCO DE DADOS Flashcards
Create table
– Criando a tabela Clientes
CREATE TABLE Clientes (
cliente_id INT PRIMARY KEY AUTO_INCREMENT,
nome VARCHAR(50),
email VARCHAR(50)
);
– Criando a tabela Pedidos
CREATE TABLE Pedidos (
pedido_id INT PRIMARY KEY AUTO_INCREMENT,
data_pedido DATE,
valor DECIMAL(10, 2),
cliente_id INT,
FOREIGN KEY (cliente_id) REFERENCES Clientes(cliente_id)
);
Inserir registros
– Inserindo registros na tabela Clientes
INSERT INTO Clientes (nome, email) VALUES (‘João Silva’, ‘joao@gmail.com’);
INSERT INTO Clientes (nome, email) VALUES (‘Maria Souza’, ‘maria@gmail.com’);
– Inserindo registros na tabela Pedidos
INSERT INTO Pedidos (data_pedido, valor, cliente_id) VALUES (‘2024-09-01’, 150.00, 1);
INSERT INTO Pedidos (data_pedido, valor, cliente_id) VALUES (‘2024-09-02’, 250.00, 2);
Deletar registros
– Deletando o cliente com cliente_id = 1
DELETE FROM Clientes WHERE cliente_id = 1;
Atualizando registros
– Atualizando o nome do cliente com cliente_id = 2
UPDATE Clientes SET nome = ‘Maria Oliveira’ WHERE cliente_id = 2;
Filtro de registros
– Selecionando todos os pedidos feitos pelo cliente com cliente_id = 2
SELECT * FROM Pedidos WHERE cliente_id = 2;
Select com inner join
– Selecionando dados de Clientes e seus Pedidos
SELECT Clientes.nome, Pedidos.pedido_id, Pedidos.valor
FROM Clientes
INNER JOIN Pedidos ON Clientes.cliente_id = Pedidos.cliente_id;
O INNER JOIN retorna os registros que têm correspondência em ambas as tabelas.
Fazer um LEFT JOIN
O LEFT JOIN retorna todos os registros da tabela da esquerda (Clientes) e os correspondentes da tabela da direita (Pedidos). Se não houver correspondência, ele retorna NULL nos campos da direita.
– Selecionando todos os Clientes e seus Pedidos (mesmo que não tenham pedidos)
SELECT Clientes.nome, Pedidos.pedido_id, Pedidos.valor
FROM Clientes
LEFT JOIN Pedidos ON Clientes.cliente_id = Pedidos.cliente_id;
Fazer um right join
O RIGHT JOIN faz o oposto do LEFT JOIN: ele retorna todos os registros da tabela da direita (Pedidos) e os correspondentes da tabela da esquerda (Clientes).
– Selecionando todos os Pedidos e seus Clientes (mesmo que não tenham clientes válidos)
SELECT Clientes.nome, Pedidos.pedido_id, Pedidos.valor
FROM Clientes
RIGHT JOIN Pedidos ON Clientes.cliente_id = Pedidos.cliente_id;
Explicação dos conceitos
FOREIGN KEY: Vincula duas tabelas. Uma chave estrangeira garante que os dados de uma tabela (como pedidos) estejam relacionados a outra tabela (como clientes).
INSERT: Comando para adicionar novos registros (linhas) em uma tabela.
DELETE: Usado para remover registros. Quando usado com ON DELETE CASCADE, ele também remove os registros dependentes (neste caso, pedidos associados ao cliente excluído).
UPDATE: Usado para modificar registros existentes.
WHERE: Filtra os resultados da consulta para mostrar apenas os registros que atendem a uma condição.
INNER JOIN: Combina registros de duas tabelas e retorna apenas aqueles que têm correspondências em ambas.
LEFT JOIN: Retorna todos os registros da tabela à esquerda e os correspondentes da tabela à direita. Se não houver correspondência, retorna NULL.
RIGHT JOIN: Retorna todos os registros da tabela à direita e os correspondentes da tabela à esquerda. Se não houver correspondência, retorna NULL.
Esses comandos e conceitos são essenciais para trabalhar com dados relacionais em um banco de dados MySQL.
RIGHT COM CONTAGEM
SELECT COUNT(A.id) AS total_correspondencias
FROM tabelaA A
RIGHT JOIN tabelaB B ON A.id = B.id;
RESULTADO:
total_correspondencias
———————-
12
LEFT JOIN COM CONTAGEM
SELECT COUNT(B.id) AS total_correspondencias
FROM tabelaA A
LEFT JOIN tabelaB B ON A.id = B.id;
RESULTADO:
total_correspondencias
———————-
8
INNER JOIN COM CONTAGEM E FILTRO
SELECT COUNT(*) AS total_registros
FROM tabelaA A
INNER JOIN tabelaB B ON A.id = B.id
WHERE A.coluna1 = ‘valor’;
RESULTADO:
total_registros
—————
10
LEFT JOIN COM FILTRO
SELECT A.coluna1, B.coluna2
FROM tabelaA A
LEFT JOIN tabelaB B ON A.id = B.id
WHERE B.coluna2 IS NOT NULL; – Filtro para ignorar linhas sem correspondência
FILTRO COM LIKE E AND
Filtro com LIKE (Combinando com outros operadores, como AND ou OR)
SELECT coluna1, coluna2
FROM tabela
WHERE coluna1 LIKE ‘val%’ AND coluna2 LIKE ‘%teste’;
Resultado: Retorna registros onde coluna1 começa com ‘val’ e coluna2 termina com ‘teste’.
Se fosse com ‘%por%’ ele filtra as palavras que estão no meio da frase como nesse exemplo a palavra poderia ser ‘valor por quantidade’.
Oque é LIKE ?
O operador LIKE no SQL é usado para procurar por um padrão específico dentro de uma coluna de texto. Ele é útil quando você quer encontrar resultados que correspondam parcialmente a um texto, em vez de procurar por um valor exato.
ALTER TABLE
O comando ALTER TABLE é usado para fazer mudanças em uma tabela existente no banco de dados. Com ele, você pode adicionar, remover ou modificar colunas, além de fazer outras alterações na estrutura da tabela.
Aqui estão alguns exemplos simples:
- Adicionar uma nova coluna:
ALTER TABLE clientes ADD idade INT;
Isso adiciona uma nova coluna chamada “idade” à tabela “clientes”.