SlideShare a Scribd company logo
1 of 8
Download to read offline
Cardinalidade Máxima:

   DepartamentoFuncionários



   1                                         n
Um departamento                                                Um funcionário
pode ter quantos                                               pode pertencer a
funcionários?                                                  quantos
                                                               departamentos?


   Cardinalidade Mínima:


   DepartamentoFuncionários



                   1                                       0
Para cadastrar                                                 Para cadastrar
funcionários, eu                                               departamento, eu
preciso de                                                     preciso de
departamento?                                                  funcionário?


   Relacionamento n para 1: PK de “1” vira FK de “n” (“1” exporta chave primaria para “n”)

   Relacionamento 1 pra 1: Se trocam as chaves primárias, portanto podem ser a mesma
   entidade

   Relacionamento n pra n: Cria-se outra entidade, exportando as chaves primarias das duas
   entidades “n” para a nova entidade (chaves estrangeiras da nova entidade)



   Modelo Entidade-Relacionamento: Relações de entidades e chaves primárias
   Modelo Físico: Chaves primarias, estrangeiras, novas entidades criadas com o relacionamento
   n pra n



   SQL:
   Comandos DDL:
Criando Tabela

Createtable cidade
codcidadenumber(4) notnull,
nomecidade varchar2(20) no null)

Mostra tabela cidade

desc cidade

Exclui tabela

droptable cidade

Incluir campo posteriormente

altertable cidade
add estado varchar2(2) notnull

Excluindo campo:

altertable cidade
dropcolumn estado

Modificando campo

altertable acervo modify
titulo varchar(100) notnull

Adicionar chave primária

altertable cidade

addconstraintcidade_pkprimarykey (codcidade)


(codcidade é o campo que você deseja transformar em PK)

Adicionar múltiplas chaves primárias

altertable cidade

addconstraintcidade_pkprimarykey (codcidade,cidade,estado)

Adicionar chave estrangeira

altertable aluno
addconstraintaluno_cidade_fk
foreignkey (codcidade)
references cidade (codcidade)
(a reference é a PK (nesse caso codcidade da tabela cidade) que você quer referenciar na
presente tabela através de uma chave estrangeira)



Adicionar múltiplas chaves estrangeira

altertable aluno
addconstraintaluno_cidade_fk
foreignkey (codcidade,cidade,estado)
references cidade (codcidade,cidade,estado)



Comandos DML:


Inserção:

Insertinto cidade (codcidade,descrição,uf)
values (1,’caxias’,’RS’)

(vai inserir nos campos da tabela cidade relacionados entre parênteses os valores nessa
ordem. Deve-se colocar dentro de aspas simples os varchar)

Insertinto cidade (codcidade, descrição,uf)
values(2,’Bento’,NULL)

(caso o campo não seja NotNull, irá ser inserido valor nulo no campo uf)

Alteração:

update cidade
set uf=’RS’
where uf=’SC’

Exclusão:

deletefrom cidade
wherecodcidade>=1
andcodcidade<= 10

Visualizando conteúdo:

select * from livros (ver tudo o que está em livros)

desc livros (visualizar as colunas e suas caracteristicas)

select autor from livros (visualiza apenas a coluna livros)
orderbypublicacao (ordena pelo campo publicação em ordem alfabética)
select titulo from acervo
wherecodacervo> 2 (mostra na coluna titulo da tabela acervo as linhas onde codavervo for
maior que 2)



select titulo from acervo
wherecodacervo> 2
andcodacervo<= 4



select titulo
from acervo
wherecodacervo IN (1,3) (apenas os que estão entre parenteses)



select titulo
from acervo
wherecodacervo BETWEEN 2 and 4 (todos entre 2 e 4)



Select *
from empréstimo
wheredtdevolucao IS NULL



SelectNVL(dtdevolucao,)
from empréstimo
wheredtdevolucao IS NULL (mostra onde esta null com valor 0)



