O que e SQL
O que e um Banco de Dados?
Imagine um arquivo de escritorio daqueles bem grandes, com varias gavetas. Cada gaveta guarda um tipo de documento diferente -- uma para fichas de alunos, outra para notas, outra para cursos.
Um banco de dados funciona exatamente assim:
| Analogia | Banco de Dados |
|---|---|
| Arquivo inteiro | Banco de dados |
| Gaveta | Tabela |
| Ficha dentro da gaveta | Linha (registro) |
| Campo da ficha (nome, idade) | Coluna |
Bancos de dados relacionais organizam tudo em tabelas que podem se conectar entre si. E o SQL e a linguagem que usamos para conversar com eles.
O que e SQL?
SQL significa Structured Query Language (Linguagem de Consulta Estruturada). E a linguagem padrao usada para:
- Criar tabelas e bancos de dados
- Inserir dados
- Buscar informacoes
- Atualizar registros
- Deletar dados
-- Isso e SQL! Simples e direto:
SELECT nome, idade FROM alunos;
-- → Retorna o nome e idade de todos os alunos
Tabelas, Linhas e Colunas
Uma tabela e composta por colunas (campos) e linhas (registros).
Exemplo de uma tabela alunos:
| id | nome | idade | |
|---|---|---|---|
| 1 | Ana | 20 | [email protected] |
| 2 | Carlos | 22 | [email protected] |
| 3 | Julia | 19 | [email protected] |
- Colunas:
id,nome,idade,email-- definem que tipo de informacao a tabela guarda - Linhas: cada linha e um registro (um aluno)
Chave Primaria (PRIMARY KEY)
A chave primaria e uma coluna (ou conjunto de colunas) que identifica cada registro de forma unica. Nenhum valor pode se repetir.
No exemplo acima, a coluna id e a chave primaria. Cada aluno tem um id diferente.
-- A coluna id nunca se repete:
-- id = 1 → Ana
-- id = 2 → Carlos
-- id = 3 → Julia
Regras da chave primaria:
- Cada tabela so pode ter uma chave primaria
- O valor nunca pode ser NULL (vazio)
- O valor nunca pode se repetir
Chave Estrangeira (FOREIGN KEY)
A chave estrangeira conecta uma tabela a outra. Ela faz referencia a chave primaria de outra tabela.
Exemplo: uma tabela matriculas que conecta alunos a cursos:
| id | aluno_id | curso_id | data_matricula |
|---|---|---|---|
| 1 | 1 | 10 | 2024-03-01 |
| 2 | 2 | 10 | 2024-03-02 |
Aqui, aluno_id e uma chave estrangeira que aponta para alunos.id, e curso_id aponta para cursos.id.
Criando e Selecionando um Banco de Dados
Antes de criar tabelas, voce precisa criar o banco de dados:
CREATE DATABASE clinica;
-- → Cria um banco chamado "clinica"
Depois, selecione o banco para comecar a trabalhar nele:
USE clinica;
-- → Agora todos os comandos vao para o banco "clinica"
Para ver quais bancos existem no servidor:
SHOW DATABASES;
-- → Lista todos os bancos disponiveis
E para deletar um banco (cuidado!):
DROP DATABASE clinica;
-- → Apaga o banco "clinica" e TUDO dentro dele
Resumo Visual
Banco de Dados (clinica)
├── Tabela: alunos
│ ├── id (PK)
│ ├── nome
│ ├── idade
│ └── email
├── Tabela: cursos
│ ├── id (PK)
│ ├── nome
│ └── carga_horaria
└── Tabela: matriculas
├── id (PK)
├── aluno_id (FK → alunos.id)
├── curso_id (FK → cursos.id)
└── data_matricula
Exercicios
- Crie um banco de dados chamado
escolae selecione ele comUSE. - Liste pelo menos 3 tabelas que uma escola precisaria (ex: alunos, professores...). Para cada tabela, escreva quais colunas ela teria.
- Identifique qual coluna seria a chave primaria de cada tabela.
- Identifique pelo menos um relacionamento entre as tabelas (onde usaria chave estrangeira).
- Pesquise: qual a diferenca entre MySQL e PostgreSQL?
Referencias
Testa o que você leu
5 perguntas sobre esta aula. Errar aqui não custa nada - a explicação vem junto da correção.