SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
Junções e
Subconsultas


       Juliana Alvares
Junções

As junções (joins) são ferramentas presentes na maioria dos bancos
de dados que suportam SQL e são usadas quando precisamos
recuperar dados de uma ou mais tabelas com base em suas relações
lógicas. Desta forma, é possível combinar os registros de tais tabelas
de forma a construir um “super registro”, que nos permitirá exibir
relatórios mais elaborados.
Junções


Para o bom entendimento de junções, vamos considerar duas
tabelas: filmes e generos. Aqui nós temos uma cardinalidade de 1 x
N. Um filme possui um gênero, enquanto um gênero pode abranger
vários filmes. Vamos começar criando estas duas tabelas (comece
com a tabela generos, já que esta não depende da tabela de filmes):
Junções

  Comando DLL CREATE TABLE para a tabela generos:

CREATE TABLE generos(
  id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  nome VARCHAR(45) NOT NULL,
  PRIMARY KEY(id)
)
ENGINE = InnoDB;
Junções
Comando DLL CREATE TABLE para a tabela filmes:

CREATE TABLE filmes(
   id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
   titulo VARCHAR(45) NOT NULL,
   genero INTEGER UNSIGNED NOT NULL,
   PRIMARY KEY(id),
   CONSTRAINT fk_filmes_generos FOREIGN KEY
fk_filmes_generos(id)
   REFERENCES generos(id) ON DELETE RESTRICT ON
UPDATE RESTRICT
)
ENGINE = InnoDB;
Junções


Veja que a tabela filmes contém uma chave estrangeira
referenciando a chave primária da tabela generos. Isso nos permite
“atrelar” um filme ao seu gênero. Após inserir dados na tabela
generos e na tabela filme, observe o resultado de um comando DML
SELECT na tabela filmes:
Junções
SELECT * FROM filmes;

id   titulo                      genero
1    EFEITO BORBOLETA           6
2    O PENTELHO                 1
3    VIAGEM MALDITA             3

Nesta query o gênero é retornado como um valor inteiro, ou seja, o
valor do campo id da tabela generos. Em muitos casos este não é o
comportamento que queremos. Em vez do id do gênero nós
gostaríamos de exibir seu nome. Isso pode ser conseguido da
seguinte forma:
Junções
SELECT filmes.id, filmes.titulo, generos.nome FROM filmes,
generos WHERE filmes.genero = generos.id;

id   titulo                       genero
1    EFEITO BORBOLETA             FICÇÃO
2    O PENTELHO                   COMÉDIA
3    VIAGEM MALDITA               TERROR

Nesta query eu usei o nome completo da tabela antes do nome dos
campos a serem retornados. Na prática, é comum darmos apelidos
às tabelas. Veja:

SELECT f.id, f.titulo, g.nome FROM filmes f, generos g WHERE
f.genero = g.id;
Subconsultas

Uma subconsulta é uma instrução SELECT adicionada dentro de
uma    instrução   SELECT,      SELECT...INTO,      INSERT...INTO,
DELETE, ou UPDATE ou dentro de outra subconsulta. Pode
utilizar três formas de sintaxe para criar uma subconsulta:
Subconsultas
comparação [ANY | ALL | SOME] (instrução sql)           expressão
[NOT] IN (instrução sql) [NOT] EXISTS (instrução sql)
Onde:
Comparação: É uma expressão e um operador de comparação que
compara a expressão com o resultado da subconsulta.
Expressão: É uma expressão pela qual se busca o conjunto
resultante da subconsulta.
Instrução SQL: É uma instrução SELECT, que segue o mesmo
formato e regras que qualquer outra SELECT. Deve ir entre
parênteses.
Subconsultas
Pode-se utilizar uma subconsulta no lugar de uma expressão na lista
de campos de uma instrução SELECT ou em uma cláusula WHERE
    ou HAVING. Em uma subconsulta, se utiliza uma instrução
  SELECT para proporcionar um conjunto de um ou mais valores
  especificados para avaliar na expressão da cláusula WHERE ou
                            HAVING.
Subconsultas

    Pode-se utilizar o predicado ANY ou SOME, os quais são
   sinônimos, para recuperar registros da consulta principal, que
satisfaçam a comparação com qualquer outro registro recuperado na
 subconsulta. O exemplo seguinte devolve todos os produtos cujo