select titulo from acervo
where titulo like %a% (que contenha "a" no titulo)
Usando Aliases:

   1. Exibir o título de todos os filmes da categoria “Acervo” do gênero “Ação”.


       Selectf.titulo(Campo que você quer consultar)
       From filme f,
               categoria c, (da onde os dados vem)
               genero g
       whereupper (c.descricao) = ‘ACERVO’ (Condições)
       andupper (g.descricao) = ‘ACAO’
       andf.genero = g.codgem (Abaixo, ligando de acordo com as constraints)
       andf.categoria = c.codcat



   2. Exibir todos os clientes que pagaram alguma multa.

       Select *
       From cliente c,
              Locação l
       Wherenvl(vlrmulta,0)>0 (NVL transforma valores NULL em 0 para exibição)
       Andc.codcli=l.codcliente (Constraint entre cliente e locação)


   3. Exibir o título dos filmes e a descrição do seu gênero em ordem alfabética.

       Selectf.titulo, g.descricao
       from filme f,
       genero g
       whereg.codgen = f.genero
       orderby 1

       Se usar “asc” depois de orderby1, é crescente, se usar “desc”, é decrescente.


   4. Exibir nome de atleta e nome da equipe, odernar pro atleta
      (Relação de equipe e atleta é n:n, por tanto há uma terceira entidade)

       selecta.nome, e.nome
       from atleta a, equipe e, equipe_atletaae (as três entidades)
       wherea.cod_atleta = ae.cod_atleta (ligando as 3 entidades através das PK/FK)
       andae.cod_equipe = e.cod_equipe
       orderbye.nome; (ordenando por nome de equipe)
Matéria nova:Funções de Grupo:

AVG
SUM
COUNT
MIN
MAX



select sum (valor) --------- soma
from multa

selectmax (valor) --------- maximo valor
from multa

selectavg (valor) --------- media valor
from multa

selectcount (valor) --------- quantidade valor
from multa



selectcod_socio, sum (valor) ----- cod_socio não tem funcao de grupo, sum(valor) tem.
from multa
groupbycod_socio ----- o campo que vai no groupbynão tem função de grupo. É obrigatório a
presençadele para que os campos sem função de grupo sejam exibidos.



selectm.cod_socio, a.nome, sum(m.valor)
from multa m, associado a
wherem.cod_socio=a.cod_socio
having sum(m.valor)>8 --------- testar por funcao de grupo --- testa se o somatorio é > 8
groupbym.cod_socio, a.nome
orderbym.cod_socio ou 1 ---------- ordena tanto com o nome ou com o nº (ordem no select)

Having testa a função de grupo:

Mostra somente cidades que tenham mais de 3 alunos
HavingCount(a.codaluno) > 3



Agrupa por chaves que não tem função de grupo.


1) Exibir o nome das equipes e a quantidade de atletas que cada uma adicionou na
competição de São Paulo
selecte.nome, count(*) (count (*), quantidade de vezes que aparece)
from equipe e, equipe_atletaae, participacao p, competicao c (todas as tabelas até
chegar em competição)
whereae.cod_equipe = e.cod_equipe
andae.cod_equipe = p.cod_equipe (Ligando as tabelas PK/FK)
andae.cod_atleta = p.cod_atleta
andp.cod_competicao = c.cod_competicao
andc.cidade = 'Sao Paulo' (condição para exibir no select)
groupbye.nome;


2) Exibir o nome do atleta com o maior número de penalidades.



selecta.nome
from atleta a, penalidades p
wherea.cod_atleta = p.cod_atleta
andp.pontos = (select MAX(pontos)
from penalidades);

3) Escreva o comando SQL para consultar o nome de todos os pacientes e quantas consultar
foram agendadas. Mostre somente os pacientes que tiveram mais de 5 consultas agendadas
e que são do sexo feminino.

Selectp.nome,count(*)
From paciente p
, agenda a
Wherep.codpaciente = a.codpaciente
Andp.sexo = ‘F’
Groupbyp.nome
Havingcount(*) > 5




Comando pra gerar um script pra excluir todo o banco


select 'droptable '||table_name||' CASCADE CONSTRAINTS;'

FROM user_tables



Subqueries:
1) Mostre clientes que não tem orçamento

Select c.nome
from cliente c
WHERE NOT EXISTS (select * from orcamento o WHERE c.codcliente=o.codcliente)

OU

