Linguagem SQL Comando SELECT Agrupamento de Resultados

Documentos relacionados
Linguagem SQL Comando SELECT Subqueries

Linguagem de Consulta Estruturada SQL- DML

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL

ANÁLISE E PROJETO DE BANCO DE DADOS

A cláusula order by permite ordenar tuplos exemplo: listar por ordem alfabética os nomes dos clientes com empréstimo na agência de Perryridge

Bases de Dados. DML Data Manipulation Language Parte 2

Prof. Fabiano Taguchi

Álgebra Relacional e SQL

SQL (Tópicos) Structured Query Language

Bases de Dados BDDAD. Linguagem SQL. Comando SELECT Divisão Algébrica. Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/9

Material Teórico. Cláusula GROUP BY e HAVING. Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque

E-BOOK GUIA RÁPIDO DE SQL W W W. T R E I N A W E B.C O M. B R

Aula 11 SBD SQL Parte 3. Profa. Elaine Faria UFU

SQL Linguagem de Manipulação de Dados SQL DML SQL DML. Exemplo Modelo Relacional. Exemplo ME-R SQL DML CONTINUAÇÃO...

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

SQL-99: Esquema de BD EMPRESA

Linguagem de Consulta - SQL

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

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL

Tarefa Orientada 13 Agrupamento e sumário de dados

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

Sumário SELECT + FROM

Introdução ao PostgreSQL

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

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

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

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

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

DML - SELECT Agrupando Dados

Escola Secundária de Albufeira. Comandos MySQL. (Páginas Web Dinâmicas: PHP e MySQL) Carlos Nunes

PROGRAMA. 3.SQL Básico. 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação. Prof. Dr. Marcos Tsuzuki

As Instruções DML. As Instruções de manipulação de dados(dml) em SQL são representados por: Modificam o estado do banco de dados:

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

Ordenação de tuplos order by

Funções de Agregação, Subconsultas e Views

Pesquisa básica em tabelas

Bases de Dados. Álgebra Relacional II Junções, agregações, vistas. P. Serendero,

António Rocha Nuno Melo e Castro

SQL - Consultas

SQL DML. SQL Linguagem de Manipulação de Dados SELECT SELECT SELECT SELECT

Aula 10 BD 1 SQL Parte 2. Profa. Elaine Faria UFU

Rápida revisão do Modelo Relacional

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 TGD/JMB 1. Projecto de Bases de Dados. Linguagem 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;

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

TLBD II Instruções SQL

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 -

IMPLEMENTAÇÃO DE BANCO DE DADOS

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

Projeto de Banco de Dados

Há vários algoritmos para processar junções nested-loop join block nested-loop join indexed nested-loop join merge-join hash-join

Structured Query Language (SQL) SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais.

Bancos (Bases) de Dados

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

TRABALHO DE DEPENDÊNCIA ETAPA 2

ANEXO B Manual básico de SQL

Linguagem de Consulta Estruturada SQL- DML

Manipulando a base de dados

Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José;

MySql. Introdução a MySQL. Andréa Garcia Trindade

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

Projeto de Banco de Dados

- SQL Linguagem de Manipulação de Dados

Uniao Educacional e Tecnologica Impacta- Uni Impacta

Múltiplas Tabelas. Disciplina de Banco de Dados

Query SQL (Structured Query Language)

Disciplina: Banco de Dados. Edmilson Campos, Prof. MsC. AULA 10

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

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

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

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

BANCO DE DADOS PARA WEB

Comandos de Manipulação

Consultas SQL Parte II

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

Sintaxe do comando SELECT

Roteiro. SQL: Visões. Suporte de SQL para OLAP SELECT. Detalhando GROUP BY SQL DML CONTINUAÇÃO CONSULTAS AVANÇADAS. Consultas Avançadas Visões

Múltiplas Tabelas. Disciplina de Banco de Dados

Apresentação Modelo e SQL. André Luiz Montevecchi

BANCO DE DADOS. Para a criação de um banco de dados, através de scripts SQL, deve-se usar a seguinte sintaxe: CREATE DATABASE <nome_banco_de_dados>

Transcrição:

BDDAD Bases de Dados Linguagem SQL Comando SELECT de Resultados Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/12

Introdução Sumário Funções de Agregação Básicas COUNT SUM MIN MAX AVG Cláusulas de GROUP BY HAVING Nelson Freire (ISEP LEI-BDDAD 2015/16) 2/12

Interesse Obter informação agregada (i.e., resumida) sobre grupos de registos do resultado de um SELECT Exemplos Tabela Empregado (instância) de Resultados Grupo Lisboa Grupo Porto Total de empregados por localidade Grupo Braga Cláusula GROUP BY: Especifica agrupamento pela localidade. Tabela dividida em grupos pela localidade. Função de Agregação COUNT: Conta os registos de cada grupo. Nelson Freire (ISEP LEI-BDDAD 2015/16) 3/12