preço unitário for maior que o de qualquer produto vendido com um
             desconto igual ou maior ao 25 por cento:
Subconsultas
SELECT *
FROM
  Produtos
WHERE
  PrecoUnidade >=
  ANY
  (
  SELECT
    PrecoUnidade
  FROM
    DetalhePedido
  WHERE
    Desconto = 0 .25
)
Subconsultas

O predicado ALL se utiliza para recuperar unicamente aqueles
registros da consulta principal que satisfazem a comparação com
todos os registros recuperados na subconsulta. Se se muda ANY por
ALL no exemplo anterior, a consulta devolverá unicamente aqueles
produtos cujo preço unitário for maior que o de todos os produtos
vendidos com um desconto igual ou maior ao 25 por cento. Isto é
muito mais restritivo.
Subconsultas


  O predicado IN se emprega para recuperar unicamente aqueles
   registros da consulta principal para os que alguns registros da
 subconsulta contém um valor igual. O exemplo seguinte devolve
todos os produtos vendidos com um desconto igual a 25 por cento:
Subconsultas
SELECT *
FROM
   Produtos
WHERE
  IDProduto
   IN
  (
   SELECT
  IDProduto
  FROM
   DetalhePedido
  WHERE
  Desconto = 0.25
)
Subconsultas
Inversamente, pode-se utilizar NOT IN para recuperar unicamente
aqueles registros da consulta principal para os que não têm nenhum
registro da subconsulta que contenha um valor igual.
O predicado EXISTS (com palavra reservada NOT opcional) se
utiliza em comparações de verdade/falso para determinar se a
subconsulta devolve algum registro. Suponhamos que desejamos
recuperar todos aqueles clientes que tiverem realizado pelo menos
um pedido:
Subconsultas
SELECT
   Clientes.Companhia, Clientes.Telefone
FROM
  Clientes
WHERE EXISTS (
  SELECT
  FROM
   Pedidos
  WHERE
   Pedidos.IdPedido = Clientes.IdCliente
)

Más contenido relacionado

La actualidad más candente

Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Adriano Teixeira de Souza
 
Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)Helder da Rocha
 
300 Exercícios Resolvidos e Comentados em Python - Fernando Feltrin - Amostra...
300 Exercícios Resolvidos e Comentados em Python - Fernando Feltrin - Amostra...300 Exercícios Resolvidos e Comentados em Python - Fernando Feltrin - Amostra...
300 Exercícios Resolvidos e Comentados em Python - Fernando Feltrin - Amostra...Fernando Belome Feltrin
 
Python - Programação funcional
Python - Programação funcionalPython - Programação funcional
Python - Programação funcionalfabiocerqueira
 
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Helder da Rocha
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos JavaMarcio Marinho
 
Comparação Sintaxe Portugol vs Java
Comparação Sintaxe Portugol vs JavaComparação Sintaxe Portugol vs Java
Comparação Sintaxe Portugol vs JavaMario Sergio
 
Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceçõesAlvaro Oliveira
 
PHP POSTGRESQL integration
PHP POSTGRESQL  integrationPHP POSTGRESQL  integration
PHP POSTGRESQL integrationSandhya Sharma
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - JavaArthur Emanuel
 
Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo RelacionalJoel Santos
 
Linguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesLinguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesElaine Cecília Gatto
 
Java: Composicao e Array List
Java: Composicao e Array ListJava: Composicao e Array List
Java: Composicao e Array ListArthur Emanuel
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em PythonLuciano Ramalho
 

La actualidad más candente (20)

Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
 
Aula 6 - Cardinalidade
Aula 6 - CardinalidadeAula 6 - Cardinalidade
Aula 6 - Cardinalidade
 
Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)
 
300 Exercícios Resolvidos e Comentados em Python - Fernando Feltrin - Amostra...
300 Exercícios Resolvidos e Comentados em Python - Fernando Feltrin - Amostra...300 Exercícios Resolvidos e Comentados em Python - Fernando Feltrin - Amostra...
300 Exercícios Resolvidos e Comentados em Python - Fernando Feltrin - Amostra...
 
Python - Programação funcional
Python - Programação funcionalPython - Programação funcional
Python - Programação funcional
 
Estrutura de dados em Java - Pilhas
Estrutura de dados em Java - PilhasEstrutura de dados em Java - Pilhas
Estrutura de dados em Java - Pilhas
 
