37
DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS Fábio Roberto Octaviano

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

Embed Size (px)

Citation preview

Page 1: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

DO BÁSICO AO AVANÇADO PARA

MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS

Fábio Roberto Octaviano

Page 2: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

Conceitos da arquitetura Oracle e da Linguagem SQL

Recuperar dados por meio de SELECT

Criar relatórios de dados classificados e restritos

Utilização de funções SQL e Manipulação de data/horário

Executar instruções DML

Operadores ROLLUP, CUBE e GROUPING SETS

Consultas hierárquicas / sub-consultas

Dicas de otimização de consultas

Exemplos / Exercícios Práticos

Page 3: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National
Page 4: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

Apresentar os conceitos básicos de um Modelo Relacional.

Comunicação entre um SGBD e SQL.

Tipos de Instruções SQL.

Apresentar o Oracle iSQLPlus

Page 5: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

Dr. Edgar F. Codd propôs o Modelo Relacional em 1970.

É a base para o Sistema de Gerenciamento de Banco de Dados Relacional (SGBD).

O modelo é composto por:

◦ Coleção de objetos ou relações.

◦ Conjunto de operadores para agir sobre as relações.

◦ Integridade de Dados (acuracidade e consistência).

Page 6: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

Banco de Dados Relacional: coleção de relações ou tabelas em duas dimensões.

Servidor

Oracle

Tabela: EMPLOYEES Tabela: DEPARTMENTS

… …

Page 7: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

1

2 3 4

6

5

Coluna (PK) Coluna Coluna (FK)

Tupla

Campo

Null

Page 8: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

Table name: EMPLOYEES

Table name: DEPARTMENTS

Primary key Primary key Foreign key

Cada tupla é identificada unicamente pela Primary Key (PK).

Relacionamos dados de múltiplas tabelas por meio de Foreign Keys (FK).

Page 9: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National
Page 10: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

Instrução SQL é elaborada Instrução é enviada ao

servidor Oracle

Servidor

Oracle

SELECT department_name

FROM departments;

Page 11: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

Tabelas Dicionário

de Dados

Servidor Oracle

Page 12: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

SELECT

INSERT UPDATE DELETE

MERGE

CREATE

ALTER DROP

RENAME TRUNCATE COMMENT

GRANT REVOKE

COMMIT

ROLLBACK SAVEPOINT

Data Manipulation Language (DML)

Data Definition Language (DDL)

Transaction Control

Data Control Language (DCL)

Page 13: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

SQL statements

Query results iSQL*Plus

commands

Client

Formatted report

Internet

browser

Oracle server

Page 14: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

SQL iSQL*Plus

É uma linguagem para

comunicação com o servidor

Oracle para acessar dados

Reconhece instruções SQL e as

envia para o servidor Oracle

É baseada no American National

Standards Institute (ANSI)–

standard SQL

É uma interface de propriedade

da Oracle para a execução de

instruções SQL

Recuperação e manipulação de

dados e definições de tabelas no

banco

Não permite a manipulação de

valores no banco de dados

Não tem um caracter de

continuidade

Tem um caracter de continuidade

(_) para o caso de instrução maior

que uma linha

Não pode ser abreviado Pode ser abreviado

Utiliza funções para realizar

alguma formatação

Utiliza comandos para formatar

dados

Page 15: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

A partir de um Web Browser, utilizar: ◦ http:<servidor>:<porta>/isqlplus/

Por padrão, a porta utilizada é a 5560

Page 16: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

3 4 5

1

2

8 9

7

Page 17: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

Recuperação de Dados por meio de SELECT

Page 18: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

Após o término do Capítulo:

Listar as capacidades da instrução SELECT

Executar comandos SELECT básicos

Saber diferenciar instruções SQL e comandos do iSQLPlus

Page 19: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

Seleção Projeção

Tabela 1 Tabela 2

Tabela 1 Tabela 1

Join

Page 20: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

SELECT *|{[DISTINCT] coluna|expressão [alias],...}

FROM tabela;

SELECT é uma lista de 1 ou mais colunas

* seleciona todas as colunas

DISTINCT não exibe valores duplicados

coluna|expressão seleciona as colunas ou expressão

