DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece...
-
Upload
nguyentram -
Category
Documents
-
view
217 -
download
0
Transcript of DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E … hierárquicas / sub-consultas ... Reconhece...
![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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/1.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/2.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/3.jpg)
![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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/4.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/5.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/6.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/7.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/8.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/9.jpg)
![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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/10.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/11.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/12.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/13.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/14.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/15.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/16.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/17.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/18.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/19.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/20.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/21.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/22.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/23.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/24.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/25.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/26.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/27.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/28.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/29.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/30.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/31.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/32.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/33.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/34.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/35.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/36.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022022014/5b4a384a7f8b9a9a2c8c0d39/html5/thumbnails/37.jpg)
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”