Estrutura de dados em Java - Recursividade
Estrutura de dados em Java - RecursividadeEstrutura de dados em Java - Recursividade
Estrutura de dados em Java - Recursividade
 
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos Java
 
Banco de dados de Loja
Banco de dados de LojaBanco de dados de Loja
Banco de dados de Loja
 
Comparação Sintaxe Portugol vs Java
Comparação Sintaxe Portugol vs JavaComparação Sintaxe Portugol vs Java
Comparação Sintaxe Portugol vs Java
 
Node.js e Express
Node.js e ExpressNode.js e Express
Node.js e Express
 
Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceções
 
PHP POSTGRESQL integration
PHP POSTGRESQL  integrationPHP POSTGRESQL  integration
PHP POSTGRESQL integration
 
Si diagrama de classes
Si  diagrama de classesSi  diagrama de classes
Si diagrama de classes
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - Java
 
Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo Relacional
 
Linguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesLinguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e Funções
 
Java: Composicao e Array List
Java: Composicao e Array ListJava: Composicao e Array List
Java: Composicao e Array List
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em Python
 

Destacado

Manual de Usuário - TCC André Luiz Jamarino Abekawa
Manual de Usuário - TCC André Luiz Jamarino AbekawaManual de Usuário - TCC André Luiz Jamarino Abekawa
Manual de Usuário - TCC André Luiz Jamarino AbekawaAndré Luiz Jamarino Abekawa
 
Java - Introdução a banco de dados
Java - Introdução a banco de dadosJava - Introdução a banco de dados
Java - Introdução a banco de dadosSérgio Souza Costa
 
Replicacao Object Sistemas
Replicacao Object SistemasReplicacao Object Sistemas
Replicacao Object Sistemastaniamaciel
 
Minicurso de Cakephp
Minicurso de CakephpMinicurso de Cakephp
Minicurso de CakephpCauan Cabral
 
Apostila PhP com Wamp, 2a. parte
Apostila PhP com Wamp, 2a. parteApostila PhP com Wamp, 2a. parte
Apostila PhP com Wamp, 2a. parteIlton Barbosa
 
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...Manuel Menezes de Sequeira
 
area econòmica i patrimonial
area econòmica i patrimonialarea econòmica i patrimonial
area econòmica i patrimonialSandro
 
Canvi climàtic: Efectes i percepció social
Canvi climàtic: Efectes i percepció socialCanvi climàtic: Efectes i percepció social
Canvi climàtic: Efectes i percepció socialJosep Lluís Ruiz
 
Arquitectura de Computadores (II Bimestre)
Arquitectura de Computadores (II Bimestre)Arquitectura de Computadores (II Bimestre)
Arquitectura de Computadores (II Bimestre)Videoconferencias UTPL
 
Tema 3 Dissolucions 1er batxillerat
Tema 3 Dissolucions 1er batxilleratTema 3 Dissolucions 1er batxillerat
Tema 3 Dissolucions 1er batxilleratmmarti61
 
Les propietats dels materials i els assaigs d'estudi
Les propietats dels materials i els assaigs d'estudiLes propietats dels materials i els assaigs d'estudi
Les propietats dels materials i els assaigs d'estudiGlòria García García
 
1c-EL SEXENNI DEMOCRÀTIC
1c-EL SEXENNI DEMOCRÀTIC1c-EL SEXENNI DEMOCRÀTIC
1c-EL SEXENNI DEMOCRÀTICjcorbala
 
La Variació Lingüística
La Variació LingüísticaLa Variació Lingüística
La Variació LingüísticaEpsa Llengues
 
La població espanyola. (2) Els contrasts territorials
La població espanyola. (2) Els contrasts territorialsLa població espanyola. (2) Els contrasts territorials
La població espanyola. (2) Els contrasts territorialsEmpar Gallego
 
Unitat 2 la revolució industrial 2017-18
Unitat 2   la revolució industrial 2017-18Unitat 2   la revolució industrial 2017-18
Unitat 2 la revolució industrial 2017-18jordimanero
 
Increment strategy ppt 2013 14
Increment strategy ppt 2013 14Increment strategy ppt 2013 14
Increment strategy ppt 2013 14Vipul Saxena
 

Destacado (20)

