Douglas Legramante

Douglas Legramante

Informática

Técnico em Informática · Banco de Dados

11-Introdução à SQL: CREATE DATABASE e CREATE TABLE

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:

SiglaNomePara que serveExemplos de comando
DDLData Definition LanguageDefine a estrutura (cria/altera/apaga tabelas)CREATE, ALTER, DROP
DMLData Manipulation LanguageManipula os dados (insere/altera/apaga registros)INSERT, UPDATE, DELETE
DQLData Query LanguageConsulta os dadosSELECT

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:

  1. SQL funciona em quase qualquer SGBD (MySQL, PostgreSQL, SQL Server...), é uma habilidade que atravessa ferramentas.
  2. 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".
  3. 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 inteiros
  • VARCHAR(n) — texto, até n caracteres
  • DATE — datas
  • DECIMAL(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

Para se aprofundar