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

Documentos relacionados
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 OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

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 OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

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 OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

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

Usando Subconsultas para Solucionar Consultas

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 OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

saída durante o runtime Usando Functions de uma Única Linha para Personalizar Relatórios Mostrar as diferenças entre as functions SQL de uma única

Uniao Educacional e Tecnologica Impacta- Uni Impacta

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

Sumário SELECT + FROM

Tarefa Orientada 7 Consultas de selecção

SQL - Perguntas. André Restivo. Faculdade de Engenharia da Universidade do Porto. February 24, 2012

IMPLEMENTAÇÃO DE BANCO DE DADOS

MODELAGEM DE DADOS - INTRODUÇÃO AO SQL: DML. Prof. Angelo Augusto Frozza, M.Sc.

1. Sua primeira tarefa é determinar a estrutura da tabela DEPARTMENTS e seu conteúdo.

Uniao Educacional e Tecnologica Impacta- Uni Impacta

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

BANCO DE DADOS. SQL Select. Engenharia da Computação. Aula 20. Vamos considerar a tabela EMP para os exemplos a seguir. SELECT colunas FROM tabelas;

Bases de Dados. DML Data Manipulation Language Parte 2

RECUPERANDO DADOS eversantoro

Oracle Database 11g: Introdução à Linguagem SQL Novo

Utilizando o Postgres - comandos SQL para a manipulação de dados

Laboratório de Banco de Dados II Aula 04. Prof. Érick de Souza Carvalho

ANEXO B Manual básico de SQL

Oracle Database 10g: Fundamentos de SQL e PL/SQL

Linguagem SQL Comando SELECT Subqueries

SQL. Prof. Roger Cristhian Gomes

A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A

SQL (Tópicos) Structured Query Language

- Um "query block" permite a implementação das operações de selecção, projecção e junção da álgebra relacional.

Roteiro 10: Consultas com várias tabelas/operadores de busca

Álgebra Relacional e SQL

Benvindo ao Curso de Introdução ao Firebird com Ferramenta de Relatórios!

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013

SQL S Q L. Introdução. Enfoques de SQL. SQL - Origem/Histórico. Usos de SQL. SQL - Vantagens. Gerenciamento de Dados e Informação

ÁLGEBRA E CÁLCULO RELACIONAL

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 OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

Banco de dados. Aula 22 O Comando SELECT. 1 Wedson Quintanilha da Silva -

Pesquisa básica em tabelas

Uniao Educacional e Tecnologica Impacta- Uni Impacta

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

Banco de Dados 1 2º Semestre

Ana Cristina de Figueiredo Dornelas SQL E ORACLE 3ª. PARTE

Resolvendo objeto-relacional impedance mismatch com hibernate

Bases de Dados 2005/2006. Aula 5

SQL. Agregações e agrupamentos. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

Linguagem de Consulta Estruturada SQL- DML

Banco de Dados I. Aula 14 - Prof. Bruno Moreno 11/10/2011

Sumário Introdução Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL A Composição deste Livro 3

BDII SQL Junção Revisão 8

SQL BÁSICO. Luiz Antônio Vivacqua Corrêa Meyer

ANÁLISE E PROJETO DE BANCO DE DADOS

Sistemas de Banco de Dados I. Escola Alcides Maya DDL - Introdução

1. Assinale as afirmações que são verdadeiras e as que são falsas, corrigindo-as:

Introdução ao PostgreSQL

INDEX. Serve para organizar os dados e agilizar a pesquisa/consulta dos dados armazenado nas tabelas.

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Principais Instruções em SQL. Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados.

Programação SQL. INTRODUÇÃO II parte

Bases de Dados. DML Data Manipulation Language Parte 3

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

UFABC UAB TSI TECNOLOGIA EM SISTEMAS DE INFORMAÇÃO

Exercícios. Exercícios

Agenda. Linguagem de Consulta SQL. 1. Introdução Histórico. 1. Introdução BD Relacionais

