Daniel Paulo dptsalvador@hotmail.com SQL Server 2016 Módulo II Daniel Paulo dptsalvador@hotmail.com.

Slides:



Advertisements
Apresentações semelhantes
Tópicos em Banco de Dados
Advertisements

O Comando DROP INDEX Para eliminar um índice definido sobre uma tabela, utilize: Drop Index on ; Ex: No Access: Drop Index X on.
Banco de Dados Prof. Antonio.
SQL Avançado Continuação
Banco de Dados SQL Stored Procedures
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone:
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados I 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone:
Visões Marilde Santos.
SQL Structured Query Language Juliano Brito da Justa Neves PESCD – Programa de Estágio Supervisionado de Capacitação Docente.
Maurício Edgar Stivanello
SGBD.
Operadores Especiais da SQL
Introdução à Engenharia da Computação
Oficina sobre banco de dados
SCC Bancos de Dados e Suas Aplicações
SQL Structured Query Language
Banco de dados Profª Kelly Medeiros.
BANCO DE DADOS UNIVERSIDADE ESTADUAL DE SANTA CRUZ
Design Patterns / Acesso ao banco de dados (java.sql)
Primeira aula de PL/SQL Parte II
Oracle 9i: SQL e PL/SQL Bruno Celso Cunha de Freitas
Desenvolvendo um script SQL
VIEW - VISÕES Professor Esp. Diego André Sant’Ana
©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
Fundamentos de Banco de Dados Fundamentos de Banco de Dados Prof. Gale 2º. Semestre 2008.
IEC Banco de Dados I Aula 04 – SQL (II) Turmas: Sistemas de Informação Professora: André Luiz da Costa Carvalho
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.
Daniel Paulo SQL Módulo I Daniel Paulo
Daniel Paulo SQL Módulo I Daniel Paulo
Daniel Paulo SQL Server 2014 Módulo II Daniel Paulo
VBA – Visual Basic para Aplicativos
Linguagem de definição de dados - SQL
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)
2/6/2016 José Antônio da Cunha - CEFET - RN1 Programação de Banco de Dados Funções.
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.
Fundamentos de SQL Microsoft SQL Server 2005 Emiliano Eloi 1.
Supervisão e Redes Industriais Tutorial E3 Elipse Capítulo 14 ARMAZENAMENTO DE DADOS Felipe Domeni, Gabriel Martin, Leandro Gomes Rafael Benoliel, Tiago.
Banco de Dados José Antônio da Cunha CEFET – RN.
Prof. MS Virgílio fries muller
SGBD – Sistemas Gerenciadores de Bancos de dados
Recursos de Programação
Origem e conceitos do SQL.
Banco de Dados CURSOR.
Daniel Paulo SQL Server 2016 Módulo II Daniel Paulo
Daniel Paulo SQL Server 2016 Módulo II Daniel Paulo
BANCO DE DADOS Araújo Lima Out / 2017 Araújo.
Views no MySql Visões de uma ou mais tabelas
Daniel Paulo SQL Server 2016 Módulo II Daniel Paulo
BANCO DE DADOS Araújo Lima Outubro / 2017 Araújo.
Daniel Paulo SQL Server 2016 Módulo II Daniel Paulo
Daniel Paulo SQL Server 2016 Módulo II Daniel Paulo
Daniel Paulo SQL Server 2016 Módulo II Daniel Paulo
BANCO DE DADOS Araújo Lima Ago / 2017 Araújo.
Daniel Paulo SQL Server 2016 Módulo II Daniel Paulo
Curso básico de PHP. 1 Vantagens: Gratuito Multiplataforma Estável Rapidez Comunicação.
MS-SQL Server Structure Query Language
PL/SQL Triggers e Procedures
Prática O-R Fernando Fonseca.
Aula Prática Objeto-Relacional Monitoria GDI
Prática O-R Fernando Fonseca.
Daniel Paulo SQL Server 2016 Módulo II Daniel Paulo
SQL – COMANDOS DML Profª Rosana Traversa.
Módulo III Capítulo 3: Linguagem SQL
Transcrição da apresentação:

Daniel Paulo dptsalvador@hotmail.com SQL Server 2016 Módulo II Daniel Paulo dptsalvador@hotmail.com

Capítulo 6 – VIEWS Uma VIEW é uma tabela virtual proveniente de tabelas referenciadas numa consulta. Tipos de Views Standarts: Dados de uma tabela, virtual, dados provenientes de uma ou mais views ou tabela base Indexadas: Obtido por meio da criação de um índice clusterizado sobre a view Particionadas: Permite que dados de grandes tabelas sejam particionadas em visualizações menores.