Select c.nome
from cliente c
Werec.codcliente NOT IN (Select o.codcliente from orçamento o)



2)O Nome do cliente que fez a maior compra

Selectc.nome
from cliente c, compra m
Wherec.codcliente = m.codcliente
andm.valor = (SelectMAX(valor) from compra)

3)Exibir o nome do atleta com o maior número de penalidades.

selecta.nome
from atleta a, penalidades p
wherea.cod_atleta = p.cod_atleta
andp.pontos = (select MAX(pontos)
from penalidades);



4) Escreva o nome do comprador que possui o maior valor total de venda

selectv.nomecomprador
fromvenda v
wherev.valortotal = (selectmax(v. valortotal) from venda v)

5) Escreva o comando SQL para consultar o nome de todos os pacientes que agendaram
consulta mas não fizeram tratamento.

Selectp.nome
From paciente p
, agenda a
p.codpaciente =a.codpaciente
and NOT EXISTS (select * frompacientetratamenteopt
               Wherept.codpaciente=p.codpaciente)

More Related Content

Similar to Manual de consulta rápido de PL/SQL

Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosMarcos Thomaz
 
Revisao_SQL_Parte_I.ppt
Revisao_SQL_Parte_I.pptRevisao_SQL_Parte_I.ppt
Revisao_SQL_Parte_I.ppta08008
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funçõesCarla Lee
 
Base de Dados - Conversão E-A para Esquema Relacional
Base de Dados - Conversão E-A para Esquema RelacionalBase de Dados - Conversão E-A para Esquema Relacional
Base de Dados - Conversão E-A para Esquema RelacionalMariana Hiyori
 
LabMM4 (T08 - 12/13) - SQL continuação
LabMM4 (T08 - 12/13) - SQL continuaçãoLabMM4 (T08 - 12/13) - SQL continuação
LabMM4 (T08 - 12/13) - SQL continuaçãoCarlos Santos
 
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 SelectsRodrigo Kiyoshi Saito
 
Aula7 sql basico_6por_pag
Aula7 sql basico_6por_pagAula7 sql basico_6por_pag
Aula7 sql basico_6por_paganacri
 
Função SOMASE no Microsoft Excel 2007
Função SOMASE no Microsoft Excel 2007Função SOMASE no Microsoft Excel 2007
Função SOMASE no Microsoft Excel 2007Breno Damasceno
 
3º Fast Show - SQL Analytics
3º Fast Show - SQL Analytics3º Fast Show - SQL Analytics
3º Fast Show - SQL Analyticsqualidatavix
 
postgres servlab
postgres servlabpostgres servlab
postgres servlabbjsjd
 

Similar to Manual de consulta rápido de PL/SQL (20)

Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos Comandos
 
Modelagem de Dados
Modelagem de DadosModelagem de Dados
Modelagem de Dados
 
Revisao_SQL_Parte_I.ppt
Revisao_SQL_Parte_I.pptRevisao_SQL_Parte_I.ppt
Revisao_SQL_Parte_I.ppt
 
Sobrecarga operadores
Sobrecarga operadoresSobrecarga operadores
Sobrecarga operadores
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funções
 
Fundamentos de C#
Fundamentos de C#Fundamentos de C#
Fundamentos de C#
 
Visualg
VisualgVisualg
Visualg
 
Base de Dados - Conversão E-A para Esquema Relacional
Base de Dados - Conversão E-A para Esquema RelacionalBase de Dados - Conversão E-A para Esquema Relacional
Base de Dados - Conversão E-A para Esquema Relacional
 
Questesdetecnologia ano2003
Questesdetecnologia ano2003Questesdetecnologia ano2003
Questesdetecnologia ano2003
 
LabMM4 (T08 - 12/13) - SQL continuação
LabMM4 (T08 - 12/13) - SQL continuaçãoLabMM4 (T08 - 12/13) - SQL continuação
LabMM4 (T08 - 12/13) - SQL continuação
 
Agrupamento
AgrupamentoAgrupamento
Agrupamento
 
Agrupamento
AgrupamentoAgrupamento
Agrupamento
 
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
 
Aula7 sql basico_6por_pag
Aula7 sql basico_6por_pagAula7 sql basico_6por_pag
Aula7 sql basico_6por_pag
 
