• Nenhum resultado encontrado

Consultas SQL Parte II

N/A
N/A
Protected

Academic year: 2021

Share "Consultas SQL Parte II"

Copied!
6
0
0

Texto

(1)

CURSO TÉCNICO EM INFORMÁTICA COMPONENTE CURRICULAR: BANCO DE DADOS

PROFESSOR (A): Josiane Ferri TURMA: 11/1 - Tarde

Consultas SQL – Parte II

Outras cláusulas que o comando select apresenta são DISTINCT, ORDER BY, GROUP BY, INNER JOIN, entre outras.

DISTINCT: Várias linhas de uma tabela podem conter os mesmos valores para as suas colunas (duplicidade), com exceção da chave primária.

o Quando desejarmos eliminar a duplicidade, podemos inserir a palavra-chave DISTINCT após a palavra SELECT.

 Exemplo:

select DISTINCT cidade from CadastroAluno;

Se não utilizada retorna o número de vezes que houver algum aluno na Cidade de São Leopoldo.

GROUP BY: cláusula usada em conjunto com select que agrupa linhas por um atributo definido.

 Exemplo:

select nome, cidade from CadastroAluno group by cidade;

ORDER BY: cláusula usada em conjunto com select que ordena por um ou mais atributos especificados em ordem crescente (ASC) ou decrescente (DESC). Por padrão, a ordenação ocorre em ordem crescente.

 Exemplo:

select *

from CadastroAluno

order by nome; | order by nome ASC; | order by nome DESC;

Padrão Crescente Decrescente.

(2)

Antes de especificar a cláusula INNER JOIN, segue abaixo duas funções que auxiliam na construção das query’s que desejam recuperar dados de duas ou mais tabelas.

Qualificadores de Nomes

o Um qualificador de nome consiste do nome da tabela, seguido de um ponto, seguido por um nome de uma coluna da tabela. Por exemplo, o qualificador da coluna NOME da tabela CadastroAluno será CadastroAluno.Aluno.

o Os qualificadores de nome são utilizados em uma consulta para efetivar a junção (JOIN) entre as tabelas.

 Exemplo:

select CadastroAluno.id_aluno, CadastroAluno.nome, pagto.id_aluno

from CadastroAluno, pagto

on CadastroAluno.id_aluno = pagto.id_aluno where dia_venc = ‘25’

Sinônimos de Nomes

o Para que não seja necessário escrever o nome INTEIRO da tabela nas qualificações de nomes, podemos utilizar ALIASES definidos na própria consulta.

o Esta opção é utilizada quando temos que recuperar dados de mais de uma tabela conforme visto acima, mas queremos minimizar a escrita da nossa query.

 Exemplo:

select a.id_aluno, a.nome, p.id_aluno from CadastroAluno a, pagto p on a.id_aluno = p.id_aluno where dia_venc = ‘25’

o É possível também criar alias para nomes de uma coluna. Utilizando a clásula AS;

 Exemplo:

select nome AS (Nome do Aluno), from CadastroAluno

where cidade = ‘Esteio’;

(3)

Serão utilizadas as tabelas abaixo como exemplos:

CadastroAluno

id_aluno Nome Cidade telefone_celular

001 Cássio São Leopoldo 99776655

002 Leonardo Esteio 99887766

003 Jacson Portão 99775544

A mesma do documento anterior (SQL – Parte I)

Pagto

id_pagto dia_venc valor situação id_aluno

001112011 25 500.00 Pago 001

002112011 25 400.00 Pago 002

003112011 20 550.00 Não Pago 003

inner join – cláusula usada em conjunto com select para selecionar informações de tabelas diferentes.

o Juntamente com o inner join devemos utilizar o operador ON, para realizar a relação entre as tabelas, isto é, realizar a igualdade entre campos iguais pertencentes em ambas as tabelas.

 Exemplo:

select a.nome, p.dia_venc, p.situacao

from pagto p INNER JOIN cadastroaluno a on p.id_aluno = a.id_aluno;

o O exemplo acima seleciona o nome do aluno da tabela CadastroAluno, o dia de vencimento e situação da tabela pagto.

o Quando utilizadas consultas em mais de uma tabela, é obrigatória essa relação executada pela cláusula ON, para que não ocorra duplicidade dos registros retornados pela consulta.

