SQL Server – Aula Prática

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.
Banco de Dados Prof. Antonio.
SQL Renata Viegas.
SQL Avançado Continuação
SQL Structured Query Language (continuação)
Banco de Dados Bruno Rafael de Oliveira Rodrigues.
Funções do SqlServer 2000 e Tipos de Junção
Elaini Simoni Angelotti
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:
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 Structured Query Language Juliano Brito da Justa Neves PESCD – Programa de Estágio Supervisionado de Capacitação Docente.
SGBD.
SQL – Consultas Básicas
SQL – Noções Gerais Por Márcia Jacyntha N. Rodrigues Lucena
Operadores Especiais da SQL
Introdução à Engenharia da Computação
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”
SQL Structured Query Language
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... =)
Query Tuning Lílian Simão Oliveira.
Comandos de SQL Excel VBA II.
Monitoria GDI Aula Prática
Monitoria GDI Aula Prática
SQL Server 2012 Tipos de Dados e Tabelas
Bancos de Dados SQL Server 2012 SQL DML - Data Manipulation Language)
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
SQL Server 2012 Integridade de Dados
Especialização em Tecnologia da Informação
SEGUNDA FASE / S2B MIC PERNAMBUCO SEGUNDA FASE / S2B MIC PERNAMBUCO
Desenvolvendo um script SQL
Linguagem SQL.
Treinamento sobre SQL.
VIEW - VISÕES Professor Esp. Diego André Sant’Ana
Banco de dados.
Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson.com.br “Está conosco o Senhor dos Exércitos”
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
NOTA DE AULA SQL.
Linguagem SQL Prof. Juliano.
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
SEGUNDA FASE / S2B MIC PERNAMBUCO Banco de Dados Turma: Manhã / FIR Recife-PE
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 SQL Módulo I Daniel Paulo
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:
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.
José Antônio da Cunha 3/6/2016 José Antônio - CEFET-RN 1 Copyright © Dale Carnegie & Associates, Inc.
Transcrição da apresentação:

SQL Server – Aula Prática Bancos de Dados I SQL Server – Aula Prática Guilherme Amorim Juliana Xavier Walter Galvão

SQL Server SGBD Relacional Versões mais recentes: 6.5, 7.0 e 2000 Transact-SQL SQL ANSI-92 + comandos adicionais Compatibilidade 6.5 e 7.0 não compatíveis em vários aspectos 2000 e 7.0 compatíveis SQL Server - Aula Prática

Segurança Login e senha. Independência de usuário proprietário Objetos de nomes iguais podem coexistir no mesmo BD, contanto que sejam proprietários diferentes O proprietário (usuário criador) gerencia completamente o objeto Mudança de senha exec sp_password ‘senha antiga’, ‘senha nova’ SQL Server - Aula Prática

Bancos de Dados BD’s de Sistema BD’s de Usuário Master, model, msdb, tempdb, distribution. BD’s de Usuário BD’s de exemplo Northwind Pubs BD’s de aplicações Bd1 SQL Server - Aula Prática

Objetos do BD Nomenclatura completa de 4 partes Servidor.banco.proprietário.nome_objeto Opcionais: servidor e banco Servidor atual e bd atual Semi-obrigatório: Proprietário Obrigatório: Nome_objeto No CIN-UFPE, sempre usar proprietário.objeto! SQL Server - Aula Prática

Query Analyzer - linha de comando Ferramenta primária para uso em BD1 Por linha de comando – via isqlw.exe Digite isqlw.exe /? para ver os parâmetros. Parâmetros case sensitive - isqlw –U é diferente de isqlw –u. Útil para enviar um script inteiro para o servidor. Batch files com chamadas a isqlw.exe SQL Server - Aula Prática

Outras Ferramentas Cliente Utilitários gráficos Enterprise Manager Bastante completo, permite gerência completa de vários bd’s. Não disponível para a disciplina de BD1 Transact-SQL Help Helpsql.hlp SQL Profiler “Escuta” do lado do servidor DTS SQL Server - Aula Prática