Função SOMASE no Microsoft Excel 2007
Função SOMASE no Microsoft Excel 2007Função SOMASE no Microsoft Excel 2007
Função SOMASE no Microsoft Excel 2007
 
Linguagem R
Linguagem RLinguagem R
Linguagem R
 
3º Fast Show - SQL Analytics
3º Fast Show - SQL Analytics3º Fast Show - SQL Analytics
3º Fast Show - SQL Analytics
 
Aula 11 banco de dados
Aula 11   banco de dadosAula 11   banco de dados
Aula 11 banco de dados
 
postgres servlab
postgres servlabpostgres servlab
postgres servlab
 
Aula de C e C++
Aula de C e C++Aula de C e C++
Aula de C e C++
 

More from Anderson Zardo

VLAN - Conceitos Básicos
VLAN - Conceitos BásicosVLAN - Conceitos Básicos
VLAN - Conceitos BásicosAnderson Zardo
 
Gerenciamento da disponibilidade itil
Gerenciamento da disponibilidade   itilGerenciamento da disponibilidade   itil
Gerenciamento da disponibilidade itilAnderson Zardo
 
Engenharia Social - A arte de enganar
Engenharia Social - A arte de enganarEngenharia Social - A arte de enganar
Engenharia Social - A arte de enganarAnderson Zardo
 
Mini política de Segurança da Informação - Análise de Riscos
Mini política de Segurança da Informação - Análise de RiscosMini política de Segurança da Informação - Análise de Riscos
Mini política de Segurança da Informação - Análise de RiscosAnderson Zardo
 
Trabalho tolerância a falhas e recuperação de desastres
Trabalho tolerância a falhas e recuperação de desastresTrabalho tolerância a falhas e recuperação de desastres
Trabalho tolerância a falhas e recuperação de desastresAnderson Zardo
 
Trabalho de gerenciamento de usuários
Trabalho de gerenciamento de usuáriosTrabalho de gerenciamento de usuários
Trabalho de gerenciamento de usuáriosAnderson Zardo
 
Software proprietário e livre
Software proprietário e livreSoftware proprietário e livre
Software proprietário e livreAnderson Zardo
 
Sistemas especialistas
Sistemas especialistasSistemas especialistas
Sistemas especialistasAnderson Zardo
 
Fibra ótica cabeamento estruturado
Fibra ótica cabeamento estruturadoFibra ótica cabeamento estruturado
Fibra ótica cabeamento estruturadoAnderson Zardo
 
Aspectos positivos e negativos da virtualizaçã1
Aspectos positivos e negativos da virtualizaçã1Aspectos positivos e negativos da virtualizaçã1
Aspectos positivos e negativos da virtualizaçã1Anderson Zardo
 
Artigo o mundo inspirado por julio verne
Artigo   o mundo inspirado por julio verneArtigo   o mundo inspirado por julio verne
Artigo o mundo inspirado por julio verneAnderson Zardo
 
Anderson zardo principais componentes do cabeamento estruturado
Anderson zardo   principais componentes do cabeamento estruturadoAnderson zardo   principais componentes do cabeamento estruturado
Anderson zardo principais componentes do cabeamento estruturadoAnderson Zardo
 
Anderson zardo artigo sub-sistemas do cabeamento estruturado - cópia
Anderson zardo   artigo sub-sistemas do cabeamento estruturado - cópiaAnderson zardo   artigo sub-sistemas do cabeamento estruturado - cópia
Anderson zardo artigo sub-sistemas do cabeamento estruturado - cópiaAnderson Zardo
 
Anderson zardo artigo sobre cabeamento estruturado
Anderson zardo   artigo sobre cabeamento estruturadoAnderson zardo   artigo sobre cabeamento estruturado
Anderson zardo artigo sobre cabeamento estruturadoAnderson Zardo
 
Anderson zardo artigo fibra ótica no cabeamento estruturado
Anderson zardo   artigo fibra ótica no cabeamento estruturadoAnderson zardo   artigo fibra ótica no cabeamento estruturado
Anderson zardo artigo fibra ótica no cabeamento estruturadoAnderson Zardo
 