Banco de Dados. Professora: Luciana Faria

BCD29008 Banco de Dados

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

Bases de Dados. DDL Data Definition Language

SISTEMAS DE INFORMAÇÃO

Banco de Dados. José Antônio da Cunha CEFET RN

Linguagem SQL Comando SELECT Agrupamento de Resultados

Introdução à linguagem SQL

SQL (com MySQL) Apresentação OBJETIVOS. Programação

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

FEAP - Faculdade de Estudos Avançados do Pará PROFª LENA VEIGA PROJETOS DE BANCO DE DADOS UNIDADE V- SQL

Banco de Dados II Aula 05. Prof. Érick de Souza Carvalho

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR

Projeto de Banco de Dados

Siga em frente. Análise

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

LINGUAGEM DE MANIPULAÇÃO DE DADOS CONSULTAS AVANÇADAS

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

Abordagem relacional. Capítulo 4

Banco de Dados Oracle 10g: Introdução à Linguagem SQL

Conceitos básicos. Funcionario SIAPE Nome Lotacao Cargo Salario Admissao

Memória de aula Aulas 11 e 12

Banco de Dados II. Aula do dia 10/03. Revisão. SQL Estudado até o dia 03/03/2011

SQL Básica DML. Prof. Marcos A. Schreiner. 22 de outubro de Curso de Licenciatura em Computação

MYSQL - PRIMEIROS COMANDOS CRIAÇÃCO DO BD E DAS TABELAS, INSERÇÃO E CONSULTA DE REGISTROS. create database [if not exists] <nome>

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas

Transcrição:

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

Utilizando Operadores de Conjuntos

Após o término do Capítulo: Definir os operadores de conjunto. Usar os operadores de conjunto para combinar múltiplas queries em uma. Controlar a ordem das linhas retornadas.

A B A B UNION / UNION ALL A B INTERSECT A B MINUS

Tabelas utilizadas neste capítulo: EMPLOYEES: possui detalhes de todos os empregados atuais da empresa. JOB_HISTORY: Guarda detalhes da data de início e final do cargo inicial do empregado, e o id do cargo e departamento quando um empregado troca de cargo.

A B O operador UNION retorna resultados de ambas as queries após eliminar as duplicações de registros.

Mostra os detalhes dos cargos atual e anteriores dos empregados. Mostra cada empregado apenas uma vez. SELECT employee_id, job_id FROM employees UNION SELECT employee_id, job_id FROM job_history;

A B O operador UNION ALL retorna resultados de ambas as queries, incluindo as duplicações de registros.

Mostra os departamentos atual e anteriores de todos os empregados. SELECT employee_id, job_id, department_id FROM employees UNION ALL SELECT employee_id, job_id, department_id FROM job_history ORDER BY employee_id;

A B O operador INTERSECT retorna linhas que são comuns a ambas as queries.

Mostra os IDs dos empregados e a função daqueles empregados que atualmente possuem um cargo igual ao cargo quando eles foram inicialmente contratados (isto é, eles mudaram de cargo mas agora voltaram ao seu cargo de origem). SELECT employee_id, job_id FROM employees INTERSECT SELECT employee_id, job_id FROM job_history;

A B O operador MINUS retorna linhas da primeira query que não estão presentes na segunda query.

Mostra os IDs dos empregados que nunca trocaram de cargo nenhuma vez. SELECT employee_id FROM employees MINUS SELECT employee_id FROM job_history;

As expressões na lista SELECT devem bater em quantidade e tipo de dados. Parênteses podem ser utilizados para alterar a seqüência de execução. Por padrão, o Oracle avalia os operadores de cima para baixo e da esquerda para a direita. O operador IN tem precedência maior que UNION. Valores NULL não são descartados. Operadores de conjunto podem aparecer em subqueries. A cláusula ORDER BY: Pode aparecer somente no final do comando todo. Aceitará o nome da coluna ou alias do primeiro SELECT ou a notação de sua posição.