SQL Server no CIN-UFPE Servidor Utilitários cliente Logins Máquina CIN03 - SQL Server 2000. Utilitários cliente Caminho: P:\MSSQL7\BINN Menu Iniciar Logins bd1e1,bd1e2,...,bd1e25 Senha: “bd1” Banco de dados: Bd1 Caminho para scripts de exemplo: http://www.cin.ufpe.br/~if559 SQL Server - Aula Prática

Exercício – rodando um script Executar exemplo1.sql através do isqlw.exe P:\mssql7\binn\isqlw –SCIN03 –Ubd1e1 -Pbd1e1 –dNorthwind –iexemplo1.sql –osaida.txt Preparar batch file para executar exemplo1.sql. Executar batch file. SQL Server - Aula Prática

Criação de Tabelas Pessoa.sql, Turma.sql Observar Ajustar valor de @usuario Rodar script Observar Campos Tipos de dados Constraints Not null, Primary Keys, Unique, Default Operadores específicos Identity SQL Server - Aula Prática

Criação de Tabelas Aluno.sql Constraints Cuidados com FK’s Foreign Key Remover as FK's que referenciam a tabela a ser removida antes de remover a tabela SQL Server - Aula Prática

Manutenção de Scripts Exercício Gerar batch file com script para recriação das 3 tabelas: pessoa, turma e aluno. Usar isqlw.exe. Criar script para remover as tabelas ou FK’s na ordem correta. SQL Server - Aula Prática

Bancos de Dados I Inserindo Registros Fábio Ávila <farp@cin.ufpe.br> Ávila Sistemas Ltda. Grupo Recife de TI

Query Analyzer Conexão Editor de Texto Syntax-Highlighting Várias janelas Editor de Texto Syntax-Highlighting Executando comandos F5, CTRL+E ou botão Play Execução parcial Resultados Formato planilha/texto puro SQL Server - Aula Prática

Verificando objetos do BD Sp_help Verifica estrutura de objetos do banco Útil para testar existência de objetos e consultar sua estrutura. Mostra FK’s com dependência para esta tabela Exercício com isqlw Executar sp_help para as tabelas aluno, pessoa e turma. SQL Server - Aula Prática

Inserindo registros INSERT tabela (lista_de_campos) VALUES (lista_de_valores) A lista de campos é opcional, mas é sempre bom incluir. Para os valores, quando for texto, colocar entre aspas. Quando for data, colocar no formato 'mm/dd/yyyy hh:nn'. Para números decimais, (xy.wz). SQL Server - Aula Prática

Inserindo registros INSERT bd1en.pessoa (CPF,nome,endereco,telefone,email) VALUES (12345678901,'Zé Mané', 'Rua do Pombal, 20' ,0812224422 ,'zemane@nothing.com') SELECT @@IDENTITY SQL Server - Aula Prática

Inserindo Registros Pode-se inserir registros resultantes de um SELECT INSERT tabela (lista_de_campos) SELECT ... SQL Server - Aula Prática

Exercício Responda, para cada tabela criada: qual o número mínimo de campos para os quais devem ser informados valores em uma inserção de dados? Inserir 1 registro em cada uma das tabelas: turma, pessoa e aluno, informando todos os campos exceto os IDENTITY. Usar Query Analyzer. Inserir 1 registro em cada uma das tabelas informando apenas os campos obrigatórios. Usar Query Analyzer. IDENTITY e PRIMARY KEY são sinônimos? SQL Server - Aula Prática

Bancos de Dados I Consultas a uma Tabela Fábio Ávila <farp@cin.ufpe.br> Ávila Sistemas Ltda. Grupo Recife de TI

