11-Introdução à SQL: CREATE DATABASE e CREATE TABLE
Materiais desta aula
11 — Introdução à SQL: CREATE DATABASE e CREATE TABLE
1. Introdução
Até aqui, vocês modelaram bancos de dados inteiros sem escrever uma linha de código, tudo no clique-e-arraste do EER Diagram. Hoje isso muda: vamos aprender a escrever SQL de verdade, no Editor SQL do Workbench.
2. O que é SQL?
SQL (Structured Query Language) é a linguagem padrão para se comunicar com bancos de dados relacionais. Ela se divide em partes, de acordo com o que cada comando faz:
| Sigla | Nome | Para que serve | Exemplos de comando |
|---|---|---|---|
| DDL | Data Definition Language | Define a estrutura (cria/altera/apaga tabelas) | CREATE, ALTER, DROP |
| DML | Data Manipulation Language | Manipula os dados (insere/altera/apaga registros) | INSERT, UPDATE, DELETE |
| DQL | Data Query Language | Consulta os dados | SELECT |
Hoje começamos pelo DDL — é o que usamos para criar a estrutura do banco.
Por que escrever à mão, se o Workbench já faz isso clicando?
Boa pergunta, e a resposta é que o Workbench SEMPRE gerou SQL por trás dos panos. Toda vez que você clicou em "Create Schema" ou desenhou uma tabela no EER Diagram, o Workbench estava, silenciosamente, escrevendo comandos SQL e enviando para o servidor. Hoje vamos aprender a ler e escrever esses comandos diretamente, por três motivos:
- SQL funciona em quase qualquer SGBD (MySQL, PostgreSQL, SQL Server...), é uma habilidade que atravessa ferramentas.
- Em muitas situações reais (scripts automatizados, migrações, servidores sem interface gráfica) você só tem acesso à linha de comando, não tem "clicar e arrastar".
- Entender o SQL por trás da ferramenta visual te dá mais controle e menos "mágica", você passa a saber exatamente o que está acontecendo no banco.
3. CREATE DATABASE
CREATE DATABASE nome_do_banco;
Cria um novo banco de dados (schema) vazio. Depois de criar, é preciso "entrar" nele com:
USE nome_do_banco;
Convenção: nomes de banco em letras minúsculas, sem espaços (use
_no lugar).
4. CREATE TABLE
CREATE TABLE nome_tabela (
coluna1 TIPO,
coluna2 TIPO,
PRIMARY KEY (coluna1)
);
Exemplo — tabela Produto:
CREATE TABLE produto (
id_produto INT,
nome VARCHAR(100),
preco DECIMAL(10,2),
PRIMARY KEY (id_produto)
);
Alguns tipos de dado básicos (vamos aprofundar no Encontro 12):
INT— números inteirosVARCHAR(n)— texto, até n caracteresDATE— datasDECIMAL(p,q)— números com casas decimais (ex.: preços)
Uma prévia: FOREIGN KEY em SQL
O padrão para ligar uma tabela a outra usa a cláusula FOREIGN KEY. Sempre no mesmo formato:
FOREIGN KEY (coluna_local) REFERENCES tabela_de_fora(coluna_de_lá)
Exemplo:
CREATE TABLE pedido (
id_pedido INT,
cliente_id INT,
PRIMARY KEY (id_pedido),
FOREIGN KEY (cliente_id) REFERENCES cliente(id_cliente)
);
Vamos aprofundar isso a partir do próximo encontro, por hoje, fica como prévia para quem for encarar o desafio 🔴 Difícil do exercício.
5. Do desenho ao código: comparando com o Forward Engineer
Vocês já modelaram a tabela aluno visualmente, lá no Encontro 5. Hoje, antes de olhar a "resposta", vamos tentar escrever à mão o CREATE TABLE dela e depois comparar com o que o próprio Workbench geraria automaticamente (Model → File → Export → Forward Engineer SQL CREATE Script). Se baterem, ótimo sinal de que vocês entenderam a lógica por trás do que a ferramenta faz sozinha.
Dica de segurança: pratiquem num schema novo (ex.:
pratica_sql), sem mexer no schema principal do projeto da biblioteca, é uma boa prática profissional nunca testar comandos novos "em produção".
6. Prévia do próximo encontro
Na próxima aula, vamos aprofundar os tipos de dados, as constraints (NOT NULL, UNIQUE...) e aprender a alterar (ALTER TABLE) e apagar (DROP TABLE) tabelas já criadas.
Vídeos sobre o assunto
- Curso MySQL #03 — Criando o primeiro Banco de Dados — CursoemVideo (mesma série do vídeo usado no Encontro 3), ensina CREATE DATABASE e CREATE TABLE na prática.
Para se aprofundar
- Criar Banco de Dados no MySQL: Tabelas e SQL — artigo com exemplos passo a passo de CREATE DATABASE e CREATE TABLE.