Vantagens Reutilização: São utilizadas por vários usuários de forma simultânea Redução de Custo de execução: Os resultados já computados que ficam armazenados em uma VIEW indexada são empregados pelo otimizador de query Segurança: Ocultam colunas de uma tabela Compatibilidade: VIEWS são capazes de criar uma interface com versões anteriores, simulando uma tabela que teve seu esquema modificado Cópia de dados: Pode ser útil no particionamento dos dados de cópia para o SQL ou a partir dele. Simplificação do Código: Criação de um código de programação mais limpo na medida em que podem conter um SELECT mais complexo.

Restrições Gerar duas colunas com mesmo nome Utilizar ORDER BY, a não ser que seja incluída a cláusula TOP Utilizar a palavra INTO Fazer referência a uma tabela temporária Utilizar variáveis SELECT * se a SCHEMABINDING não for especificada Máximo 1024 colunas As VIEWS podem ter aninhamento em até 32 níveis A instrução CREATE VIEW deve ser a única instrução em um batch

A tabela SYSCOMMENTS Esta tabela é composta por entradas para cada um dos seguintes itens de um banco de dados: Constraint Default, constraint CHECK, stored procedures, views, regras, padrões e trigger SELECT TEXT FROM SYSCOMMENTS

VIEWS de Catálogo Representam a interface mais geral para os metadados de catálogo Exemplo: SELECT * FROM sys.objects SELECT * FROM sys.TABLES

CREATE VIEW With ENCRYTION - Protege o código fonte, impedindo que ele seja aberto a partir do Object Explorer WITH SCHEMABINDING - Cria uma view ligada às estruturas das tabelas às quais faz referência. Não permite alterar a tabela sem que a VIEW seja alterada WITH CHECK OPTION - Impede a inclusão e a alteração de dados através da view que sejam incompatíveis com a cláusula WHERE da instrução SELECT

Exemplo -- Exemplo USE PEDIDOS -- 1. Criando a VIEW CREATE VIEW VIE_EMP1 AS SELECT CODFUN, NOME, DATA_ADMISSAO, COD_DEPTO, COD_CARGO, SALARIO FROM EMPREGADOS -- Testando a VIEW SELECT * FROM VIE_EMP1

Utilizando ENCRYPTION CREATE VIEW VIE_EMP2_A WITH ENCRYPTION AS SELECT TOP 100 CODFUN, NOME, DATA_ADMISSAO, COD_DEPTO, COD_CARGO, SALARIO FROM EMPREGADOS ORDER BY NOME OBS: Procure esta view no Object Explorer e dê um click direito sobre ela

Utilizando WITH SCHEMABILINDING CREATE VIEW VIE_EMP3 WITH ENCRYPTION , SCHEMABINDING AS SELECT CODFUN, NOME, DATA_ADMISSAO, COD_DEPTO, COD_CARGO, SALARIO, NUM_DEPEND FROM DBO.EMPREGADOS

Testando -- Testando a VIEW SELECT * FROM VIE_EMP3 -- Não é possível apagar a coluna da tabela ALTER TABLE EMPREGADOS DROP COLUMN NUM_DEPEND -- Criando índices para a VIEW CREATE UNIQUE CLUSTERED INDEX IX_VIE_EMP3_CODFUN ON VIE_EMP3(CODFUN) -- CREATE INDEX IX_VIE_EMP3_NOME ON VIE_EMP3(NOME)

VIEW com condição de filtro CREATE VIEW VIE_EMP4 WITH ENCRYPTION AS SELECT CODFUN, NOME, DATA_ADMISSAO, COD_DEPTO, COD_CARGO, SALARIO FROM EMPREGADOS WHERE COD_DEPTO = 2 -- Testando SELECT * FROM VIE_EMP4

Exemplo -- Insere um funcionário INSERT INTO VIE_EMP4 ( NOME, DATA_ADMISSAO, COD_DEPTO, COD_CARGO, SALARIO) VALUES ('TESTE INCLUSÃO', GETDATE(), 1, 1, 1000) Obs: Ao inserir um funcionário com departamento igual a1 a VIEW VIE_EMP4 não mostrará este registro