alias atribui apelido às colunas selecionadas

FROM tabela especifica a(s) tabela(s) que possui(em) as colunas referenciadas

Page 21: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

Selecionando todas as linhas de uma tabela

SELECT *

FROM departments;

Page 22: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

Selecionando colunas específicas

SELECT department_id, location_id

FROM departments;

Page 23: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

Instruções SQL não são case sensitive

Instruções SQL podem ser escritas em 1 ou mais linhas

Palavras-chave não podem ser abreviadas

Cláusulas são normalmente colocadas em linhas distintas (para maior clareza)

Identação é importante para uma boa leitura

O “;” identifica o fim de uma instrução SQL e são utilizados nos editores como o SQLPlus

Page 24: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

Exemplo da uma instrução SQL no iSQLPlus:

SELECT last_name, hire_date, salary

FROM employees;

Page 25: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

Crie expressões com dados numéricos e data por meio de operadores aritméticos

Operador Descrição

+ Add

- Subtract

* Multiply

/ Divide

Page 26: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

SELECT last_name, salary, salary + 300

FROM employees;

Page 27: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

SELECT last_name, salary, 12*salary+100

FROM employees;

SELECT last_name, salary, 12*(salary+100)

FROM employees;

Page 28: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

NULL é um valor que é indisponível, não atribuído ou inaplicável

NULL NÃO é o mesmo que 0 ou branco

SELECT last_name, job_id, salary, commission_pct

FROM employees;

Page 29: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

Expressões aritméticas com valores NULL resultam em valores NULL

SELECT last_name, 12*salary*commission_pct

FROM employees;

Page 30: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

O Alias:

◦ Renomeia o cabeçalho de uma coluna.

◦ É bastante útil com cálculos.

◦ É utilizado imediatamente após o nome da coluna

◦ Pode ou não ser precedido da palavra-chave AS

◦ Exige o uso de “ se possuir espaços ou caracteres

especiais

Page 31: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

SELECT last_name "Name" , salary*12 "Annual Salary"

FROM employees;

SELECT last_name AS name, commission_pct comm

FROM employees;

Page 32: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

Um literal é um caractere, um número ou uma data que é incluída em uma instrução SELECT.

Caracteres e datas exigem o uso de ‘

A string é saída para cada linha retornada.

SELECT last_name ||' is a '||job_id

AS "Employee Details"

FROM employees;

Page 33: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

Permite especificar seu próprio delimitador de string.

Pode aumentar legibilidade e usabilidade.

SELECT department_name ||

q'[, it's assigned Manager Id: ]'

|| manager_id

AS "Department and Manager"

FROM departments;

Page 34: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

A exibição padrão das consultas mostra todas as linhas, inclusive repetições.

DISTINCT elimina as linhas duplicadas.

SELECT department_id FROM employees;

SELECT DISTINCT department_id

FROM employees;

1

2

Page 35: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

Objetivos:

◦ Selecionar todos os dados de diferentes tabelas

◦ Descrever a estrutura de tabelas

◦ Executar cálculos matemáticos e utilizar alias

◦ Familiarizar-se com o iSQLPlus

Page 36: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

1. Conectar ao iSQLPlus. 2. Descrever as colunas da tabela Employees. 3. Recuperar o sobrenome, o job_id e o salário

dos empregados. 4. Recuperar todos os dados da tabela

job_grades. 5. Verificar os 4 erros da instrução SQL abaixo

e corrigi-los:

SELECT employee_id, last_name

sal x 12 ANNUAL SALARY

FROM employees;

Page 37: DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece instruções SQL e as envia para o servidor Oracle É baseada no American National

6. O RH solicita o seguinte relatório: “Gerar um arquivo com informações de sobrenome,

código da função, data de contratação e número de empregado, com o número de empregado aparecendo em primeiro lugar. Chame a coluna hire_date de “Data da Contratação”.

7. Salve a consulta gerada como lab_01_07.sql na sua

máquina local.

8. Gere uma consulta que mostre todas as funções dos empregados existentes uma única vez.

9. Mostre o nome e sobrenome (separados por um espaço) e concatene com o job_id, separando por uma vírgula. Chame a coluna de “Empregado e Título”