do bÁsico ao avanÇado para manipulaÇÃo e … hierárquicas / sub-consultas ... reconhece...

Post on 15-Jul-2018

215 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

DO BÁSICO AO AVANÇADO PARA

MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS

Fábio Roberto Octaviano

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

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

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).

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

Servidor

Oracle

Tabela: EMPLOYEES Tabela: DEPARTMENTS

… …

1

2 3 4

6

5

Coluna (PK) Coluna Coluna (FK)

Tupla

Campo

Null

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).

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

servidor Oracle

Servidor

Oracle

SELECT department_name

FROM departments;

Tabelas Dicionário

de Dados

Servidor Oracle

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)

SQL statements

Query results iSQL*Plus

commands

Client

Formatted report

Internet

browser

Oracle server

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

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

Por padrão, a porta utilizada é a 5560

3 4 5

1

2

8 9

7

Recuperação de Dados por meio de SELECT

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

Seleção Projeção

Tabela 1 Tabela 2

Tabela 1 Tabela 1

Join

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

Selecionando todas as linhas de uma tabela

SELECT *

FROM departments;

Selecionando colunas específicas

SELECT department_id, location_id

FROM departments;

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

Exemplo da uma instrução SQL no iSQLPlus:

SELECT last_name, hire_date, salary

FROM employees;

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

Operador Descrição

+ Add

- Subtract

* Multiply

/ Divide

SELECT last_name, salary, salary + 300

FROM employees;

SELECT last_name, salary, 12*salary+100

FROM employees;

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

FROM employees;

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;

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

SELECT last_name, 12*salary*commission_pct

FROM employees;

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

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

FROM employees;

SELECT last_name AS name, commission_pct comm

FROM employees;

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;

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;

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

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

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;

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”

top related