Trabalho windows x linux
Trabalho windows x linuxTrabalho windows x linux
Trabalho windows x linuxAnderson Zardo
 

More from Anderson Zardo (20)

VLAN - Conceitos Básicos
VLAN - Conceitos BásicosVLAN - Conceitos Básicos
VLAN - Conceitos Básicos
 
Balanced Scorecard
Balanced ScorecardBalanced Scorecard
Balanced Scorecard
 
Gerenciamento da disponibilidade itil
Gerenciamento da disponibilidade   itilGerenciamento da disponibilidade   itil
Gerenciamento da disponibilidade itil
 
Engenharia Social - A arte de enganar
Engenharia Social - A arte de enganarEngenharia Social - A arte de enganar
Engenharia Social - A arte de enganar
 
Mini política de Segurança da Informação - Análise de Riscos
Mini política de Segurança da Informação - Análise de RiscosMini política de Segurança da Informação - Análise de Riscos
Mini política de Segurança da Informação - Análise de Riscos
 
Trabalho frame relay
Trabalho frame relayTrabalho frame relay
Trabalho frame relay
 
Trabalho tolerância a falhas e recuperação de desastres
Trabalho tolerância a falhas e recuperação de desastresTrabalho tolerância a falhas e recuperação de desastres
Trabalho tolerância a falhas e recuperação de desastres
 
Trabalho de gerenciamento de usuários
Trabalho de gerenciamento de usuáriosTrabalho de gerenciamento de usuários
Trabalho de gerenciamento de usuários
 
Trabalho acl
Trabalho aclTrabalho acl
Trabalho acl
 
Software proprietário e livre
Software proprietário e livreSoftware proprietário e livre
Software proprietário e livre
 
Sistemas especialistas
Sistemas especialistasSistemas especialistas
Sistemas especialistas
 
Resumo transistor
Resumo transistorResumo transistor
Resumo transistor
 
Fibra ótica cabeamento estruturado
Fibra ótica cabeamento estruturadoFibra ótica cabeamento estruturado
Fibra ótica cabeamento estruturado
 
Aspectos positivos e negativos da virtualizaçã1
Aspectos positivos e negativos da virtualizaçã1Aspectos positivos e negativos da virtualizaçã1
Aspectos positivos e negativos da virtualizaçã1
 
Artigo o mundo inspirado por julio verne
Artigo   o mundo inspirado por julio verneArtigo   o mundo inspirado por julio verne
Artigo o mundo inspirado por julio verne
 
Anderson zardo principais componentes do cabeamento estruturado
Anderson zardo   principais componentes do cabeamento estruturadoAnderson zardo   principais componentes do cabeamento estruturado
Anderson zardo principais componentes do cabeamento estruturado
 
Anderson zardo artigo sub-sistemas do cabeamento estruturado - cópia
Anderson zardo   artigo sub-sistemas do cabeamento estruturado - cópiaAnderson zardo   artigo sub-sistemas do cabeamento estruturado - cópia
Anderson zardo artigo sub-sistemas do cabeamento estruturado - cópia
 
Anderson zardo artigo sobre cabeamento estruturado
Anderson zardo   artigo sobre cabeamento estruturadoAnderson zardo   artigo sobre cabeamento estruturado
Anderson zardo artigo sobre cabeamento estruturado
 
Anderson zardo artigo fibra ótica no cabeamento estruturado
Anderson zardo   artigo fibra ótica no cabeamento estruturadoAnderson zardo   artigo fibra ótica no cabeamento estruturado
Anderson zardo artigo fibra ótica no cabeamento estruturado
 
Trabalho windows x linux
Trabalho windows x linuxTrabalho windows x linux
Trabalho windows x linux
 

