Logo Passei Direto
Buscar

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Instituto Federal de Goiás
Banco de Dados
Aula 5Aula 5
SQL Avançado
Revisão
� História
� Destaque Edgar Frank e IBM
� SQL
� DML
� DDL
� SGBDs e criação do banco de dados
� Tipos de dados� Tipos de dados
� DDLs
� Create table
� Restrições (Constraints)
� Índices
2
Revisão
�DML
�Insert
�Insert into nomeTabela (coluna1,coluna2 ... colunaN) (select * 
from nomeTabela)
�Update�Update
�Delete
�Select
3
Revisão
�Operadores
�Aritméticos
�Comparação
� LógicosLógicos
�Especiais
� DDL
�Alter table [add,(modify|alter),drop] column nomeColuna
4
Revisão
�Joins
�Inner join
�Full join�Full join
�Left join
�Right join
5
Comandos UNION, INTERSECT, MINUS
�Junção de conjuntos
�Compatíveis para união
�Quantidade de atributos iguais�Quantidade de atributos iguais
�Tipo de dados compatíveis
6
Comando UNION
� Agrupa registros retirando as duplicidades
� Conjunto exclusivos de registros
Consulta UNION {all} Consulta
� Fundir dois conjuntos de dados
7
Comando INTERSECT
� Apenas os registros duplicados nos conjuntos irão aparecer
Consulta INTERSECT Consulta
� Pode ser usado para saber quais registros estão duplicados em � Pode ser usado para saber quais registros estão duplicados em 
uma consulta que usa union.
8
Comando MINUS
� Subtrai um conjunto do outro
Consulta minus Consulta
� Em algumas implementações podem constar a palavra except� Em algumas implementações podem constar a palavra except
9
Comando JOINS
�Cross join
�Nature join
�JOIN USING�JOIN USING
10
Comando Cross JOIN
�Retorna o produto cartesiano das tabelas 
select * from t1 CROSS JOIN t2select * from t1 CROSS JOIN t2
11
Comando NATURE JOIN
�Retorna as linhas que possuam atributos 
exatamente iguais.
select * from t1 NATURE JOIN t2 
�Caso não seja encontrado atributos iguais �Caso não seja encontrado atributos iguais 
(nome,tipo) para fazer o join então é retornado o 
produto carteziano.
12
Comando JOIN USING
�Utiliza um atributo para fazer a junção.
�Este atributo deve estar presente em ambas 
tabelastabelas
select * from t1 join t2 using (id)
13
Subconsultas e Consultas relacionadas
� Processar dados baseados em outros dados
� Consulta no interior de outra
� Expressa entre parênteses
� Consulta externa
� Consulta Interna� Consulta Interna
� Saída da consulta interna é usada como entrada para externa
� Consulta integrada
14
Subconsultas e Consultas relacionadas
�Usar a subconsulta nas DMLs
�Insert
�Update�Update
�Delete
15
Subconsultas e Consultas relacionadas
�Retorna
�Linha
�Lista de valores�Lista de valores
�Uma tabela virtual
16
Subconsultas e Consultas relacionadas
�Where
�In, Any, All
�Having�Having
�FROM
�Lista de atributos
17
Subconsultas e Consultas relacionadas
Where
�Ela é utilizada geralmente como um valor ou 
como lista
Select * from T1 where T1 in (select id fromSelect * from T1 where T1 in (select id from
t2)
18
Subconsultas e Consultas relacionadas
In, Any, All
� É usado para interagir com subconsultas que retornam listas
� In 
� Está dentro da lista
� All
� Todos da Lista� Todos da Lista
� Any
� Qualquer um da lista
19
Subconsultas e Consultas relacionadas
Having
�Como lista ou valor
20
Subconsultas e Consultas relacionadas
FROM
�Como tabela virtual
select * from T1 inner join (select t1_id, 
count(*) from T2 group by t1_id) T2_v oncount(*) from T2 group by t1_id) T2_v on
(T1.id = T2_v.t1_id)
21
Subconsultas e Consultas relacionadas
�Where
�In, Any, All
�Having�Having
�FROM
�Lista de atributos
22
Subconsultas Correlacionadas
�A consulta externa influência na consulta 
interna.
�Aplica-se alias as tabelas�Aplica-se alias as tabelas
�Executa para todas as linhas da consulta 
externa
23
Funções SQL
� Decomposição e derivação de dados
� Data por exemplo: dia, mês e ano
� Podem aparecer em qualquer lugar do comando sql
� Exemplos
� Aritméticas� Aritméticas
� Trigonométricas
� Caractere
� Data e hora
24
Função de Data
� to_date
�Extract
�To_char
�Tipo interval�Tipo interval
�now()
�Conversão usando ::
25
Função de Numéricas
�ABS
�ROUND
�CEIL�CEIL
�FLOOR
26
Função de Caracteres
� UPPER
� LOWER
� INITCAP
� LENGTH
� TRANSLATE
� REPEAT� REPEAT
� REPLACE
� TRIM
� SPLIT_PART
� SUBSTRING
27
Função de Conversão
�::
�as
�to_date�to_date
�to_char
�to_number
28
Sequência
� Serial
� CREATE SEQUENCE nome START WITH n INCREMENTE BY 
� Funções
� setval(‘nome’)� setval(‘nome’)
�nextval(‘nome’)
� currval(‘nome’)
� Drop SEQUENCE nome
29
Visões Atualizáveis
� Vimos visões nas aulas anteriores
create view nome_visao as (consulta)
� São visões que podem atualizar tabelas
� Restrições
� Não permite expressões grup by e funções agregação� Não permite expressões grup by e funções agregação
� Não é possível ultilizar operadores union, intersect e minus
� É necessário que as chaves primárias sejam retornadas apenas uma 
vez pela visão.
30
Perguntas ?
31

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Mais conteúdos dessa disciplina

Mais conteúdos dessa disciplina