Funções Aplicadas a uma simples coluna duma tabela. Retornam um simples valor. Interesse Obter informação agregada (i.e., resumida) sobre: Todos os registos.. especificados na cláusula WHERE Grupos de registos especificados na cláusula GROUP BY Exemplo Função COUNT Tabela: EMPREGADOS(..., NOME,..., LOCALIDADE,...) Informação agregada de todos os registos Funções de Agregação Informação agregada de cada grupo de registos NULL ignorado 1/4 Funções de Agregação podem ser aplicadas com ou sem agrupamento (GROUP BY) Nome coluna alterado Nelson Freire (ISEP LEI-BDDAD 2015/16) 4/12

Tipos Mais Vulgares Funções de Agregação 2/4 Função Formato Resultado Observação COUNT COUNT(*) Número total de registos do resultado/grupo de resultados do SELECT COUNT(coluna) COUNT (DISTINCT coluna) Número de valores diferentes de NULL na coluna especificada. Número de valores diferentes na coluna especificada. Ignora NULL Não conta repetidos Ignora NULL MAX MAX(coluna) Maior valor da coluna especificada. Aplicada também a MIN MIN(coluna) Menor valor da coluna especificada. colunas do tipo string, usando uma comparação alfabética. Ignora NULL SUM SUM(coluna) Soma dos valores da coluna especificada. Aplicáveis apenas a AVG AVG(coluna) Média dos valores da coluna especificada. colunas numéricas. Ignora NULL Funções aplicadas a uma simples coluna Palavra-reservada DISTINCT Para eliminar duplicados antes de aplicar função Pode ser usado em todas as funções Especificada antes do nome da coluna Como no exemplo do COUNT Nelson Freire (ISEP LEI-BDDAD 2015/16) 5/12

Exemplos Funções de Agregação DISTINCT ignora NULL 3/4 Possível aplicar múltiplas funções. Mostrada um linha de resultados. Nelson Freire (ISEP LEI-BDDAD 2015/16) 6/12

Legal nas Cláusulas SELECT HAVING Ilegal Na cláusula WHERE como operando Exemplo Funções de Agregação 4/4 Solução Com SELECT encaixado (subquery) Na cláusula SELECT Lista de colunas (fora de funções) e funções de agregação sem GROUP BY para agrupar os dados, conjuntamente. Exemplo: Nelson Freire (ISEP LEI-BDDAD 2015/16) 7/12

Cláusulas GROUP BY // agrupa registos duma tabela HAVING // filtra grupos da tabela final Cláusulas de SELECT [ ALL DISTINCT ] <lista select> FROM <lista de tabela> [WHERE <condição_where>] [GROUP BY <lista groupby>] [HAVING <condição having>] [ORDER BY <lista orderby> [ DESC ASC ] ] Nelson Freire (ISEP LEI-BDDAD 2015/16) 8/12

Sintaxe Cláusula GROUP BY SELECT [ ALL DISTINCT ] <lista select> FROM <lista de tabela> [WHERE <condição_where>] [GROUP BY <lista groupby>] [HAVING <condição having>] [ORDER BY <lista orderby> [ DESC ASC ] ] 1/2 <lista groupby> ::= { table_name view_name table_alias }.* { column_name expression }, [, n] Interesse Agrupar informação Dividir o resultado de um SELECT em grupos de resultados para serem processados por funções de agregação. Deve Especificar Todas as colunas seleccionadas (no SELECT) exceto colunas em funções de agregação SGBD precisa de saber como agrupar o resultado do SELECT Cada Item do SELECT Deve ser um simples valor para cada grupo Valores NULL Também são agrupados numa coluna Colunas do GRUPO BY: Não têm de existir no SELECT. Com Cláusula WHERE WHERE é executado em 1º Grupos formados depois com registos filtrados Nelson Freire (ISEP LEI-BDDAD 2015/16) 9/12

Exemplos Cláusula GROUP BY 2/2 Tabela PREMIOS Nelson Freire (ISEP LEI-BDDAD 2015/16) 10/12

Criada Para trabalhar conjuntamente com GROUP BY Sintaxe Cláusula HAVING SELECT [ ALL DISTINCT ] <lista select> FROM <lista de tabela> [WHERE <condição_where>] [GROUP BY <lista groupby>] [HAVING <condição having>] [ORDER BY <lista orderby> [ DESC ASC ] ] 1/2 <condição having> ::= condição com expressões, constantes ou colunas incluídas na <lista groupby> Interesse Restringir os grupos que surgem no resultado final. i.e, filtrar os grupos. Aplicada Sobre os resultados dos grupos. Nomes de colunas Incluídas em GROUP BY Ou usadas em funções de agregação. Condição Inclui sempre pelo menos uma função de agregação. Senão pode ser colocada em WHERE Colunas do GRUPO BY: Não têm de existir no SELECT. Nelson Freire (ISEP LEI-BDDAD 2015/16) 11/12

Exemplos Cláusula HAVING 2/2 Nelson Freire (ISEP LEI-BDDAD 2015/16) 12/12