Consultando dados Mais prático usar isql/w ou Query Analyzer. Comando SELECT do SQL Transact-SQL traz melhorias ao SQL ANSI-92 também no SELECT Pode-se (e deve-se) quebrar em várias linhas Execução do texto selecionado Comentários In-line (--) Delimitado (/* */) SQL Server - Aula Prática

Cláusulas do SELECT SELECT <lista_de_campos> FROM tabela1 [,tabela2,tabela3...] <tipo> JOIN <tabelax> ON <criterio_associacao> Informa critérios de junção de tabelas WHERE <condição_booleana> Especifica critérios para filtragem de dados GROUP BY <lista_de_campos> Agrupamento de dados. ORDER BY <lista_de_campos [ASC/DESC]> Altera a ordem dos registros SQL Server - Aula Prática

Especificando Campos SELECT 2 SELECT "CIN" SELECT 2+4 SELECT "CIN" + "-UFPE" SELECT user_name() SELECT convert(varchar(10),getdate(),103) SQL Server - Aula Prática

Especificando Campos Apelidos de campo Expressões como campos SELECT "CIN" + "-UFPE" as Centro ,Universidade = "UFPE" Expressões como campos Podem estar presentes na lista de campos, no ORDER BY ou no GROUP BY SQL Server - Aula Prática

Cláusula WHERE Operadores Uso de parênteses OR, AND, NOT >, <, >=, <=, =, <> | (bitwise OR), & (bitwise AND), ^ (bitwise XOR) LIKE IN EXISTS BETWEEN Uso de parênteses SQL Server - Aula Prática

Cláusula WHERE Cuidados com NULL e NOT NULL Comparando com constantes Operador IS NULL NULL = NULL é falso! NULL não é igual a nada. Configurações SET para comportamento com NULL Comparando com constantes Inteiro – pode colocar entre parênteses String – entre aspas simples ou duplas Data – entre aspas, no formato "mm/dd/yyyy hh:nn:ss" Ano pode conter 2 dígitos SQL Server - Aula Prática

WHERE Simples Use Northwind SELECT employeeid, name = firstname + ' ' + lastname, title FROM dbo.employees WHERE employeeid = 5 SQL Server - Aula Prática

Usando Like Use Northwind SELECT companyname FROM dbo.customers WHERE companyname LIKE '%Restaurant%' OR companyname LIKE '_en' OR companyname LIKE '[CK]%' OR companyname LIKE '[S-V]%' OR companyname LIKE 'M[^c]%' SQL Server - Aula Prática

Faixa de valores Use Northwind SELECT productname, unitprice FROM dbo.products WHERE unitprice BETWEEN 10 AND 20 SQL Server - Aula Prática

Lista de valores Pode ser outro SELECT retornando 1 campo Use Northwind SELECT companyname, country FROM dbo.suppliers WHERE country IN ('Japan','Italy') Pode ser outro SELECT retornando 1 campo SQL Server - Aula Prática

Valores desconhecidos Usar IS NULL depois do campo NOT IS NULL = IS NOT NULL Use Northwind SELECT companyname, fax FROM dbo.suppliers WHERE fax IS NULL SQL Server - Aula Prática

Ordenando Dados Use Northwind SELECT productid, productname, categoryid, unitprice FROM dbo.products ORDER BY categoryid ASC, unitprice DESC SQL Server - Aula Prática

Eliminando valores duplicados Use Northwind SELECT DISTINCT country FROM dbo.suppliers ORDER BY country SQL Server - Aula Prática

Exemplo de SELECT de 1 Tabela Use Northwind SELECT convert(varchar(10),productid) + " – " + productname as 'Nome Produto', UnitsInStock as 'Em estoque', ReorderLevel as 'Nível Crítico', Diferenca = (ReorderLevel - UnitsInStock) FROM dbo.products WHERE UnitsInStock < Reorderlevel ORDER BY (ReorderLevel - UnitsInStock) DESC SQL Server - Aula Prática