Manual de consulta rápido de PL/SQL

  • 1. Cardinalidade Máxima: DepartamentoFuncionários 1 n Um departamento Um funcionário pode ter quantos pode pertencer a funcionários? quantos departamentos? Cardinalidade Mínima: DepartamentoFuncionários 1 0 Para cadastrar Para cadastrar funcionários, eu departamento, eu preciso de preciso de departamento? funcionário? Relacionamento n para 1: PK de “1” vira FK de “n” (“1” exporta chave primaria para “n”) Relacionamento 1 pra 1: Se trocam as chaves primárias, portanto podem ser a mesma entidade Relacionamento n pra n: Cria-se outra entidade, exportando as chaves primarias das duas entidades “n” para a nova entidade (chaves estrangeiras da nova entidade) Modelo Entidade-Relacionamento: Relações de entidades e chaves primárias Modelo Físico: Chaves primarias, estrangeiras, novas entidades criadas com o relacionamento n pra n SQL: Comandos DDL:
  • 2. Criando Tabela Createtable cidade codcidadenumber(4) notnull, nomecidade varchar2(20) no null) Mostra tabela cidade desc cidade Exclui tabela droptable cidade Incluir campo posteriormente altertable cidade add estado varchar2(2) notnull Excluindo campo: altertable cidade dropcolumn estado Modificando campo altertable acervo modify titulo varchar(100) notnull Adicionar chave primária altertable cidade addconstraintcidade_pkprimarykey (codcidade) (codcidade é o campo que você deseja transformar em PK) Adicionar múltiplas chaves primárias altertable cidade addconstraintcidade_pkprimarykey (codcidade,cidade,estado) Adicionar chave estrangeira altertable aluno addconstraintaluno_cidade_fk foreignkey (codcidade) references cidade (codcidade)
  • 3. (a reference é a PK (nesse caso codcidade da tabela cidade) que você quer referenciar na presente tabela através de uma chave estrangeira) Adicionar múltiplas chaves estrangeira altertable aluno addconstraintaluno_cidade_fk foreignkey (codcidade,cidade,estado) references cidade (codcidade,cidade,estado) Comandos DML: Inserção: Insertinto cidade (codcidade,descrição,uf) values (1,’caxias’,’RS’) (vai inserir nos campos da tabela cidade relacionados entre parênteses os valores nessa ordem. Deve-se colocar dentro de aspas simples os varchar) Insertinto cidade (codcidade, descrição,uf) values(2,’Bento’,NULL) (caso o campo não seja NotNull, irá ser inserido valor nulo no campo uf) Alteração: update cidade set uf=’RS’ where uf=’SC’ Exclusão: deletefrom cidade wherecodcidade>=1 andcodcidade<= 10 Visualizando conteúdo: select * from livros (ver tudo o que está em livros) desc livros (visualizar as colunas e suas caracteristicas) select autor from livros (visualiza apenas a coluna livros) orderbypublicacao (ordena pelo campo publicação em ordem alfabética)
  • 4. select titulo from acervo wherecodacervo> 2 (mostra na coluna titulo da tabela acervo as linhas onde codavervo for maior que 2) select titulo from acervo wherecodacervo> 2 andcodacervo<= 4 select titulo from acervo wherecodacervo IN (1,3) (apenas os que estão entre parenteses) select titulo from acervo wherecodacervo BETWEEN 2 and 4 (todos entre 2 e 4) Select * from empréstimo wheredtdevolucao IS NULL SelectNVL(dtdevolucao,) from empréstimo wheredtdevolucao IS NULL (mostra onde esta null com valor 0) select titulo from acervo where titulo like %a% (que contenha "a" no titulo)
  • 5. Usando Aliases: 1. Exibir o título de todos os filmes da categoria “Acervo” do gênero “Ação”. Selectf.titulo(Campo que você quer consultar) From filme f, categoria c, (da onde os dados vem) genero g whereupper (c.descricao) = ‘ACERVO’ (Condições) andupper (g.descricao) = ‘ACAO’ andf.genero = g.codgem (Abaixo, ligando de acordo com as constraints) andf.categoria = c.codcat 2. Exibir todos os clientes que pagaram alguma multa. Select * From cliente c, Locação l Wherenvl(vlrmulta,0)>0 (NVL transforma valores NULL em 0 para exibição) Andc.codcli=l.codcliente (Constraint entre cliente e locação) 3. Exibir o título dos filmes e a descrição do seu gênero em ordem alfabética. Selectf.titulo, g.descricao from filme f, genero g whereg.codgen = f.genero orderby 1 Se usar “asc” depois de orderby1, é crescente, se usar “desc”, é decrescente. 4. Exibir nome de atleta e nome da equipe, odernar pro atleta (Relação de equipe e atleta é n:n, por tanto há uma terceira entidade) selecta.nome, e.nome from atleta a, equipe e, equipe_atletaae (as três entidades) wherea.cod_atleta = ae.cod_atleta (ligando as 3 entidades através das PK/FK) andae.cod_equipe = e.cod_equipe orderbye.nome; (ordenando por nome de equipe)
  • 6. Matéria nova:Funções de Grupo: AVG SUM COUNT MIN MAX select sum (valor) --------- soma from multa selectmax (valor) --------- maximo valor from multa selectavg (valor) --------- media valor from multa selectcount (valor) --------- quantidade valor from multa selectcod_socio, sum (valor) ----- cod_socio não tem funcao de grupo, sum(valor) tem. from multa groupbycod_socio ----- o campo que vai no groupbynão tem função de grupo. É obrigatório a presençadele para que os campos sem função de grupo sejam exibidos. selectm.cod_socio, a.nome, sum(m.valor) from multa m, associado a wherem.cod_socio=a.cod_socio having sum(m.valor)>8 --------- testar por funcao de grupo --- testa se o somatorio é > 8 groupbym.cod_socio, a.nome orderbym.cod_socio ou 1 ---------- ordena tanto com o nome ou com o nº (ordem no select) Having testa a função de grupo: Mostra somente cidades que tenham mais de 3 alunos HavingCount(a.codaluno) > 3 Agrupa por chaves que não tem função de grupo. 1) Exibir o nome das equipes e a quantidade de atletas que cada uma adicionou na competição de São Paulo
  • 7. selecte.nome, count(*) (count (*), quantidade de vezes que aparece) from equipe e, equipe_atletaae, participacao p, competicao c (todas as tabelas até chegar em competição) whereae.cod_equipe = e.cod_equipe andae.cod_equipe = p.cod_equipe (Ligando as tabelas PK/FK) andae.cod_atleta = p.cod_atleta andp.cod_competicao = c.cod_competicao andc.cidade = 'Sao Paulo' (condição para exibir no select) groupbye.nome; 2) Exibir o nome do atleta com o maior número de penalidades. selecta.nome from atleta a, penalidades p wherea.cod_atleta = p.cod_atleta andp.pontos = (select MAX(pontos) from penalidades); 3) Escreva o comando SQL para consultar o nome de todos os pacientes e quantas consultar foram agendadas. Mostre somente os pacientes que tiveram mais de 5 consultas agendadas e que são do sexo feminino. Selectp.nome,count(*) From paciente p , agenda a Wherep.codpaciente = a.codpaciente Andp.sexo = ‘F’ Groupbyp.nome Havingcount(*) > 5 Comando pra gerar um script pra excluir todo o banco select 'droptable '||table_name||' CASCADE CONSTRAINTS;' FROM user_tables Subqueries:
  • 8. 1) Mostre clientes que não tem orçamento Select c.nome from cliente c WHERE NOT EXISTS (select * from orcamento o WHERE c.codcliente=o.codcliente) OU Select c.nome from cliente c Werec.codcliente NOT IN (Select o.codcliente from orçamento o) 2)O Nome do cliente que fez a maior compra Selectc.nome from cliente c, compra m Wherec.codcliente = m.codcliente andm.valor = (SelectMAX(valor) from compra) 3)Exibir o nome do atleta com o maior número de penalidades. selecta.nome from atleta a, penalidades p wherea.cod_atleta = p.cod_atleta andp.pontos = (select MAX(pontos) from penalidades); 4) Escreva o nome do comprador que possui o maior valor total de venda selectv.nomecomprador fromvenda v wherev.valortotal = (selectmax(v. valortotal) from venda v) 5) Escreva o comando SQL para consultar o nome de todos os pacientes que agendaram consulta mas não fizeram tratamento. Selectp.nome From paciente p , agenda a p.codpaciente =a.codpaciente and NOT EXISTS (select * frompacientetratamenteopt Wherept.codpaciente=p.codpaciente)