Exemplo O ideal é que a VIEW não permita a inclusão de registros que não satisfaçam a condição ALTER VIEW VIE_EMP4 WITH ENCRYPTION AS SELECT CODFUN, NOME, DATA_ADMISSAO, COD_DEPTO, COD_CARGO, SALARIO FROM EMPREGADOS WHERE COD_DEPTO = 2 WITH CHECK OPTION

ALTER VIEW ALTER VIEW – altera um view existente DROP VIEW – Apaga uma view existente. Obs: Quando apagamos uma VIEW implica na exclusão de todas as permissões que tinham sido dadas sobre ela

Visualizando informações sobre VIEWS Object Explorer do SQL Management Studio sys.view - Exibe a lista de VIEWS do banco de dados sp_helptext - Mostra as definições de VIEWS não Criptografadas sys.sp_sql_dependencies - Exibe todos os objetos que possuem alguma dependência de outro objeto

Lembre-se Ao alterarmos qualquer objeto no SQL Server é necessário saber quais são os objetos que o referenciam VIEWS não criptografas fornecem mais informações sobre sua definição A forma como as consultas em VIEWS são feitas é igual à das tabelas ordinárias Os HINTS são ignorados nas consultas

VIEWS atualizáveis As colunas a serem alteradas devem pertencer a uma mesma tabela base As colunas alteradas em uma VIEW devem referenciar diretamente os dados originais nas colunas da tabela Para poderem ser modificadas, as colunas não podem ser computadas ou derivadas pelo uso de funções, como: AVG, COUNT, SUM, etc. Para poderem ser modificadas, as colunas que tiverem sido computadas por uma expressão ou pelo operadores UNION, UNION ALL, CROSSJOIN, EXCEPT e INTERSECT devem ser especificadas com um trigger INSTEAD OF

VIEWS atualizáveis As colunas a serem alteradas não serão afetadas pelo uso das cláusulas GROUP BY, HAVING ou DISTINCT É necessário informar todos os valores, caso contrário a coluna deverá aceitar nulo ou possuir valor padrão Ao incluirmos WITH CHECK OPTION na definição da VIEW, torna-se obrigatória a adesão aos critérios do SELECT por parte de todas as instruções de modificação de dados executados na VIEW TOP não pode ser utilizado com WITH CHECK OPTION no SELECT a ser gravado na VIEW  

VIEWS, PROCEDURES e funções para retornar dados tabulares Podemos utilizar o termo dado tabular para definir qualquer recurso que retorne linhas e colunas. Opções para retorno de dados: VIEWS PROCEDURES FUNÇÕES  

Devolvendo dado tabular com VIEW CREATE VIEW VIE_MAIOR_PEDIDO AS SELECT TOP 12 MONTH( DATA_EMISSAO ) AS MES, YEAR( DATA_EMISSAO ) AS ANO, MAX( VLR_TOTAL ) AS MAIOR_PEDIDO FROM PEDIDOS Exemplo: SELECT * FROM VIE_MAIOR_PEDIDO *Não aceita parâmetros  

Devolvendo dados tabulares com STORED PROCEDURE CREATE PROCEDURE STP_MAIOR_PEDIDO @ANO INT AS BEGIN SELECT MONTH( DATA_EMISSAO ) AS MES, YEAR( DATA_EMISSAO ) AS ANO, MAX( VLR_TOTAL ) AS MAIOR_PEDIDO FROM PEDIDOS WHERE YEAR(DATA_EMISSAO) = @ANO GROUP BY MONTH(DATA_EMISSAO), YEAR(DATA_EMISSAO) ORDER BY MES END Exemplo: EXEC STP_MAIOR_PEDIDO 2007  

Devolvendo dado tabular com FUNÇÃO TABULAR CREATE FUNCTION FN_MAIOR_PEDIDO( @DT1 DATETIME, @DT2 DATETIME ) RETURNS TABLE AS RETURN ( SELECT MONTH( DATA_EMISSAO ) AS MES, YEAR( DATA_EMISSAO ) AS ANO, MAX( VLR_TOTAL ) AS MAIOR_VALOR FROM PEDIDOS -- Aceita parâmetros. Trabalha com variáveis WHERE DATA_EMISSAO BETWEEN @DT1 AND @DT2 GROUP BY MONTH( DATA_EMISSAO ), YEAR( DATA_EMISSAO ) ) -- SELECT * FROM DBO.FN_MAIOR_PEDIDO( '2006.1.1','2006.12.31')  

Capítulo 6 – VIEWS Laboratório página 216 à 219