Manual de Usuário - TCC André Luiz Jamarino Abekawa
Manual de Usuário - TCC André Luiz Jamarino AbekawaManual de Usuário - TCC André Luiz Jamarino Abekawa
Manual de Usuário - TCC André Luiz Jamarino Abekawa
 
ADO.NET
ADO.NETADO.NET
ADO.NET
 
Java - Introdução a banco de dados
Java - Introdução a banco de dadosJava - Introdução a banco de dados
Java - Introdução a banco de dados
 
Replicacao Object Sistemas
Replicacao Object SistemasReplicacao Object Sistemas
Replicacao Object Sistemas
 
Minicurso de Cakephp
Minicurso de CakephpMinicurso de Cakephp
Minicurso de Cakephp
 
Apostila PhP com Wamp, 2a. parte
Apostila PhP com Wamp, 2a. parteApostila PhP com Wamp, 2a. parte
Apostila PhP com Wamp, 2a. parte
 
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
 
Agile Management
Agile ManagementAgile Management
Agile Management
 
area econòmica i patrimonial
area econòmica i patrimonialarea econòmica i patrimonial
area econòmica i patrimonial
 
Lliço5 Cinèticaquímica
Lliço5 CinèticaquímicaLliço5 Cinèticaquímica
Lliço5 Cinèticaquímica
 
Canvi climàtic: Efectes i percepció social
Canvi climàtic: Efectes i percepció socialCanvi climàtic: Efectes i percepció social
Canvi climàtic: Efectes i percepció social
 
Arquitectura de Computadores (II Bimestre)
Arquitectura de Computadores (II Bimestre)Arquitectura de Computadores (II Bimestre)
Arquitectura de Computadores (II Bimestre)
 
Tema 3 Dissolucions 1er batxillerat
Tema 3 Dissolucions 1er batxilleratTema 3 Dissolucions 1er batxillerat
Tema 3 Dissolucions 1er batxillerat
 
Les propietats dels materials i els assaigs d'estudi
Les propietats dels materials i els assaigs d'estudiLes propietats dels materials i els assaigs d'estudi
Les propietats dels materials i els assaigs d'estudi
 
Tema15
Tema15Tema15
Tema15
 
1c-EL SEXENNI DEMOCRÀTIC
1c-EL SEXENNI DEMOCRÀTIC1c-EL SEXENNI DEMOCRÀTIC
1c-EL SEXENNI DEMOCRÀTIC
 
La Variació Lingüística
La Variació LingüísticaLa Variació Lingüística
La Variació Lingüística
 
La població espanyola. (2) Els contrasts territorials
La població espanyola. (2) Els contrasts territorialsLa població espanyola. (2) Els contrasts territorials
La població espanyola. (2) Els contrasts territorials
 
Unitat 2 la revolució industrial 2017-18
Unitat 2   la revolució industrial 2017-18Unitat 2   la revolució industrial 2017-18
Unitat 2 la revolució industrial 2017-18
 
Increment strategy ppt 2013 14
Increment strategy ppt 2013 14Increment strategy ppt 2013 14
Increment strategy ppt 2013 14
 

Similar a Junções e subconsultas

Similar a Junções e subconsultas (20)

Consultas SQL
Consultas SQLConsultas SQL
Consultas SQL
 
Aula 10 banco de dados
Aula 10   banco de dadosAula 10   banco de dados
Aula 10 banco de dados
 
12 SQL - Junções / Join
12 SQL - Junções / Join12 SQL - Junções / Join
12 SQL - Junções / Join
 
Aula 11 banco de dados
Aula 11   banco de dadosAula 11   banco de dados
Aula 11 banco de dados
 
Aula 11 banco de dados
Aula 11   banco de dadosAula 11   banco de dados
Aula 11 banco de dados
 
Comandos DDL para o MySQL
Comandos DDL para o MySQLComandos DDL para o MySQL
Comandos DDL para o MySQL
 
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
 
Principais instruções em sql
Principais instruções em sqlPrincipais instruções em sql
Principais instruções em sql
 
TOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLTOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQL
 
Excel Intermediário
Excel IntermediárioExcel Intermediário
Excel Intermediário
 
Sql linguagem
Sql linguagemSql linguagem
Sql linguagem
 
Modelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosModelagem relacional e normalização de dados
Modelagem relacional e normalização de dados
 
