Daniel Paulo dptsalvador@hotmail.com SQL 2014 - Módulo I Daniel Paulo dptsalvador@hotmail.com.

Slides:



Advertisements
Apresentações semelhantes
O Comando DROP INDEX Para eliminar um índice definido sobre uma tabela, utilize: Drop Index on ; Ex: No Access: Drop Index X on.
Advertisements

Banco de Dados Prof. Antonio.
Triggers Renata Viegas.
SQL Avançado Continuação
SQL Structured Query Language (continuação)
Banco de Dados Bruno Rafael de Oliveira Rodrigues.
Banco de Dados SQL TRIGGERS (Gatilhos)
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados I 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone:
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone: 9531 – 7555.
Visões Marilde Santos.
SQL – Consultas Básicas
SQL – Noções Gerais Por Márcia Jacyntha N. Rodrigues Lucena
SQL – DML Consulta a dados de uma tabela
Ordenação de Resultados
Operadores Especiais da SQL
Oficina sobre banco de dados
SCC Bancos de Dados e Suas Aplicações
SCC Bancos de Dados e Suas Aplicações
Material III-Bimestre Wagner Santos C. de Jesus
Operação de União “JOIN”
Linguagem de Banco de Dados - SQL
Linguagem de Banco de Dados - SQL
Banco de dados Profª Kelly Medeiros.
Equipe de monitoria Aula prática 2. Apresentação do caso de estudo Conceitual Lógico Algumas informações iniciais Consultas e exercícios Surpresa... =)
Comandos de SQL Excel VBA II.
SQL Álvaro Vinícius de Souza Coêlho
Cronograma Formato do Comando SELECT – 1ª Seção Uso de Funções (DATE_FORMAT, DAY, MONTH, NOW, CONCAT, FORMAT, COUNT, AVG, MAX, MIN e FORMAT) AS DISTINCT.
Design Patterns / Acesso ao banco de dados (java.sql)
Banco de Dados Aplicado ao Desenvolvimento de Software
Especialização em Tecnologia da Informação
Oracle 9i: SQL e PL/SQL Bruno Celso Cunha de Freitas
Desenvolvendo um script SQL
Linguagem SQL.
Treinamento sobre SQL.
VIEW - VISÕES Professor Esp. Diego André Sant’Ana
Baseado no material do Professor Raul Paradeda
REVISÃO Comandos SQL - DML SELECT * FROM ?.
©Silberschatz, Korth and Sudarshan (modificado)4.1.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
Treinamento SQL Server
SQL Server Comando PIVOT.
Fundamentos de Banco de Dados Fundamentos de Banco de Dados Prof. Gale 2º. Semestre 2008.
Banco de Dados I I Comandos SQL
Linguagem SQL Prof. Juliano.
Structured Query Language
IEC Banco de Dados I Aula 04 – SQL (II) Turmas: Sistemas de Informação Professora: André Luiz da Costa Carvalho
Subconsulta na Cláusula FROM
Daniel Paulo Funções de cadeia de caracteres LEN – Conta os caracteres de uma string SELECT LEN(‘BRASIL’) REPLICATE – Repete.
Daniel Paulo Atualizando e excluindo Dados Comando UPDATE – Altera registros da tabela UPDATE tabela SET nome_coluna = expressao.
Daniel Paulo Constantes ou Literais Caracteres – deve ser utilizado aspas simples ‘Marco Antonio da Silva’ Para utilizar o caractere.
Daniel Paulo Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados.
Associações = JOIN SERVE PARA CONVERTER DADOS ENCONTRADOS EM DUAS OU MAIS TABELAS. CLÁUSULA JOIN PERMITE QUE OS DADOS DE VÁRIAS TABELAS SEJAM COMBINADOS.
Aula 09: Comando SELECT: Ligações entre tabelas e Subconsultas
Daniel Paulo SQL Módulo I Daniel Paulo
Daniel Paulo UPDATE com Subqueries Aumentar em 10% os salários dos empregados do departamento -- 'C.P.D.' UPDATE Empregados.
Recuperação de Dados Banco de Dados Carina Farias
VBA – Visual Basic para Aplicativos
UCSal – Bacharelado em Informática
Linguagem de definição de dados - SQL
SELECT Professor: Virgílio Fries Müller www. vfm.com.br
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para:
1 Programação de Banco de Dados José Antônio da Cunha George Azevedo da Silva.
Programação para Internet Aula 12 SQL (Comandos de Consulta ao BD)
José Antônio da Cunha 2/6/2016 José Antônio - CEFET-RN 1 Disciplina: Banco de Dados.
Prática de Banco de Dados Créditos: Prof. Jefferson Silva Adaptações: Prof. Nécio de Lima Veras.
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
José Antônio da Cunha 3/6/2016 José Antônio - CEFET-RN 1 Copyright © Dale Carnegie & Associates, Inc.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Capítulo 5 Mais SQL: Consultas Complexas, Triggers e Views.
Banco de Dados José Antônio da Cunha CEFET – RN.
MS-SQL Server Structure Query Language
SQL – COMANDOS DML Profª Rosana Traversa.
Transcrição da apresentação:

