Tutorial de Banco de Dados e SQL
Introdução aos Bancos de Dados
Bancos de dados são sistemas que armazenam dados de forma organizada e eficiente, permitindo
que os usuários realizem operações de consulta, inserção, atualização e exclusão de dados.
Bancos de dados relacionais são os mais comuns e utilizam tabelas para armazenar dados de
forma estruturada.
Estrutura de um Banco de Dados Relacional
Um banco de dados relacional organiza os dados em tabelas, que são compostas por linhas e
colunas. Cada tabela possui um esquema que define o nome das colunas e o tipo de dados que
cada coluna pode armazenar. As tabelas podem se relacionar entre si através de chaves primárias
e estrangeiras.
Comandos DDL (Data Definition Language)
Os comandos DDL são utilizados para definir a estrutura do banco de dados. Exemplos de
comandos DDL incluem:
- CREATE TABLE: cria uma nova tabela.
- ALTER TABLE: altera a estrutura de uma tabela existente.
- DROP TABLE: remove uma tabela do banco de dados.
Exemplo:
CREATE TABLE Clientes (
ID INT PRIMARY KEY,
Nome VARCHAR(100),
Email VARCHAR(100)
);
Comandos DML (Data Manipulation Language)
Os comandos DML são utilizados para manipular os dados dentro das tabelas. Exemplos de
comandos DML incluem:
- INSERT INTO: insere novos dados em uma tabela.
- UPDATE: atualiza dados existentes em uma tabela.
- DELETE FROM: remove dados de uma tabela.
Exemplo:
INSERT INTO Clientes (ID, Nome, Email) VALUES (1, 'João Silva', '[Link]@[Link]');
Consultas (SELECT)
O comando SELECT é utilizado para consultar dados de uma tabela. Ele permite selecionar
colunas específicas, filtrar registros, ordenar resultados e muito mais.
Exemplo:
SELECT Nome, Email FROM Clientes WHERE ID = 1;
Funções de Agregação
As funções de agregação são utilizadas para realizar cálculos em conjunto de valores e retornar um
único valor. Exemplos incluem COUNT, SUM, AVG, MAX e MIN.
Exemplo:
SELECT COUNT(*) FROM Clientes;
Cláusulas de Filtro (WHERE, HAVING)
As cláusulas de filtro são utilizadas para restringir os resultados de uma consulta. A cláusula
WHERE é usada para filtrar linhas antes da agregação, enquanto a cláusula HAVING é usada para
filtrar linhas após a agregação.
Exemplo:
SELECT Nome, Email FROM Clientes WHERE Nome LIKE 'J%';
SELECT COUNT(*) FROM Clientes HAVING COUNT(*) > 1;
Junções (JOINs)
Junções são utilizadas para combinar registros de duas ou mais tabelas com base em uma
condição relacionada. Tipos comuns de JOINs incluem INNER JOIN, LEFT JOIN, RIGHT JOIN e
FULL JOIN.
Exemplo:
SELECT [Link], [Link]
FROM Clientes
INNER JOIN Pedidos ON [Link] = [Link];
Subconsultas
Subconsultas são consultas aninhadas dentro de outras consultas. Elas podem ser utilizadas em
diversas cláusulas, como SELECT, FROM, WHERE e HAVING.
Exemplo:
SELECT Nome FROM Clientes WHERE ID IN (SELECT ClienteID FROM Pedidos WHERE Data =
'2024-07-28');
Exercícios Práticos
Exercícios Práticos:
1. Crie uma tabela chamada Produtos com as colunas ID, Nome e Preço.
2. Insira três registros na tabela Produtos.
3. Atualize o preço do produto com ID 1 para R$ 50,00.
4. Exclua o produto com ID 2.
5. Selecione todos os produtos com preço maior que R$ 30,00.
6. Conte o número de produtos na tabela.
7. Selecione o nome dos produtos cujo nome começa com 'A'.
8. Realize uma junção entre a tabela Produtos e uma tabela Vendas.
9. Crie uma subconsulta para selecionar produtos vendidos em um determinado dia.
10. Adicione uma coluna Descrição na tabela Produtos.
11. Renomeie a coluna Preço para Valor na tabela Produtos.
12. Selecione todos os produtos e ordene-os pelo nome.
13. Agrupe os produtos pelo preço e conte quantos produtos existem em cada grupo.
14. Utilize uma função de agregação para calcular o preço médio dos produtos.
15. Escreva uma consulta que utiliza uma subconsulta no SELECT.