Exercícios Dica: use sp_help para ver a estrutura de cada tabela Retorne os nomes dos produtos que começam com as letras a, d, de m a z, ordenados por nome. Retorne os nomes dos fornecedores que estão sem homepage informada na tabela (nulos). Mostre a lista de países dos clientes da empresa (tabela Customers), sem repetições. Mostre os nomes dos clientes que não fizeram pedidos. Dica: use IN. Os pedidos estão na tabela Orders. Soluções estarão disponíveis em http://www.cin.ufpe.br/~farp/bd1 SQL Server - Aula Prática

Consultas de duas ou mais tabelas Bancos de Dados I Consultas de duas ou mais tabelas Fábio Ávila <fabio@avilasistemas.com.br> Ávila Sistemas Ltda. Grupo Recife de TI

Consultas em 2 ou mais tabelas No SQL Server: cláusulas JOIN. Podem ser INNER ou OUTER. Importante uso de apelidos de tabelas. Normalmente os JOINs unem FK's com PK's. SQL Server - Aula Prática

Sintaxe Parcial do JOIN SELECT <lista_de_campos> FROM tabela1 [,tabela2,tabela3...] <tipo> JOIN <tabelax> ON <criterio_associacao> Pode existir mais de um JOIN no comando SQL Server - Aula Prática

Exemplo com duas tabelas Use Northwind SELECT cs.companyname, cs.customerid, os.orderdate FROM dbo.customers cs JOIN dbo.orders os ON os.customerid = cs.customerid Where os.orderdate between '01/01/1997' and '03/1/1997' SQL Server - Aula Prática

Exemplo com mais de duas tabelas Use Northwind SELECT cliente = cs.companyname, empregado = em.firstname + ' ' + em.lastname, 'Data Pedido' = os.orderdate, Via = sh.companyname FROM dbo.customers cs JOIN dbo.orders os ON os.customerid = cs.customerid JOIN dbo.employees em ON em.employeeid = os.employeeid JOIN dbo.shippers sh ON sh.shipperId = os.shipVia Where os.orderdate between '01/01/1997' and '03/1/1997' SQL Server - Aula Prática

OUTER JOIN Pode ser RIGHT, LEFT ou FULL FULL mostra das duas tabelas RIGHT e LEFT são equivalentes, só muda a direção. FULL mostra das duas tabelas Aplicações clássicas Mostrar lista dos clientes que não têm pedidos no Sistema Mostrar lista dos empregados com os respectivos pedidos realizados (mostrar TODOS os empregados, mesmo os que não efetuaram pedidos). SQL Server - Aula Prática

Exemplo de OUTER JOIN Use Northwind SELECT cs.companyname, cs.customerid, os.orderdate FROM dbo.customers cs LEFT JOIN dbo.orders os ON os.customerid = cs.customerid Where os.orderdate between '01/01/1997' and '03/1/1997' or orderdate is null Order by os.orderdate Mostra todos os clientes com respectivas datas de pedido. Dois deles (FISSA e Paris Spécialités) não fizeram pedidos. SQL Server - Aula Prática

CROSS JOIN Basta não especificar o critério de associação Produto cartesiano de registros SELECT te.TerritoryDescription, re.RegionDescription FROM territories te CROSS JOIN region re FROM territories te,region re SQL Server - Aula Prática

UNION Usado para juntar resultados de diferentes SELECTs SELECT name = (em.firstname + ' ' + em.lastname), em.city,em.postalcode FROM employees em UNION SELECT cs.companyname,cs.city,cs.postalcode FROM customers cs SQL Server - Aula Prática

Sub-Consultas Consiste em introduzir em determinados pontos da consulta uma outra consulta entre parênteses Técnica poderosa e sofisticada Sub-consulta como um campo Só pode retornar um campo e um valor Sub-consulta após o FROM ou JOIN Importante uso de apelidos Sub-consulta no WHERE SQL Server - Aula Prática