o Também pode-se utilizar a cláusula where depois do inner join.

 Exemplo:

select a.id_aluno, a.nome, p.situacao

from CadastroAluno a INNER JOIN pagto p on a.id_aluno = p.id_aluno

where dia_venc = ‘25’;

Retorna o Id_Aluno e Nome da tabela CadastroAluno e a Situação da tabela pagto onde do dia_venc for 25.

(4)

Recuperando dados de duas ou mais tabelas:

Para recuperar dados três tabelas:

Antes vamos inserir as tabela de exemplo:

CadastroAluno

id_aluno Nome Cidade telefone_celular

001 Cássio São Leopoldo 99776655

002 Leonardo Esteio 99887766

003 Jacson Portão 99775544

Disciplinas

id_disciplina Nome Dia Hora_inicio Local

001 Introdução Segunda 19:00 Sala 12 - Laboratório

002 Algoritmos Terça 14:00 Sala 12 - Laboratório

003 Banco de Dados Quarta 14:00 Sala 12 - Laboratório

AlunoDisciplina

id_disciplina id_aluno Situação

001 002 Aprovado

002 002 Aprovado

003 003 Aprovado

 Exemplo:

select a.nome, d.nome, ad.situacao

from CadastroAluno a, Disciplinas d, AlunoDisciplina ad where a.id_aluno = d.id_aluno and ad.id_aluno = d.id_aluno

O exemplo acima retornará o nome da disciplina, do aluno e a situação, ou seja qual disciplina o aluno cursa e se o mesmo está aprovado nesta.

(5)

Funções de Agregação

o As funções de agregação são utilizadas em conjunto com o comando select, na parte de definição dos campos.

o Segue uma lista de funções: COUNT, SUM, AVG, MAX, MIN, entre outras o COUNT - Retorna o número de linhas.

 Exemplo:

select count(*) from cadatroaluno;

o SUM - Retorna a soma de uma coluna específica.

 Exemplo:

select sum(valor) from pagto;

o AVG - Retorna o valor médio de uma coluna específica.

 Exemplo:

select avg(valor) from pagto;

o MAX - Retorna o valor máximo de uma coluna específica.

 Exemplo:

select max(valor) from pagto;

o MIN - Retorna o valor mínimo de uma coluna específica.

 Exemplo:

select min(valor) from pagto;

(6)

Subquerys:

o Subquery significa o uso de um comando SQL dentro de outro comando.

o Para utilizarmos as subquerys, precisamos da cláusula EXISTS.

 Exemplo:

select nome

from cadastroaluno c where EXISTS

(select * from pagto p where c.id_aluno=p.id_aluno);

o Utilizamos uma subquery quando precisamos de informações que através da estrutura básica do comando não nos permite o retorno esperado.

o No exemplo acima retornará o nome do aluno que contiver algum pagamento para ele cadastrado.

Referências

Documentos relacionados

I. A cláusula SELECT deve conter apenas nomes de atributos da relação e não deve possuir quaisquer expressões, agregadas ou especificação DISTINCT. A cláusula

c) select curso.nome as curso, alunos from discente inner join curso on discente.curso_id = curso.id group by curso.nome having count(discente.id) as alunos order by curso.nome.

Sabendo o resultado de multiplicações que envolvem apenas fatores menores ou iguais a 10, podemos definir um algoritmo que seja capaz de realizar qualquer multiplicação. Esse

Usando a cláusula GROUP BY para agrupar linhas Utilização incorreta de chamadas de funções agregadas Usando a cláusula HAVING para filtrar grupos de linhas Usando as cláusulas

As sementes foram submetidas a tratamentos para superação da d o r m ê n c i a , sendo utilizados os tratamentos: testemunha (sementes não tratadas); escarificação mecânica em

As pessoas de mentalidade pobre acreditam que já sabem tudo.” (Livro: Os segredos da mente milionária)..  Reforçar todos os benefícios em ativar novas consultores. 

Nessa perspectiva, destacam-se os impactos psíquicos e sociais causados pela paralisia facial periférica (PFP), quadro clínico que pode inibir de maneira drástica a expressão e

From Relational Algebra to SQL PROJECT operation => SELECT clause of a query.. SELECT DISTINCT Sex, Salary FROM