Fundamentos de SQL - Parte 6 de 8
Fundamentos de SQL - Parte 6 de 8Fundamentos de SQL - Parte 6 de 8
Fundamentos de SQL - Parte 6 de 8
 
Aprofundamento de DDL e DML
Aprofundamento de DDL e DMLAprofundamento de DDL e DML
Aprofundamento de DDL e DML
 
BD I - Aula 14 A - Limitando Conj Dados e Sub Selects
BD I - Aula 14 A - Limitando Conj Dados e Sub SelectsBD I - Aula 14 A - Limitando Conj Dados e Sub Selects
BD I - Aula 14 A - Limitando Conj Dados e Sub Selects
 
Fundamentos de SQL - Parte 1 de 8
Fundamentos de SQL - Parte 1 de 8Fundamentos de SQL - Parte 1 de 8
Fundamentos de SQL - Parte 1 de 8
 
Fundamentos de SQL - Parte 3 de 8
Fundamentos de SQL - Parte 3 de 8Fundamentos de SQL - Parte 3 de 8
Fundamentos de SQL - Parte 3 de 8
 
MYSQL - TLBDII
MYSQL - TLBDIIMYSQL - TLBDII
MYSQL - TLBDII
 
Sql junções
Sql junçõesSql junções
Sql junções
 
Inner Join
Inner JoinInner Join
Inner Join
 

Último

Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...marcelafinkler
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptxJssicaCassiano2
 
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...azulassessoria9
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...MariaCristinaSouzaLe1
 
Caderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfCaderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfJuliana Barbosa
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxLuizHenriquedeAlmeid6
 
Apresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaApresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaCentro Jacques Delors
 
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdfMESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docPauloHenriqueGarciaM
 
Questões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LPQuestões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LPEli Gonçalves
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024azulassessoria9
 
Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Centro Jacques Delors
 
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024azulassessoria9
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...azulassessoria9
 
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...AnaAugustaLagesZuqui
 
Missa catequese para o dia da mãe 2025.pdf
Missa catequese para o dia da mãe 2025.pdfMissa catequese para o dia da mãe 2025.pdf
Missa catequese para o dia da mãe 2025.pdfFbioFerreira207918
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxMarcosLemes28
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxMarcosLemes28
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Cabiamar
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...andreiavys
 

Último (20)

Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 
Caderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfCaderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdf
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
Apresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaApresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União Europeia
 
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdfMESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
 
Questões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LPQuestões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LP
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)
 
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
 
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
 
Missa catequese para o dia da mãe 2025.pdf
Missa catequese para o dia da mãe 2025.pdfMissa catequese para o dia da mãe 2025.pdf
Missa catequese para o dia da mãe 2025.pdf
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 

