2008.2. SQL Avançado Continuação. Renata Viegas



Documentos relacionados
3) Palavra-chave distinct (select-from). Obter apenas os pibs distintos entre si.

Pedro F. Carvalho OCP Oracle g LINGUAGEM SQL. São José do Rio Preto

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

Comandos de Manipulação

Introdução ao SQL Avançado

Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. (

SQL UMA ABORDAGEM INTERESSANTE

Prof.: Clayton Maciel Costa

Múltiplas Tabelas. Disciplina de Banco de Dados

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

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

NOME SEXO CPF NASCIMENTO SALARIO

Índice. Introdução Tutorial 1: O Microsoft Access como Sistema de Gestão de Bases de Dados Relacionais... 35

Prof.: Clayton Maciel Costa

DML - SELECT Agrupando Dados

SQL DML. Frederico D. Bortoloti

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

SQL Comandos para Relatórios e Formulários. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

Exercícios. Exercícios

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

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

Índice. Introdução 31. Tutorial 1: O Microsoft Access como Sistema de Gestão de Bases de Dados Relacionais 35

UNIVERSIDADE FEDERAL FLUMINENSE PÓLO UNIVERSITÁRIO DE RIO DAS OSTRAS FACULDADE FEDERAL DE RIO DAS OSTRAS CURSO DE CIÊNCIA DA COMPUTAÇÃO

Projeto de Banco de Dados

Linguagem de Consulta - SQL

Tarefa Orientada 15 Manipulação de dados

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

Tarefa Orientada 14 Subconsultas

Introdução ao SQL. Aécio Costa

Reforçando conceitos de SQL Estudo de Caso: Agenciamento de Corridas de Táxis

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

Principais Comandos SQL Usados no MySql

BDII SQL Junção Revisão 8

Uma expressão básica em SQL consiste em três cláusulas: select, from e where.

Introdução em Banco de Dados

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

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

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

EXEMPLOS DE COMANDOS NO SQL SERVER

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

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

Tarefa Orientada 16 Vistas

select nome from Médicos where codm in (select codm from Consultas where data = 06/06/13 )

SQL. Prof. Márcio Bueno.

1. SQL Instrumental Select Delete Update Insert Group by Having Unnion All...

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Subconsultas ou Consultas Aninhadas

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

MODELO DE DADOS VS ESQUEMA

Tarefa Orientada 13 Agrupamento e sumário de dados

Banco de Dados I Linguagem SQL Parte 2. Autor: Prof. Cláudio Baptista Adaptado por: Prof. Ricardo Antonello

Memória de aula Aulas 11 e 12

O que são Bancos de Dados?

Descrição Tinyint[(M)] Inteiro pequeno. Varia de 128 até +127

Linguagem de Consulta Estruturada SQL- DML

Stored Procedures. Renata Viegas

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

EXERCÍCIOS PRÁTICOS. Banco de Dados

Tarefa Orientada 10 Obter informação a partir de uma tabela

Linguagem de Banco de Dados DML Exercícios

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

Linguagem de Consulta Estruturada (SQL)

Structured Query Language (SQL)

SQL (Linguagem de Consulta Estruturada)

SQL (Structured Query Language)

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

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

ADMINISTRAÇÃO DE BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Bases de Dados 2005/2006. Aula 5

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003

Sumário. Introdução O Problema... 3

Introdução à linguagem SQL

Linguagem SQL. Comandos Básicos

Aplicações - SQL. Banco de Dados: Teoria e Prática. André Santanchè e Luiz Celso Gomes Jr Instituto de Computação UNICAMP Agosto de 2013

Armazenamento organizado facilitando SCRUD; Agiliza processo de desenvolvimento de sistemas;

Profº Aldo Rocha. Banco de Dados

SQL Structured Query Language

Tarefa Orientada 12 Junção Externa, Auto-Junção e União

Microsoft Access: Criar relatórios para um novo banco de dados. Vitor Valerio de Souza Campos

Linguagem SQL (Parte I)

Histórico de revisões

Bem-vindo ao tópico sobre consultas no SAP Business One.

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL

SQL. Autor: Renata Viegas

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

Escrito por Sex, 14 de Outubro de :12 - Última atualização Seg, 26 de Março de :33

UFCD 787. Administração de base de dados. Elsa Marisa S. Almeida

Programação SQL. Manipulação de Dados. DML Data Manipulation Language

Consistem num conjunto de apontadores para instâncias especificas de cada relação.

Programação SQL. Introdução

4.6. SQL - Structured Query Language

IMPLEMENTAÇÃO DE BANCO DE DADOS

Tarefa Orientada 19 Triggers

CURSO DE EXTENSÃO ON-LINE EM Oracle 10g Express Edition XE nível básico. Edital de seleção

Banco de Dados. Prof. Antonio

Treinamento sobre SQL

Transcrição:

SQL Avançado Continuação Renata Viegas

Cláusula COMPUTE Sintaxe: SELECT <colunas> FROM <tabelas> ORDER BY <coluna> COMPUTE <lista de funções de agregação> BY <lista de colunas> Para que serve? Gerar totalizadores que aparecem como colunas adicionais resumo no final do conjunto resultado O que devo fazer?? Trazer 3 exemplos práticos desta cláusula

Cláusula COMPUTE Gera totalizadores que aparecem como colunas adicionais resumo no final do conjunto resultado Quando utilizada com a cláusula BY, ela gera sub-totais no conjunto resultado Não é padrão SQL

Cláusula COMPUTE SELECT <colunas> FROM <tabelas> ORDER BY <coluna> COMPUTE <lista de funções de agregação> BY <lista de colunas>

Cláusula COMPUTE Exemplo: Mostrar uma soma sumarizada dos preços de custo e venda SELECT p.codp, p.nome, p.tipo, p.preco_custo, p.preco_venda FROM produto p, pedido pe WHERE p.codp = pe.cod_produto ORDER BY codp COMPUTE SUM(preco_venda), SUM(preco_custo)

Cláusula COMPUTE Exemplo com BY: Mostra uma soma sumarizada dos preços de custo e venda para cada tipo de produto SELECT p.codp, p.nome, p.tipo, p.preco_custo, p.preco_venda FROM produto p, pedido pe WHERE p.codp = pe.cod_produto ORDER BY codp COMPUTE SUM(preco_venda), SUM(preco_custo) BY codp

Agrupando Informações GROUP BY Sintaxe SELECT <colunas> FROM <tabelas> WHERE <condição> GROUP BY <coluna> HAVING <condição>

Agrupando Informações GROUP BY GROUP BY: organiza as linhas de resultado em grupos de acordo com os valores das expressões informadas Uso com funções agregadas HAVING: (opcional) seleciona os grupos de acordo com os resultados Só pode ser usado junto com o GROUP BY

Agrupando Informações GROUP BY Exemplo: Exibir a quantidade de homens e mulheres na empresa SELECT sexo, count (*) FROM funcionário GROUP BY sexo

Agrupando Informações GROUP BY Exemplo: Exibir a quantidade de funcionários e o total de salários de cada setor da empresa SELECT setor, COUNT(*) TotFunc, SUM(salario) TotSal FROM funcionário GROUP BY setor

Agrupando Informações GROUP BY Exemplo: Exibir a quantidade de pedidos de cada data SELECT data_pedido, COUNT(*) quantidade FROM pedido GROUP BY data_pedido

Agrupando Informações GROUP BY Exemplo: Exibir os códigos dos pedidos que tem mais do que 4 produtos SELECT cod_pedido, COUNT(produto) FROM itens GROUP BY cod_pedido HAVING COUNT(produto)>4

Agrupando Informações GROUP BY Exemplo: Exibir o valor total de cada pedido (valor total = quantidade*preço-desconto), onde a soma seja maior que R$1.000,00 SELECT cod_pedido, SUM((quant*preco)-desc) FROM itens GROUP BY cod_pedido HAVING SUM((quant*preco)-desc) > 1000

Agrupando Informações GROUP BY Exemplo: Exibir a média de idade dos funcionários de cada sexo, em cada setor da empresa. Exibir apenas os setores onde essa média de idade seja superior a 40 anos SELECT setor, sexo, AVG(idade) FROM funcionario GROUP BY setor, sexo HAVING AVG(idade) > 40

Sub-Consultas Uma sub-consulta é uma consulta SELECT aninhada dentro de outro comando SQL Uma sub-consulta deve ser delimitada entre parênteses e é avaliada apenas uma vez O resultado de uma sub-consulta retorna um conjunto de linhas para a consulta principal A consulta mais externa depende da sub-consulta

Sub-Consultas Retorno de uma sub-consulta Uma sub-consulta de valor único retorna apenas um valor e pode ser usada no lugar de qualquer expressão utilizando operadores (=, <, >, <>) 1 coluna 1 valor WHERE A=(SELECT b...) /*Verdade se A=B*/

Sub-Consultas Exemplo: Exibir o nome e o valor da gratificação das funções que têm a menor gratificação da empresa SELECT nome, gratificacao FROM funcao WHERE gratificacao = (SELECT MIN(gratificacao) FROM funcao)

Sub-Consultas Exemplo: Exibir o código, o nome e a quantidade em estoque do produto que tem a maior quantidade em, estoque da empresa SELECT codigo, nome, quantest FROM produto WHERE quantest = (SELECT MAX(quantEst) FROM produto)

Sub-Consultas Retorno de uma sub-consulta Uma sub-consulta de valor único retorna múltiplas linhas e pode ser usada apenas em um WHERE utilizando cláusulas especiais 1 coluna muitos valores

Sub-Consultas Uma sub-consulta pode retornar também uma lista de valores, que pode ser usada em comparações com o operador IN

Sub-Consultas Exemplo: Exibir código e nome de todos os clientes estrangeiros SELECT codigo, nome FROM cliente WHERE codpais IN (SELECT codigo FROM pais WHERE codigo <> BRA ) SELECT c.codigo, c.nome FROM cliente c, pais p WHERE c.codpais = p.codigo AND c.codpais <> BRA

Sub-Consultas: Lista de Valores Especiais > ALL : maior que todos < ALL : menor que todos <> ALL : diferente de todos (igual a NOT IN) = ANY : igual a algum dos elementos da lista (o mesmo que IN) > ANY : maior que algum dos elementos da lista < ANY: menor que algum dos elementos da lista <> ANY : diferente de algum dos elementos da lista

Sub-Consultas Exemplo: exibir nome, tipo e preço de venda dos produtos que não sejam dos tipos 3, 4 ou 5, e que tenham preço de venda maior que pelo menos o preço de um destes produtos SELECT nome, tipo, preco_venda FROM produto WHERE tipo NOT IN (3,4,5) AND preco_venda > ANY (SELECT preco_venda FROM produto WHERE tipo IN (3,4,5))

União de Conjuntos Cláusula UNION Utilizada para combinar resultado de dois comandos do tipo SELECT Os dois comandos podem até trazer dados de tabelas diferentes, desde que com o mesmo número de colunas e tipos de dados compatíveis para cada coluna correspondente de um com o outro Na união de conjuntos, os elementos repetidos são eliminados (como se utilizasse a cláusula DISTINCT)

União de Conjuntos Exemplo: Exiba todas as cidades e estados onde existem autores ou editoras, ordenados pelo estado SELECT cidade, estado FROM autor UNION SELECT cidade, estado FROM editoras ORDER BY estado

Consulta com Criação de Tabela Sintaxe: SELECT <colunas> INTO <nova_tabela> FROM <tabela>

Consulta com Criação de Tabela Exemplo: Criar uma nova tabela que contenha o código do pedido, nome e telefone do cliente que fez cada um deles. SELECT p.codpedido Pedido, c.nomecliente Cliente, C.fone Fone INTO Pedidos FROM compras p, cliente c WHERE p.codcli = c.codcli

Consulta com Criação de Tabela A nova tabela chamada Pedidos será criada no banco de dados (criação física), contendo o código do pedido, o nome e telefone do cliente que fez cada um deles Para criar uma tabela temporária, é necessário colocar o caractere # iniciando o nome da tabela #Pedidos Tabela Local ##Pedidos Tabela Golbal

Tabelas Temporárias Tabelas Temporárias Locais: Criadas com o prefixo #, e possuem visibilidade restrita para a conexão responsável pela sua criação Tabelas Temporárias Globais: Criadas com o prefixo ##, e são visíveis para todas as conexões

Tabelas Temporárias Os dois tipos de tabelas (locais e globais) só existem enquanto a conexão responsável pela sua criação estiver ativa São eliminadas automaticamente quando a conexão é desfeita

Tabelas Temporárias Exemplo: Criar uma tabela com CREATE TABLE e inserir dados na mesma CREATE TABLE #temp ( codcli int, nome varchar(50) ) INSERT INTO #temp VALUES (1, Ana ) SELECT * FROM #temp

Tabelas Temporárias Exemplo: selecione a quantidade de pedidos agrupados pela data para uma nova tabela temporária global SELECT data Data, COUNT(*) Quant INTO ##temp FROM pedidos GROUP BY data

Tabelas Temporárias Cuidado com a duplicação do nome da tabela temporária durante a criação! Se acontecer, teremos uma situação de erro Só utilize tabelas temporárias quando necessário! Utilização exige gravação em disco baixa performance