Guia prático de comandos SQL: DDL e DML com exemplos

ComputaçãoAtualizado em 2,66 KB

Resumo

O documento apresenta comandos SQL para criar e alterar tabelas (DDL) e para inserir, consultar e manipular dados (DML). Inclui exemplos de criação de tabelas com chaves primárias, estrangeiras e restrições CHECK, além de filtros, alias, ordenação, LIKE, GROUP BY com HAVING e a sintaxe básica de JOIN.

Pontos-chave

  • DDL (Data Definition Language) define e altera a estrutura das tabelas, como CREATE TABLE, ALTER TABLE RENAME COLUMN, MODIFY e ADD.
  • As restrições PRIMARY KEY, FOREIGN KEY e CHECK garantem a integridade dos dados nas tabelas.
  • INSERT INTO adiciona registros respeitando os tipos e restrições definidos na tabela.
  • DML (Data Manipulation Language) consulta e manipula dados com SELECT, WHERE, DISTINCT, ORDER BY e alias com AS.
  • O operador LIKE com % permite buscar padrões de texto, como nomes que contenham uma palavra.
  • GROUP BY agrupa registros e HAVING filtra os grupos após a agregação, como COUNT(*).
  • CREATE TABLE ... AS SELECT cria uma nova tabela a partir do resultado de uma consulta.

Teste-se

Criando tabelas no Banco de Dados

CREATE TABLE Parentesco (
  ID NUMBER(4),
  Descricao VARCHAR2(75) NOT NULL,
  CONSTRAINT PK_Parentesco PRIMARY KEY (ID)
);

CREATE TABLE Pessoa (
  CPF NUMBER(11),
  Nome_completo VARCHAR2(150) NOT NULL,
  DT_nascimento DATE,
  Sexo CHAR(1),
  ID_parentesco NUMBER(4),
  CONSTRAINT PK_pessoa PRIMARY KEY (CPF),
  CONSTRAINT Check_date CHECK (DT_nascimento >= TO_DATE('01/01/1920', 'DD/MM/YYYY')),
  CONSTRAINT Check_Sexo CHECK (Sexo IN ('M', 'F')),
  CONSTRAINT FK_ID_Pessoa FOREIGN KEY (ID_parentesco) REFERENCES Parentesco(ID)
);

Inserindo registros nas tabelas

INSERT INTO Parentesco (ID, Descricao) VALUES (9000, 'EU');
INSERT INTO Parentesco (ID, Descricao) VALUES (9100, 'Pai');

INSERT INTO Pessoa (CPF, Nome_completo, DT_nascimento, Sexo, ID_parentesco) 
VALUES (12345678910, 'Igor Assis da Silva', TO_DATE('19/03/1993', 'DD/MM/YYYY'), 'M', 9000);

Alterações de estrutura (DDL)

  • Alterar nome de coluna: ALTER TABLE cliente RENAME COLUMN CLI_ENDER TO CLI_ENDERECO;
  • Modificar tipo de coluna: ALTER TABLE cliente MODIFY (CLI_CREDITO NUMBER(12,2));
  • Acrescentar atributo na tabela: ALTER TABLE veiculo ADD valor_venda NUMERIC(10,2);

Consultas e manipulação de dados (DML)

  • Listagem de clientes (filtro complexo): SELECT * FROM cliente WHERE cli_credito NOT BETWEEN 3000 AND 5000 AND cli_estado <> 'SP';
  • Visualizar valores distintos de crédito: SELECT DISTINCT cli_credito FROM cliente;
  • Uso de Alias e ordenação: SELECT cli_nome AS "Nome", cli_credito AS "Credito", cli_credito * 0.08 AS "Reajuste", cli_credito * 1.08 AS "Credito Reajustado" FROM cliente ORDER BY cli_credito;
  • Identificar clientes indicados pelo cliente 1015: SELECT cli_nome FROM cliente WHERE cli_id_indicacao IN (1015);
  • Listar clientes com "Eletro" no nome: SELECT * FROM cliente WHERE cli_nome LIKE '%ELETRO%';
  • Agrupamento e filtro de contagem: SELECT fabricante, COUNT(*) FROM veiculo GROUP BY fabricante HAVING COUNT(*) <= 5;
  • Criar tabela a partir de outra: CREATE TABLE carrosFord AS SELECT placa, ano, modelo, valor_venda FROM veiculo WHERE fabricante = 'FORD';

Sintaxe de JOIN

SELECT <campo> FROM <tabela1> JOIN <tabela2> ON <relacionamento> WHERE <condicao>;

Baixar

PDF Word HTML

Perguntas frequentes

Qual a diferença entre WHERE e HAVING em SQL?

WHERE filtra linhas antes do agrupamento, enquanto HAVING filtra grupos depois do GROUP BY. O documento usa HAVING COUNT(*) <= 5 para filtrar fabricantes após a contagem de veículos.

Como alterar o nome de uma coluna em uma tabela?

Use ALTER TABLE nome_tabela RENAME COLUMN nome_antigo TO nome_novo. O exemplo do documento renomeia CLI_ENDER para CLI_ENDERECO na tabela cliente.

Como criar uma tabela a partir de outra?

Use CREATE TABLE nova_tabela AS SELECT colunas FROM tabela_origem WHERE condicao. O exemplo cria carrosFord com os veículos do fabricante FORD.

Teste-se

Cartões de revisão

Clique em um cartão para ver a resposta.

Teste

1. Qual comando é usado para alterar o tipo de uma coluna existente?
2. Qual cláusula elimina valores repetidos em uma consulta?
3. Na restrição CHECK da tabela Pessoa, quais valores são aceitos para Sexo?
4. Qual operador busca nomes que contenham uma palavra em qualquer posição?
5. Qual é o efeito de ORDER BY cli_credito na consulta com alias?
6. Na tabela Pessoa, qual coluna é a chave primária?

Perguntas geradas com IA a partir do documento: verifique as respostas com o texto.