Daniel Paulo dptsalvador@hotmail.com SQL 2014 - Módulo I Daniel Paulo dptsalvador@hotmail.com

Capítulo 7 Consultas com Subqueries São consultas aninhadas em instruções SELECT, INSERT, DELETE ou UPDATE. O limite máximo de aninhamento de uma subquery é de 32 níveis.

Capítulo 7 Principais características As SUBQUERIES podem ser escalares (um valor conforme tipo de dados definido) É possível obter 1 ou mais colunas por SUBQUERY Deve estar entre parênteses Em instruções SELECT, UPDATE, INSERT e DELETE uma SUBQUERY é utilizada nos mesmos locais das expressões Alguns tipos de dados não podem ser utilizados nas lista de seleção: NTEXT, TEXT e IMAGE

Capítulo 7 Operadores (=, < , > , < > , > = , <=, !> ou !< ) devem ser associados a SUBQUERY que retornam apenas 1 valor com 1 coluna Para utilização de listas de valores é necessário utilizar IN ou EXISTS A utilização da cláusula ORDER BY só é possível caso a cláusula TOP seja utilizada

Capítulo 7 -- Clientes que compraram em Janeiro de 2007 SELECT * FROM CLIENTES WHERE EXISTS (SELECT * FROM PEDIDOS WHERE CODCLI = CLIENTES.CODCLI AND DATA_EMISSAO BETWEEN '2007.1.1' AND '2007.1.31') -- OU WHERE CODCLI IN (SELECT CODCLI FROM PEDIDOS WHERE DATA_EMISSAO BETWEEN '2007.1.1' AND '2007.1.31')

Capítulo 7 -- Clientes que NÃO compraram em Janeiro de 2007 SELECT * FROM CLIENTES WHERE NOT EXISTS (SELECT * FROM PEDIDOS WHERE CODCLI = CLIENTES.CODCLI AND DATA_EMISSAO BETWEEN '2007.1.1' AND '2007.1.31') -- OU WHERE CODCLI NOT IN (SELECT CODCLI FROM PEDIDOS WHERE DATA_EMISSAO BETWEEN '2007.1.1' AND '2007.1.31')

Capítulo 7 Subqueries introduzidas com IN e NOT IN -- Lista de empregados cujo cargo tenha salário inicial -- inferior a 5000 SELECT * FROM EMPREGADOS WHERE COD_CARGO IN ( SELECT COD_CARGO FROM TABELACAR WHERE SALARIO_INIC < 5000)

Capítulo 7 SELECT * FROM TABELADEP --Lista de departamentos onde não existe nenhum funcionário SELECT * FROM TABELADEP WHERE COD_DEPTO NOT IN ( SELECT COD_DEPTO FROM EMPREGADOS WHERE COD_DEPTO IS NOT NULL) --OU SELECT E.CODFUN , E.NOME, E.COD_DEPTO, E.COD_CARGO, D.COD_DEPTO, D.DEPTO FROM EMPREGADOS E RIGHT JOIN TABELADEP D ON E.COD_DEPTO = D.COD_DEPTO WHERE E.COD_DEPTO IS NULL