Linhas duplicadas são automaticamente removidas, exceto para o operador UNION ALL. Nome das colunas do primeiro SELECT aparecem no resultado. A saída é ordenada em ordem crescente por padrão, exceto para o operador UNION ALL.

Usando o operador UNION, mostre o ID do departamento, a sua localização e a data de contratação dos empregados. SELECT department_id, TO_NUMBER(null) location, hire_date FROM employees UNION SELECT department_id, location_id, TO_DATE(null) FROM departments;

Usando o operador UNION, exiba o ID do empregado, seu histórico de cargos e o salário atual de todos os empregados. SELECT employee_id, job_id,salary FROM employees UNION SELECT employee_id, job_id,0 FROM job_history;

Crie uma sentença em Inglês utilizando dois operadores UNION. COLUMN a_dummy NOPRINT SELECT 'sing' AS "My dream", 3 a_dummy FROM dual UNION SELECT 'I''d like to teach', 1 a_dummy FROM dual UNION SELECT 'the world to', 2 a_dummy FROM dual ORDER BY a_dummy;

É possível customizar cabeçalhos de colunas no isqlplus: Sintaxe: COL[UMN] [{coluna alias} [option]] Onde OPTION pode ser: CLE[AR]: limpa os formatos existentes na coluna HEA[DING] text: Determina o cabeçalho da coluna FOR[MAT] format: Altera o formato de exibição da coluna NOPRINT PRINT: Esconde ou mostra o cabeçalho e dados da coluna NULL Exemplo: COLUMN a_dummy NOPRINT

Objetivos: Utilizar o operador UNION. Utilizar o operador INTERSECTION. Utilizar o operador MINUS.

1. O RH precisa de uma listagem dos IDs dos departamentos que não possuem o cargo ST_CLERK. Utilize operadores de conjunto para criar a listagem. SELECT department_id FROM departments MINUS SELECT department_id FROM employees WHERE job_id = 'ST_CLERK';

2. O RH precisa de uma listagem dos países que não possuem departamentos localizados neles. Mostre o ID e o nome dos países resultantes. Utilize operadores de conjunto para criar a listagem. SELECT country_id,country_name FROM countries MINUS SELECT c.country_id, c.country_name FROM countries c JOIN locations l ON (c.country_id = l.country_id) JOIN departments d ON (d.location_id = l.location_id);

3. Crie uma listagem dos cargos para os departamentos 10, 50 e 20, ordenando os resultados nessa exata ordem de departamentos. Mostre o cargo e o ID do departamento. Utilize operadores de conjunto para criar a listagem.

3. Solução: COLUMN dummy NOPRINT SELECT job_id, department_id, 'x' dummy FROM employees WHERE department_id = 10 UNION SELECT job_id, department_id, 'y' dummy FROM employees WHERE department_id = 50 UNION SELECT job_id, department_id, 'z' dummy FROM employees WHERE department_id = 20 ORDER BY dummy; COLUMN dummy PRINT

4. Crie um relatório que liste o ID do empregado e seu cargo para os empregados que atualmente exerçam a mesma função de quando foram inicialmente contratados. Utilize operadores de conjunto para criar a listagem. COLUMN hire_date NOPRINT SELECT e.employee_id, e.job_id, e.hire_date FROM employees e INTERSECT SELECT h1.employee_id, h1.job_id, h1.start_date FROM job_history h1;

5. O RH precisa do seguinte relatório: Sobrenome e ID do departamento de todos os empregados, não importa se pertençam ou não a um departamento. ID e nome de todos os departamentos existentes, não importa se possuam ou não empregados trabalhando neles.

5. Solução: SELECT last_name Sobrenome, department_id ID_Depto, TO_CHAR(null) Nome_Depto FROM employees UNION SELECT TO_CHAR(null), department_id, department_name FROM departments;