Introdução
A linguagem SQL é a base para interagir com Sistemas Gerenciadores de Banco de Dados (SGBD). Ela é categorizada em quatro principais tipos de comandos:
- DDL (Data Definition Language): Definição de estruturas (tabelas, índices, etc.);
- DML (Data Manipulation Language): Manipulação de dados;
- DCL (Data Control Language): Controle de permissões;
- DQL (Data Query Language): Consultas aos dados.
- **TCL (**Transaction Control Language):
Comandos DDL – Criando e Manipulando Tabelas
Os comandos DDL são utilizados para criar, alterar e excluir tabelas e suas estruturas no banco de dados. São os principais comandos:
Comando | Descrição | Exemplo |
---|---|---|
CREATE | Cria tabelas e outros objetos no banco de dados. | CREATE TABLE funcionarios (id INT, nome VARCHAR(50)); |
DROP | Deleta objetos do banco. | DROP TABLE funcionarios; |
ALTER | Altera a estrutura da tabela. | ALTER TABLE funcionarios ADD telefone VARCHAR(15); |
TRUNCATE | Remove todos os registros da tabela. | TRUNCATE TABLE funcionarios; |
COMMENT | Adiciona comentários à tabela. | COMMENT ON TABLE funcionarios IS 'Dados dos funcionários'; |
RENAME | Renomeia objetos existentes. | RENAME TABLE funcionarios TO colaboradores; |
CREATE
CREATE TABLE nome_da_tabela ( nome_da_coluna tipo_de_dado [DEFAULT valor] [CONSTRAINT restricao], ... [CONSTRAINT restricao_da_tabela] );
- nome_da_tabela: Nome da tabela.
- nome_da_coluna: Nome da coluna.
- tipo_de_dado: Define o tipo de valor permitido (ex:
NUMBER
,VARCHAR
). - DEFAULT: Valor padrão.
- CONSTRAINT: Define restrições (chaves primárias, estrangeiras, etc.).
Exemplo Prático
Suponha que estamos criando um jogo com tabelas para personagens, tipos e poderes. Veja a estrutura básica:
Criação da Tabela "tipo"
CREATE TABLE tipo ( idTipo NUMBER PRIMARY KEY, nomeTipo VARCHAR2(50) NOT NULL );
Criação da Tabela "poder"
CREATE TABLE poder ( idPoder NUMBER PRIMARY KEY, descricao VARCHAR2(100) NOT NULL );
Criação da Tabela "personagem"
CREATE TABLE personagem ( idPersonagem NUMBER PRIMARY KEY, nomePersonagem VARCHAR2(50) NOT NULL, altura NUMBER, idTipo NUMBER, CONSTRAINT fk_tipo FOREIGN KEY (idTipo) REFERENCES tipo (idTipo) );
Tabela de Relacionamento "personagem_poder"
CREATE TABLE personagem_poder ( idPersonagem NUMBER, idPoder NUMBER, CONSTRAINT fk_personagem FOREIGN KEY (idPersonagem) REFERENCES personagem (idPersonagem), CONSTRAINT fk_poder FOREIGN KEY (idPoder) REFERENCES poder (idPoder), PRIMARY KEY (idPersonagem, idPoder) );
ALTER TABLE e DROP TABLE
- ALTER TABLE: Altera a estrutura da tabela.
Adicionando uma nova coluna:
ALTER TABLE personagem ADD idade NUMBER(2);
Modificando uma coluna para não permitir valores nulos:
ALTER TABLE personagem MODIFY (altura NOT NULL);
- DROP TABLE: Remove uma tabela do banco de dados.
DROP TABLE tipo;
TRUNCATE
Objetivo: Remover todos os registros da tabela funcionarios
sem apagar sua estrutura.
TRUNCATE TABLE funcionarios;
Explicação:
- Remove todos os registros existentes da tabela, liberando o espaço alocado.
- A estrutura da tabela é preservada.
COMMENT
Objetivo: Adicionar um comentário à tabela funcionarios
.
COMMENT ON TABLE funcionarios IS 'Tabela que armazena dados dos funcionários da empresa';
Explicação:
- O comando
COMMENT
adiciona informações descritivas sobre o objetofuncionarios
. - Comentários ajudam a documentar o propósito das tabelas no banco de dados.
RENAME
Objetivo: Renomear a tabela funcionarios
para colaboradores
.
RENAME TABLE funcionarios TO colaboradores;
Explicação:
- A tabela original
funcionarios
passa a ser referenciada comocolaboradores
. - Útil para padronização de nomes ou ajuste na nomenclatura do banco.
Restrições de Integridade
As CONSTRAINTS garantem a consistência e integridade dos dados no banco. Os principais tipos incluem:
- NOT NULL: Coluna não pode ter valores vazios.
- UNIQUE: Valores únicos na coluna.
- PRIMARY KEY: Combina NOT NULL + UNIQUE.
- FOREIGN KEY: Define a chave estrangeira e a referência a outra tabela.
- CHECK: Define regras para valores permitidos.
- DEFAULT: Define um valor padrão.
Exemplo de Restrições
CREATE TABLE exemplo ( id NUMBER PRIMARY KEY, nome VARCHAR2(50) NOT NULL, email VARCHAR2(100) UNIQUE, idade NUMBER CHECK (idade >= 18), pais VARCHAR2(30) DEFAULT 'Brasil' );
Convenções de Nomeação
- Nomes devem começar com letras.
- Podem conter até 30 caracteres.
- Aceitam letras, números e os símbolos
_
,$
e#
. - Evite nomes duplicados ou palavras reservadas.
- Nao utilize palavras restritas
Tipos de Dados no SQL
Além dos comandos DDL, é importante conhecer os principais tipos de dados disponíveis em SQL para definir as colunas corretamente. Aqui estão os mais comuns:
Tipos de Dados Numéricos
Tipo | Descrição | Exemplo |
---|---|---|
INT | Números inteiros. | id INT |
DECIMAL(p,s) | Números decimais com precisão. | salario DECIMAL(10,2) |
FLOAT | Números de ponto flutuante. | nota FLOAT |
Tipos de Dados de Texto
Tipo | Descrição | Exemplo |
---|---|---|
VARCHAR(n) | Texto de comprimento variável. | nome VARCHAR(50) |
CHAR(n) | Texto de comprimento fixo. | codigo CHAR(10) |
TEXT | Texto longo. | descricao TEXT |
Tipos de Dados de Data e Hora
Tipo | Descrição | Exemplo |
---|---|---|
DATE | Somente data. | data_contratacao DATE |
TIME | Somente hora. | horario TIME |
TIMESTAMP | Data e hora combinadas. | criado_em TIMESTAMP |