Junções e subconsultas

  • 1. Junções e Subconsultas Juliana Alvares
  • 2. Junções As junções (joins) são ferramentas presentes na maioria dos bancos de dados que suportam SQL e são usadas quando precisamos recuperar dados de uma ou mais tabelas com base em suas relações lógicas. Desta forma, é possível combinar os registros de tais tabelas de forma a construir um “super registro”, que nos permitirá exibir relatórios mais elaborados.
  • 3. Junções Para o bom entendimento de junções, vamos considerar duas tabelas: filmes e generos. Aqui nós temos uma cardinalidade de 1 x N. Um filme possui um gênero, enquanto um gênero pode abranger vários filmes. Vamos começar criando estas duas tabelas (comece com a tabela generos, já que esta não depende da tabela de filmes):
  • 4. Junções Comando DLL CREATE TABLE para a tabela generos: CREATE TABLE generos( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, nome VARCHAR(45) NOT NULL, PRIMARY KEY(id) ) ENGINE = InnoDB;
  • 5. Junções Comando DLL CREATE TABLE para a tabela filmes: CREATE TABLE filmes( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, titulo VARCHAR(45) NOT NULL, genero INTEGER UNSIGNED NOT NULL, PRIMARY KEY(id), CONSTRAINT fk_filmes_generos FOREIGN KEY fk_filmes_generos(id) REFERENCES generos(id) ON DELETE RESTRICT ON UPDATE RESTRICT ) ENGINE = InnoDB;
  • 6. Junções Veja que a tabela filmes contém uma chave estrangeira referenciando a chave primária da tabela generos. Isso nos permite “atrelar” um filme ao seu gênero. Após inserir dados na tabela generos e na tabela filme, observe o resultado de um comando DML SELECT na tabela filmes:
  • 7. Junções SELECT * FROM filmes; id titulo genero 1 EFEITO BORBOLETA 6 2 O PENTELHO 1 3 VIAGEM MALDITA 3 Nesta query o gênero é retornado como um valor inteiro, ou seja, o valor do campo id da tabela generos. Em muitos casos este não é o comportamento que queremos. Em vez do id do gênero nós gostaríamos de exibir seu nome. Isso pode ser conseguido da seguinte forma:
  • 8. Junções SELECT filmes.id, filmes.titulo, generos.nome FROM filmes, generos WHERE filmes.genero = generos.id; id titulo genero 1 EFEITO BORBOLETA FICÇÃO 2 O PENTELHO COMÉDIA 3 VIAGEM MALDITA TERROR Nesta query eu usei o nome completo da tabela antes do nome dos campos a serem retornados. Na prática, é comum darmos apelidos às tabelas. Veja: SELECT f.id, f.titulo, g.nome FROM filmes f, generos g WHERE f.genero = g.id;
  • 9. Subconsultas Uma subconsulta é uma instrução SELECT adicionada dentro de uma instrução SELECT, SELECT...INTO, INSERT...INTO, DELETE, ou UPDATE ou dentro de outra subconsulta. Pode utilizar três formas de sintaxe para criar uma subconsulta:
  • 10. Subconsultas comparação [ANY | ALL | SOME] (instrução sql) expressão [NOT] IN (instrução sql) [NOT] EXISTS (instrução sql) Onde: Comparação: É uma expressão e um operador de comparação que compara a expressão com o resultado da subconsulta. Expressão: É uma expressão pela qual se busca o conjunto resultante da subconsulta. Instrução SQL: É uma instrução SELECT, que segue o mesmo formato e regras que qualquer outra SELECT. Deve ir entre parênteses.
  • 11. Subconsultas Pode-se utilizar uma subconsulta no lugar de uma expressão na lista de campos de uma instrução SELECT ou em uma cláusula WHERE ou HAVING. Em uma subconsulta, se utiliza uma instrução SELECT para proporcionar um conjunto de um ou mais valores especificados para avaliar na expressão da cláusula WHERE ou HAVING.
  • 12. Subconsultas Pode-se utilizar o predicado ANY ou SOME, os quais são sinônimos, para recuperar registros da consulta principal, que satisfaçam a comparação com qualquer outro registro recuperado na subconsulta. O exemplo seguinte devolve todos os produtos cujo preço unitário for maior que o de qualquer produto vendido com um desconto igual ou maior ao 25 por cento:
  • 13. Subconsultas SELECT * FROM Produtos WHERE PrecoUnidade >= ANY ( SELECT PrecoUnidade FROM DetalhePedido WHERE Desconto = 0 .25 )
  • 14. Subconsultas O predicado ALL se utiliza para recuperar unicamente aqueles registros da consulta principal que satisfazem a comparação com todos os registros recuperados na subconsulta. Se se muda ANY por ALL no exemplo anterior, a consulta devolverá unicamente aqueles produtos cujo preço unitário for maior que o de todos os produtos vendidos com um desconto igual ou maior ao 25 por cento. Isto é muito mais restritivo.
  • 15. Subconsultas O predicado IN se emprega para recuperar unicamente aqueles registros da consulta principal para os que alguns registros da subconsulta contém um valor igual. O exemplo seguinte devolve todos os produtos vendidos com um desconto igual a 25 por cento:
  • 16. Subconsultas SELECT * FROM Produtos WHERE IDProduto IN ( SELECT IDProduto FROM DetalhePedido WHERE Desconto = 0.25 )
  • 17. Subconsultas Inversamente, pode-se utilizar NOT IN para recuperar unicamente aqueles registros da consulta principal para os que não têm nenhum registro da subconsulta que contenha um valor igual. O predicado EXISTS (com palavra reservada NOT opcional) se utiliza em comparações de verdade/falso para determinar se a subconsulta devolve algum registro. Suponhamos que desejamos recuperar todos aqueles clientes que tiverem realizado pelo menos um pedido:
  • 18. Subconsultas SELECT Clientes.Companhia, Clientes.Telefone FROM Clientes WHERE EXISTS ( SELECT FROM Pedidos WHERE Pedidos.IdPedido = Clientes.IdCliente )