Exercícios Listar os nomes de empregados que fizeram pedidos no mês de Janeiro/1997, sem repetições de nome. Listar os nomes das empresas clientes atendidas por Nancy Davolio, sem repetições. Mostrar os nomes e telefones de clientes e empregados. Soluções estarão disponíveis em http://www.cin.ufpe.br/~farp/bd1 SQL Server - Aula Prática

Bancos de Dados I Agrupamento de Dados Fábio Ávila <farp@cin.ufpe.br> Ávila Sistemas Ltda. Grupo Recife de TI

Agrupamento de Dados Pode conter a cláusula GROUP BY e HAVING Funções de agrupamento AVG, COUNT, MAX, MIN, SUM, STDEV, STDEVP, VAR, VARP SQL Server - Aula Prática SQL Server - Aula Prática

Agrupamento de Dados Sem GROUP BY SELECT COUNT(*) FROM orders SELECT COUNT(orderdate) SELECT MAX(orderdate) SELECT SUM(freight) SQL Server - Aula Prática

Agrupamento de Dados Regras do GROUP BY Um item da lista de campos do SELECT pode ser um campo de tabela, uma expressão ou uma aplicação de função de agrupamento. Todo campo ou expressão contido na lista de campos do SELECT que não for aplicação de uma função de agrupamento deve estar na lista de campos do GROUP BY A inversa não é verdadeira – os campos do GROUP BY não necessariamente precisam estar contidos na lista de campos Para filtrar registros baseado no resultado de uma função de agrupamento, usar HAVING. SQL Server - Aula Prática

Exemplo de GROUP BY Total de quantidade pedida de cada produto SELECT pr.productname, Count(od.quantity) as QuantidadeTotal FROM products pr JOIN [order details] od ON od.productid = pr.productid GROUP BY productname ORDER BY count(od.quantity) desc SQL Server - Aula Prática

Exemplo de GROUP BY Contagem de pedidos feitos por empregado SELECT empregado = (em.firstname + ' ' + em.lastname), Count(os.orderid) as Pedidos FROM orders os JOIN employees em ON em.employeeid = os.employeeid GROUP BY em.firstname + ' ' + em.lastname ORDER BY Pedidos Desc SQL Server - Aula Prática

HAVING Filtro sobre resultado de função de agrupamento SELECT empregado = (em.firstname + ' ' + em.lastname), Count(os.orderid) as Pedidos FROM orders os JOIN employees em ON em.employeeid = os.employeeid GROUP BY em.firstname + ' ' + em.lastname HAVING Count(os.orderid) > 50 ORDER BY Pedidos Desc SQL Server - Aula Prática

TOP Útil para listar os primeiros n valores de uma consulta. Pode listar os primeiros n% registros. Faz sentido em conjunto com ORDER BY. Pode listar também os empates na última colocação WITH TIES Específico do SQL Server. SELECT TOP 10 (...) SELECT TOP 10 PERCENT (...) SELECT TOP 10 WITH TIES SQL Server - Aula Prática

Exercícios Mostre a menor e maior datas de pedidos realizados. Mostrar quantos produtos existem em cada categoria. Mostrar o nome da categoria (tabelas Products e Categories). Listar a quantidade de pedidos feitos por cada cliente entre Janeiro/97 e Junho/97. Mostrar o nome da empresa cliente. Listar a venda total realizada por empregado no mês de Abril/1997. Listar o nome e a soma dos valores de pedidos feitos para cada produto no mês de Março/1998. Mostrar apenas os 10 maiores. Listar os 5 fornecedores que mais foram acionados no ano de 1997, por total de vendas. Mostrar o nome do fornecedor e o total da venda. Listar o total de vendas realizadas mês a mês. Mostrar o mês/ano e o total de vendas realizadas naquele mês/ano. Soluções estarão disponíveis em http://www.cin.ufpe.br/~farp/bd1 SQL Server - Aula Prática