Guia Prático de Comandos SQL: DDL e DML

Classificado em Computação

Escrito em em português com um tamanho de 2,66 KB

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>;

Entradas relacionadas: