Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Banco de Dados II
Linguagem SQL
Aula 3
Prof. Leonardo Ferrareto
Graduado em Téc. em 
Processamento 
de Dados
Especialista em Banco de Dados
D.B.A – SQL Server
Junções Horizontais
Junções Verticais
:Funções 
Agregação
Getdate()
Funções de transformação
Funções de Data
Funções de usuários
Conteúdo
Juntar tabelas significa considerar registros de 
mais de uma tabela que tenham ou não os 
mesmos valores em colunas consideradas chaves 
ou algo equivalente.
Para isso pode- :se realizar
Junções Verticais.
Junções Horizontais.
Juntado tabelas
Produto Cartesiano (Cross Join)
Junção Intrínseca (Inner Join)
Junção Extrínseca (Outer Join)
Junção horizontal
Junções Horizontais em que o registro de uma 
tabela e de outra se complementam, tornando-se 
um só registro com a quantidade somada de suas 
colunas, tais como:
Produto Cartesiano (Cross Join). 
Junção Intrínseca (Inner Join). 
Junção Extrínseca (Outer Join). 
Tipos de junções 
Considere as tabelas:
Marca 
Modelo
Exemplo de tabelas
O comando irá trazer todos os registros. Irá listar pra 
cada registro da tabela da esquerda todos os registros 
da tabela da direita, formando um produto cartesiano. 
Produto cartesiano (Cross Join)
Considere o Có :digo
SELECT * FROM TABMARCA 
CROSS JOIN TABMODELO WHERE TABMARCA.MARCA_ID IN (1,2)
O resultado será:
Produto cartesiano (Cross Join)
Outra forma de representar é definindo na clausula from as 
tabelas separadas por virgula.
Considere o Có :digo
Produto cartesiano (Cross Join)
SELECT *
FROM TABMARCA, 
TABMODELO
WHERE TABMARCA.MARCAID 
IN (1,2)
Permite trazer um conjunto de dados de tabelas onde 
os campos estão relacionados através de igualdade. O 
comando impõe obrigatoriedade, ou seja trará apenas 
registros onde os valores de comparação são iguais 
nas duas tabelas da relação
Junção intrínseca (Inner Join)
Considere o Código:
SELECT *
FROM TABMARCA
INNER JOIN TABMODELO ON
TABMARCA.MARCA_ID = TABMODELO.MARCA_ID
O resultado será:
Junção intrínseca (Inner Join)
Permite trazer um conjunto de dados de tabelas onde 
os campos estão relacionados através de igualdade. O 
comando não impõe obrigatoriedade, ou seja, trará
registros onde os valores de comparação são iguais 
nas duas tabelas da relação, e os registros onde os 
valores de comparação não são iguais nas duas 
tabelas da relação. A cláusula OUTER JOIN possui os 
:tipos Left, Right e Full.
Junção extrínseca (Outer Join)
Considera a tabela da esquerda, ou seja, considerará
todos os registros da tabela da esquerda mesmo que a 
mesma não possua registros de referencia na tabela 
da direita.
Left Outer Join
Considere o Có :digo
SELECT *
FROM TABMARCA
LEFT OUTER JOIN TABMODELO ON
TABMARCA.MARCA_ID = TABMODELO.MARCA_ID
O resultado será:
Left Outer Join
Considera a tabela da direita, ou seja, considerará
todos os registros da tabela da direita mesmo que a 
mesma não possua registros de referência na tabela 
da esquerda.
Right Outer Join
Considere o có :digo
SELECT *
FROM TABMARCA
RIGHT OUTER JOIN TABMODELO ON
TABMARCA.MARCA_ID = TABMODELO.MARCA_ID
O resultado será:
Right Outer Join
Considerará todos os registros das duas tabelas, ou 
seja, considera todos os registros que possuem 
relação e os que não possuem relação.
Full Outer Join
Considere o có :digo
SELECT *
FROM TABMARCA
FULL OUTER JOIN TABMODELO ON
TABMARCA.MARCA_ID = TABMODELO.MARCA_ID
O resultado será:
Full Outer Join
Atividade
De acordo com a tabela abaixo, mostre o comando que 
traga o nome da cidade e a qual estado ela pertence.
Resultado esperado:
Atividade
Resoluçã :o
SELECT cidadeNome, estadoUF
FROM TabCidade
INNER JOIN TabEstado
ON cidadeEstadoID = estadoID
Conjuntos Regulares
Union All
Union
Intersect
Except
Junção vertical
Conjuntos regulares são resultados de instruções 
SELECT.
Que têm a mesma quantidade de colunas, não 
precisando ter o mesmo nome.
Cujas colunas têm os mesmos tipos de dados, 
entretanto, se o tipo de dado for CHAR ou VARCHAR, 
o tamanho também tem que ser o mesmo.
Conjuntos regulares
Considere o código
SELECT ING_ID,
ING_DESCRICAO 
FROM INGREDIENTE
O resultado será:
Conjuntos regulares
Considere o código
SELECT 
PRO_ID,PRO_DESCRICAO 
FROM PRODUTO 
O resultado será:
Une dos conjuntos regulares mostrando todas as 
linhas das duas tabelas, mesmo que uma linha já
tenha sido mostrada.
Union All
Considere o código:
SELECT ING_ID, ING_DESCRICAO
FROM INGREDIENTE
UNION ALL
SELECT PRO_ID, PRO_DESCRICAO
FROM PRODUTO
O resultado será:
Union All
Une dos conjuntos regulares mostrando todas não 
coincidentes e as que são coincidentes será exibida 
uma única vez.
Union
Considere o código:
SELECT ING_ID, ING_DESCRICAO
FROM INGREDIENTE
UNION
SELECT PRO_ID, PRO_DESCRICAO
FROM PRODUTO
O resultado será:
Union
Apresenta apenas as linhas onde os conteúdos são 
coincidentes e apenas os coincidentes, ou seja, 
possuem nas duas tabelas.
Intersect
Considere o código abaixo:
SELECT ING_ID, ING_DESCRICAO
FROM INGREDIENTE
INTERSECT
SELECT PRO_ID, PRO_DESCRICAO
FROM PRODUTO
O resultado será:
Intersect
Apresenta apenas as linhas do primeiro conjunto 
regular, e os conteúdos não são coincidentes.
Except
Considere o código abaixo:
SELECT ING_ID, ING_DESCRICAO
FROM INGREDIENTE
EXCEPT
SELECT PRO_ID, PRO_DESCRICAO
FROM PRODUTO
O resultado será:
Except
Atividade
Temos duas tabelas no banco de dados idênticas, porém com nomes 
diferentes, uma com o nome Produto e a outra como Mercadoria, 
conforme a imagem. Deseja-se saber quais produtos que contém na 
tabela produto e não são coincidentes com os produtos cadastrados 
na tabela Mercadoria. Mostre o comando SQL (select)
Atividade
Resoluçã :o
SELECT idProduto, nomeProduto, 
saldoProduto, precoProduto
FROM produto
EXCEPT
SELECT idMercadoria, nomeMercadoria, 
saldoMercadoria, precoMercadoria
FROM mercadoria
São códigos em T-SQL que podem ser classificados
como:
Agregação
Funções de Data
Funções de Usuários
Funções
São códigos em T-SQL que podem ser classificados
como:
Agregação
Funções de Data
Funções de Usuários
Funções
:Tipos
Count
Sum
Avg
Min
Max
Funções de agregação
COUNT 
Diferentemente das outras funções de grupo, o 
COUNT retorna o número de linhas que atende a 
uma determinada condição. Podemos utilizá-lo 
com um asterisco entre parênteses, para indicar 
que queremos saber a quantidade total de 
linhas, independentemente de haver linhas com 
colunas nulas ou não. 
Funções de agregação - COUNT
COUNT 
Se desejarmos saber quantos registros temos na 
tabela cliente:
SELECT COUNT(*) FROM CLIENTE 
Funções de agregação - COUNT
COUNT 
Se desejarmos saber quantos clientes são homens e 
quantos sã :o mulheres
SELECT SEXO, COUNT(*) 
FROM CLIENTE 
GROUP BY SEXO
Nesse caso devemos agrupar pela coluna SEXO, para 
isso devemos usar a cláusula GROUP BY
Funções de agregação - COUNT
SUM 
Retorna o valor total de uma determinada coluna 
em um determinado grupo de linhas. 
Funções de agregação - SUM
SUM 
Assim, se quisermos saber a somatória total dos 
produtos existentes na tabela PRODUTO: 
SELECT SUM(PRECO) 
FROM PRODUTO 
Funções de agregação - SUM
SUM 
Se desejarmos saber a somatória dos preços, 
separados pelo grupo, devemos usar a cláusula 
GROUP BY.
SELECT GRUPO_PROD,
SUM(PRECO)FROM PRODUTO 
GROUP BY GRUPO_PROD
Funções de agregação - SUM
AVG 
Extrai a média aritmética de um determinado grupo 
de linhas. Para saber o preço médio dos Produtos, 
execute o seguinte comando:
SELECT AVG(PRECO) FROM PRODUTO 
Funções de agregação - SUM
AVG 
Para saber a média aritmética dos preços dos 
produtos, dividido por grupo, devemos usar a 
cláusula GROUP BY.
SELECT GRUPO_PROD, AVG(PRECO) 
FROM PRODUTO 
GROUP BY GRUPO_PROD;
Funções de agregação - SUM
MIN 
Retorna o menor valor de uma coluna em um grupo 
de linhas. Podemos utilizá-la para colunas do tipo 
data ou alfanuméricas. Para saber o preço de venda 
mais barato da loja, execute o seguinte comando:
SELECT MIN(PRECO) FROM PRODUTO 
Funções de agregação - SUM
MIN 
Retornar o menor preço dos produtos, dividido por 
grupo.
SELECT GRUPO_PROD,
MIN(PRECO) 
FROM PRODUTO 
GROUP BY GRUPO_PROD;
Funções de agregação - SUM
MAX 
Retorna o maior valor de uma coluna em um grupo 
de linhas. Igualmente ao MIN, pode-se utilizá-la 
para colunas do tipo data ou alfanuméricas. Para 
saber qual é o produto mais caro da loja, execute o 
seguinte comando:
SELECT MAX(PRECO) FROM PRODUTO; 
Funções de agregação - SUM
MAX 
Retornar o maior preço dos produtos, separados 
por grupo, nesse caso devemos usar a cláusula 
GROUP BY:
SELECT GRUPO_PROD,
MAX(PRECO) 
FROM PRODUTO
GROUP BY GRUPO_PROD; 
Funções de agregação - SUM
Função que retorna a data e hora corrente do SQL 
Server, ou seja, se for instalado local retornará a data 
e hora local, caso for um banco instalado no servidor 
ele retornará a data e hora no servidor. 
:Exemplo
� SELECT GETDATE() as CurrentDateTime
Getdate()
DATEDIFF: Função que retorna um valor considerado 
um período. Para isso é necessário informar o 
intervalo desejado.
Sintaxe: DateDiff(intervalor, DataInicial, DataFinal)
� Exemplo:
Select DateDiff (YEAR, 
’01/01/2000’, DTNASCIMENTO) From
Cliente
Funções de data
:DATEADD Retorna um valor adicionando um 
intervalo determinado.
:Sintaxe DATEADD (intervalo, Valor,expressao)
:Exemplo 
� Select DATEADD(YEAR, -
5,DTNASCIMENTO) From Cliente
Funções de data
DATEPART: Retorna um valor particionado da data.
:Sintaxe DATEPART (intervalo, Valor,expressao)
Exemplo:
Select DATEPART(YEAR, DTNASCIMENTO) 
From Cliente
Funções de data
YEAR: Retorna o valor numérico correspondente ao ano.
:Exemplo Select Year(dtnascimento) from cliente
MONTH: Retorna o valor numérico correspondente ao 
mês.
:Exemplo Select Month(dtnascimento) from cliente
DAY: Retorna o valor numérico correspondente ao dia.
:Exemplo Select Day(dtnascimento) from cliente
Funções de data
Cast:
É uma função do padrão ANSI.
Convert:
É uma função do engine do SQl Server. Convert
pode ser utilizado para formatação de valores do 
tipo datetime, money,... . 
Funções de conversão 
Cast:
:Sintaxe
� CAST( expression as _date type[lenght] ;)
Funções de conversão - CAST 
:Exemplo
/Transformar a data hora atual, retornado pelo 
GETDATE() em somente hora
� SELECT CAST(getdate() as TIME);
Funções de conversão - CAST 
:CONVERT
:Sintaxe
� CAST( _date type[lenght], expression [,style] ;)
Funções de conversão - CONVERT
:Fonte 
:// / / /https sqlgo.files.wordpress.com 2011 04 image28.png
Funções de conversão - CONVERT
:Exemplo
Converter a data e hora atual (getdate()) usando a tabela de 
:estilos
SELECT CONVERT( VARCHAR, GETDATE(),111) as '111'
SELECT CONVERT( VARCHAR, GETDATE(),113) as '113'
Funções de conversão - CONVERT
São funções definidas pelo próprio usuário, que não 
fazem parte do conjunto de funções do SQL Server, 
essas funções podem retornar valores comuns ou 
mesmo um valor no formato de uma tabela, com 
múltiplas ocorrências. 
Function – Funções de usuário
Sintaxe (Retornando um único valor) 
CREATE FUNCTION <<NOME FUNÇÃO>> (<<PARAMETROS>> ) 
RETURNS <<TIPO RETORNO>> 
AS 
BEGIN 
DECLARE <<VARIAVEL DE RETORNO>> <<TIPO>> 
<< CODIGO IMPLEMENTADO>> 
RETURN <<VARIAVEL DE RETORNO>> 
END 
Function – Funções de usuários
Sintaxe (Retornando uma tabela) 
CREATE FUNCTION <<NOME FUNÇÃO>> (<<PARAMETROS>> ) 
RETURNS <<NomeTabela>> Table ( <<campo>> <<tipo>>) 
AS 
BEGIN 
<< CODIGO IMPLEMENTADO>> 
RETURN 
END 
Function – Funções de usuários
Exemplo – Função que retorna o dia da semana
Function – Funções de usuários
Exemplo – Função que retorna o dia da semana
Executando a função
Resultado
Function – Funções de usuários
Atividade
Criar uma função de usuário que retorne o nome do 
Mês de uma determinada data
Atividade
Resoluçã :o
No computador
Obrigado
71

Mais conteúdos dessa disciplina