RESUMO BANCO DE DADOS PARA PESSOAS
COM DIFICULDADE DE PENSAR UM POUCO.
1. Comandos de Manipulação de Banco de Dados
CREATE DATABASE – Cria um banco de dados
sql
CREATE DATABASE meu_banco;
●
USE – Seleciona um banco de dados
sql
USE meu_banco;
●
DROP DATABASE – Exclui um banco de dados
sql
DROP DATABASE meu_banco;
●
2. Comandos de Manipulação de Tabelas
CREATE TABLE – Cria uma tabela
sql
CREATE TABLE usuarios (
id INT PRIMARY KEY AUTO_INCREMENT,
nome VARCHAR(100),
email VARCHAR(100) UNIQUE
);
●
ALTER TABLE – Modifica uma tabela
sql
ALTER TABLE usuarios ADD COLUMN idade INT;
●
DROP TABLE – Exclui uma tabela
sql
DROP TABLE usuarios;
●
3. Comandos de Manipulação de Dados
INSERT – Insere dados na tabela
sql
INSERT INTO usuarios (nome, email) VALUES ('João',
'
[email protected]');
●
SELECT – Consulta dados
sql
SELECT * FROM usuarios;
●
UPDATE – Atualiza dados
sql
UPDATE usuarios SET nome = 'João Silva' WHERE id = 1;
●
● DELETE – Remove dados
sql
DELETE FROM usuarios WHERE id = 1;
1. Constraints (Restrições)
As constraints garantem a integridade dos dados nas tabelas.
PRIMARY KEY – Define uma chave primária (valor único e não nulo)
sql
CREATE TABLE clientes (
id INT PRIMARY KEY AUTO_INCREMENT,
nome VARCHAR(100) NOT NULL
);
●
FOREIGN KEY – Define uma chave estrangeira (relacionamento entre
tabelas)
sql
CREATE TABLE pedidos (
id INT PRIMARY KEY AUTO_INCREMENT,
cliente_id INT,
FOREIGN KEY (cliente_id) REFERENCES clientes(id)
);
●
UNIQUE – Garante que os valores de uma coluna sejam únicos
sql
CREATE TABLE usuarios (
id INT PRIMARY KEY AUTO_INCREMENT,
email VARCHAR(100) UNIQUE
);
●
NOT NULL – Impede valores nulos
sql
CREATE TABLE produtos (
id INT PRIMARY KEY AUTO_INCREMENT,
nome VARCHAR(100) NOT NULL
);
●
CHECK – Restringe valores aceitos na coluna
sql
CREATE TABLE funcionarios (
id INT PRIMARY KEY AUTO_INCREMENT,
idade INT CHECK (idade >= 18)
);
●
DEFAULT – Define um valor padrão
sql
CREATE TABLE contas (
id INT PRIMARY KEY AUTO_INCREMENT,
saldo DECIMAL(10,2) DEFAULT 0.00
);
●
AUTO_INCREMENT – Incrementa valores automaticamente
sql
CREATE TABLE pedidos (
id INT PRIMARY KEY AUTO_INCREMENT
);
●
2. Índices e Otimização
CREATE INDEX – Cria um índice para melhorar a performance
sql
CREATE INDEX idx_nome ON clientes (nome);
●
DROP INDEX – Remove um índice
sql
DROP INDEX idx_nome ON clientes;
●
3. Views (Visões)
CREATE VIEW – Cria uma visão (consulta armazenada)
sql
CREATE VIEW vw_clientes AS
SELECT id, nome FROM clientes;
●
DROP VIEW – Remove uma visão
sql
DROP VIEW vw_clientes;
●
4. Procedures e Functions
CREATE PROCEDURE – Cria um procedimento armazenado
sql
DELIMITER //
CREATE PROCEDURE ObterClientes()
BEGIN
SELECT * FROM clientes;
END //
DELIMITER ;
●
CALL – Executa um procedimento
sql
CALL ObterClientes();
●
CREATE FUNCTION – Cria uma função armazenada
sql
DELIMITER //
CREATE FUNCTION Soma(a INT, b INT) RETURNS INT
BEGIN
RETURN a + b;
END //
DELIMITER ;
●
● DROP FUNCTION – Remove uma função
sql
DROP FUNCTION Soma;
1. SELECT Simples (Buscar Dados)
Para consultar a população de um país (exemplo: tabela paises com
colunas nome e população):
sql
SELECT populacao FROM paises WHERE nome = 'Brasil';
2. Filtros com WHERE e Operadores
Buscar países com população maior que 100 milhões:
sql
SELECT nome, populacao FROM paises WHERE populacao > 100000000;
3. Ordenação com ORDER BY
Listar países do maior para o menor em população:
sql
SELECT nome, populacao FROM paises ORDER BY populacao DESC;
4. Limitar Resultados com LIMIT
Mostrar os 5 países mais populosos:
sql
SELECT nome, populacao FROM paises ORDER BY populacao DESC LIMIT 5;
5. Buscar com LIKE (Correspondência Parcial)
Buscar países que começam com "Bra":
sql
SELECT nome FROM paises WHERE nome LIKE 'Bra%';
6. Contar Registros com COUNT
Contar quantos países têm mais de 50 milhões de habitantes:
sql
SELECT COUNT(*) FROM paises WHERE populacao > 50000000;
7. Somar Valores com SUM
Somar a população de todos os países da América do Sul (exemplo:
coluna continente):
sql
SELECT SUM(populacao) FROM paises WHERE continente = 'América do
Sul';
8. Média com AVG
Média da população dos países europeus:
sql
SELECT AVG(populacao) FROM paises WHERE continente = 'Europa';
9. Agrupamento com GROUP BY e HAVING
População total por continente (somente continentes com mais de 1
bilhão de habitantes):
sql
SELECT continente, SUM(populacao) AS total_populacao
FROM paises
GROUP BY continente
HAVING total_populacao > 1000000000;
10. Junção de Tabelas (JOINs)
Se houver uma tabela cidades relacionada a paises, podemos buscar a
capital e a população:
sql
SELECT paises.nome AS pais, cidades.nome AS capital,
paises.populacao
FROM paises
JOIN cidades ON paises.id = cidades.pais_id
WHERE cidades.capital = 1;