Capítulo 7 SELECT * FROM TABELACAR -- Lista de cargos em que não existe nenhum funcinário -- cadastrado SELECT * FROM TABELACAR WHERE COD_CARGO NOT IN ( SELECT COD_CARGO FROM EMPREGADOS WHERE COD_CARGO IS NOT NULL) --OU SELECT C.COD_CARGO , C.CARGO FROM EMPREGADOS E RIGHT JOIN TABELACAR C ON E.COD_CARGO = C.COD_CARGO WHERE E.COD_CARGO IS NULL

Capítulo 7 Subqueries introduzidas com sinal de = -- Funcionário(s) que ganha(m) menos SELECT * FROM EMPREGADOS WHERE SALARIO = (SELECT MIN(SALARIO) FROM Empregados) -- o mesmo que SELECT TOP 1 WITH TIES * FROM EMPREGADOS WHERE SALARIO IS NOT NULL ORDER BY SALARIO

Capítulo 7 -- Funcionário mais novo na empresa SELECT * FROM EMPREGADOS WHERE DATA_ADMISSAO = (SELECT MAX(DATA_ADMISSAO) FROM EMPREGADOS) -- O mesmo que SELECT TOP 1 WITH TIES * FROM EMPREGADOS ORDER BY DATA_ADMISSAO DESC

Capítulo 7 Subqueries correlacionadas São aquelas que possuem referência a uma ou mais colunas da query externa -- Grava no campo SALARIO de cada funcionário o -- valor de salário inicial contido na tabela de cargos UPDATE EMPREGADOS SET SALARIO = (SELECT SALARIO_INIC FROM TABELACAR WHERE COD_CARGO = EMPREGADOS.COD_CARGO)

Capítulo 7 Subqueries correlacionadas com EXISTS Ao utilizarmos a cláusula EXISTS não é retornado dados e sim TRUE ou FALSE Antes de EXISTS não deve haver coluna, constante ou expressão Ao utilizar EXISTS, sua lista de seleção será normalmente um asterisco -- Clientes que NÃO compraram em Janeiro de 2007 SELECT * FROM CLIENTES WHERE NOT EXISTS (SELECT * FROM PEDIDOS WHERE CODCLI = CLIENTES.CODCLI AND DATA_EMISSAO BETWEEN '2007.1.1' AND '2007.1.31')

Capítulo 7 Diferenças entre subqueries e associações Associações são mais rápidas, porém não lidam com lista de valores As subqueries facilitam na visualização e organização da query

Capítulo 7 -- Calcula o total vendido por cada vendedor em Janeiro/2007 -- e a porcentagem das suas vendas em relação ao total -- vendido no mês SELECT P.CODVEN, V.NOME, SUM(P.VLR_TOTAL) AS TOT_VENDIDO, 100 * SUM(P.VLR_TOTAL) / (SELECT SUM(VLR_TOTAL) FROM PEDIDOS WHERE DATA_EMISSAO BETWEEN '2007.1.1' AND '2007.1.31') AS PORCENTAGEM FROM PEDIDOS P JOIN VENDEDORES V ON P.CODVEN = V.CODVEN WHERE P.DATA_EMISSAO BETWEEN '2007.1.1' AND '2007.1.31' GROUP BY P.CODVEN, V.NOME

Capítulo 7 Tabelas temporárias São armazenadas no banco tempdb Utilizar o símbolo # para tabela temporária associadas a conexão atual Quando é utilizado o símbolo ## todos os outros usuários poderão visualizar Tabelas criadas localmente serão excluídas ao encerrar a conexão Tabelas globais serão excluídas quando todo os usuários conectados a elas encerram suas seções Exemplo página 210

Capítulo 7 Laboratório página 256 à 263