A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

SEGUNDA FASE / S2B MIC PERNAMBUCO Banco de Dados Turma: Manhã / FIR Recife-PE www.micpernambuco.com.br.

Apresentações semelhantes


Apresentação em tema: "SEGUNDA FASE / S2B MIC PERNAMBUCO Banco de Dados Turma: Manhã / FIR Recife-PE www.micpernambuco.com.br."— Transcrição da apresentação:

1 SEGUNDA FASE / S2B MIC PERNAMBUCO Banco de Dados Turma: Manhã / FIR Recife-PE www.micpernambuco.com.br

2  Condições de pesquisa NOT atrasam a recuperação de dados  Condições de pesquisa LIKE atrasam a recuperação de dados  Correspondências exatas ou intervalos aceleram a recuperação de dados  A cláusula ORDER BY atrasa a recuperação de dados

3  Usando aliases para nomes de tabelas  Combinando dados de várias tabelas  Combinando vários conjuntos de resultados

4  Exemplo 1 (sem nome de alias)  Exemplo 2 (com nome de alias) USE joindb SELECT buyer_name, s.buyer_id, qty FROM buyers AS b INNER JOIN sales AS s ON b.buyer_id = s.buyer_id GO USE joindb SELECT buyer_name, s.buyer_id, qty FROM buyers AS b INNER JOIN sales AS s ON b.buyer_id = s.buyer_id GO USE joindb SELECT buyer_name, sales.buyer_id, qty FROM buyers INNER JOIN sales ON buyers.buyer_id = sales.buyer_id GO USE joindb SELECT buyer_name, sales.buyer_id, qty FROM buyers INNER JOIN sales ON buyers.buyer_id = sales.buyer_id GO

5  Introdução às associações  Usando associações internas  Usando associações externas  Usando associações cruzadas  Associando mais de duas tabelas  Associando uma tabela a si mesma

6  Selecionar colunas específicas a partir de várias tabelas  A palavra-chave JOIN especifica quais tabelas serão associadas e como associá-las  A palavra-chave ON especifica as colunas que as tabelas têm em comum  Consultar duas ou mais tabelas para produzir um conjunto de resultados  Usar chaves primárias e externas como condições de associação  Usar colunas comuns às tabelas especificadas para associar tabelas

7 USE joindb SELECT buyer_name, sales.buyer_id, qty FROM buyers INNER JOIN sales ON buyers.buyer_id = sales.buyer_id GO USE joindb SELECT buyer_name, sales.buyer_id, qty FROM buyers INNER JOIN sales ON buyers.buyer_id = sales.buyer_id GO buyer_namebuyer_name Adam Barr Sean Chai Eva Corets Erin O’Melia buyer_idbuyer_id 1 1 2 2 3 3 4 4 sales buyer_idbuyer_idprod_idprod_idqtyqty 1 1 1 1 4 4 3 3 2 2 3 3 1 1 5 5 15 5 5 37 11 4 4 2 2 1003 buyers Resultado buyer_namebuyer_name Adam Barr Erin O’Melia Eva Corets buyer_idbuyer_idqtyqty 1 1 1 1 4 4 3 3 15 5 5 37 11 Erin O’Melia 4 4 1003 Exemplo 1

8 USE joindb SELECT buyer_name, sales.buyer_id, qty FROM buyers LEFT OUTER JOIN sales ON buyers.buyer_id = sales.buyer_id GO USE joindb SELECT buyer_name, sales.buyer_id, qty FROM buyers LEFT OUTER JOIN sales ON buyers.buyer_id = sales.buyer_id GO buyer_idbuyer_idprod_idprod_idqtyqty 1 1 1 1 4 4 3 3 2 2 3 3 1 1 5 5 15 5 5 37 11 4 4 2 2 1003 buyer_namebuyer_name Adam Barr Sean Chai Eva Corets Erin O’Melia buyer_idbuyer_id 1 1 2 2 3 3 4 4 salesbuyers Resultado buyer_namebuyer_name Adam Barr Erin O’Melia Eva Corets buyer_idbuyer_idqtyqty 1 1 1 1 4 4 3 3 15 5 5 37 11 Erin O’Melia 4 4 1003 Sean Chai NULL Exemplo 1

9 Resultado USE joindb SELECT buyer_name, qty FROM buyers CROSS JOIN sales GO USE joindb SELECT buyer_name, qty FROM buyers CROSS JOIN sales GO buyer_namebuyer_name Adam Barr qtyqty 15 5 5 37 11 Adam Barr 1003 Sean Chai 15 Sean Chai 5 5 37 Sean Chai 11 Sean Chai 1003 Eva Corets 15... sales buyer_idbuyer_idprod_idprod_idqtyqty 1 1 1 1 4 4 3 3 2 2 3 3 1 1 5 5 15 5 5 37 11 4 4 2 2 1003 buyers buyer_idbuyer_id 1 1 2 2 3 3 4 4 buyer_namebuyer_name Adam Barr Sean Chai Eva Corets Erin O’Melia Exemplo 1

10 USE joindb SELECT buyer_name, prod_name, qty FROM buyers INNER JOIN sales ON buyers.buyer_id = sales.buyer_id INNER JOIN produce ON sales.prod_id = produce.prod_id GO USE joindb SELECT buyer_name, prod_name, qty FROM buyers INNER JOIN sales ON buyers.buyer_id = sales.buyer_id INNER JOIN produce ON sales.prod_id = produce.prod_id GO producebuyerssales Resultado prod_idprod_idprod_nameprod_name 1 1 2 2 3 3 4 4 Apples Pears Oranges Bananas 5 5 Peaches buyer_idbuyer_id 1 1 2 2 3 3 4 4 buyer_namebuyer_name Adam Barr Sean Chai Eva Corets Erin O’Melia buyer_idbuyer_id 1 1 1 1 3 3 4 4prod_idprod_id 2 2 3 3 1 1 5 5 2 2 2 2qtyqty 15 5 5 37 11 1003 Exemplo 1 buyer_namebuyer_name Erin O’Melia Adam Barr Erin O’Melia Adam Barr Eva Corets prod_nameprod_name Apples Pears Oranges Peaches qtyqty 37 15 1003 5 5 11

11 USE joindb SELECT a.buyer_id AS buyer1, a.prod_id,b.buyer_id AS buyer2 FROM sales AS a INNER JOIN sales AS b ON a.prod_id = b.prod_id WHERE a.buyer_id > b.buyer_id GO USE joindb SELECT a.buyer_id AS buyer1, a.prod_id,b.buyer_id AS buyer2 FROM sales AS a INNER JOIN sales AS b ON a.prod_id = b.prod_id WHERE a.buyer_id > b.buyer_id GO sales b buyer_idbuyer_idprod_idprod_idqtyqty 1 1 1 1 4 4 3 3 2 2 3 3 1 1 5 5 15 5 5 37 11 4 4 2 2 1003 sales a buyer_idbuyer_idprod_idprod_idqtyqty 1 1 1 1 4 4 3 3 2 2 3 3 1 1 5 5 15 5 5 37 11 4 4 2 2 1003 Resultado buyer1buyer1 4 4 prod_idprod_idbuyer2buyer2 2 2 1 1 Exemplo 3

12  Focalizar os dados para os usuários  Focalizar somente em dados importantes ou apropriados  Limitar o acesso a dados confidenciais  Mascarar a complexidade do banco de dados  Ocultar estruturas complexas de banco de dados  Simplificar consultas complexas, incluindo consultas distribuídas para dados heterogêneos  Simplificar o gerenciamento de permissões de usuários  Melhorar o desempenho  Organizar dados para serem exportados para outros aplicativos

13 EmployeeViewEmployeeView Lastname Firstname Davolio Fuller Leverling Davolio Fuller Leverling Nancy Andrew Janet Nancy Andrew Janet EmployeesEmployees EmployeeID LastName Firstname Title 123123 123123 Davolio Fuller Leverling Davolio Fuller Leverling Nancy Andrew Janet Nancy Andrew Janet ~~~ View de usuário USE Northwind GO CREATE VIEW dbo.EmployeeView AS SELECT LastName, Firstname FROM Employees USE Northwind GO CREATE VIEW dbo.EmployeeView AS SELECT LastName, Firstname FROM Employees

14 OrderIDOrderID 10663 10827 10427 10451 10515 10663 10827 10427 10451 10515 CustomerIDCustomerID BONAP PICCO QUICK BONAP PICCO QUICK ~~~ RequiredDateRequiredDate 1997-09-24 1998-01-26 1997-02-24 1997-03-05 1997-05-07 1997-09-24 1998-01-26 1997-02-24 1997-03-05 1997-05-07 ShippedDateShippedDate 1997-10-03 1998-02-06 1997-03-03 1997-03-12 1997-05-23 1997-10-03 1998-02-06 1997-03-03 1997-03-12 1997-05-23 OrdersCustomers ShipStatusView USE Northwind GO CREATE VIEW dbo.ShipStatusView AS SELECT OrderID, ShippedDate, ContactName FROM Customers c INNER JOIN Orders o ON c.CustomerID = O.CustomerID WHERE RequiredDate < ShippedDate USE Northwind GO CREATE VIEW dbo.ShipStatusView AS SELECT OrderID, ShippedDate, ContactName FROM Customers c INNER JOIN Orders o ON c.CustomerID = O.CustomerID WHERE RequiredDate < ShippedDate CustomerIDCustomerID BONAP PICCO QUICK BONAP PICCO QUICK CompanyNameCompanyName Bon app' Piccolo und mehr QUICK-Stop Bon app' Piccolo und mehr QUICK-Stop ContactNameContactName Laurence Lebihan Georg Pipps Horst Kloss Laurence Lebihan Georg Pipps Horst Kloss OrderIDOrderID 10264 10271 10280 10264 10271 10280 1996-08-21 1996-08-29 1996-09-11 1996-08-21 1996-08-29 1996-09-11 ShippedDateShippedDate 1996-08-23 1996-08-30 1996-09-12 1996-08-23 1996-08-30 1996-09-12 ContactNameContactName Maria Larsson Art Braunschweiger Christina Berglund Maria Larsson Art Braunschweiger Christina Berglund

15  Alterando views  Descartando views USE Northwind GO ALTER VIEW dbo.EmployeeView AS SELECT LastName, FirstName, Extension FROM Employees USE Northwind GO ALTER VIEW dbo.EmployeeView AS SELECT LastName, FirstName, Extension FROM Employees DROP VIEW dbo.ShipStatusView

16  Compartilham a lógica do aplicativo  Protegem os detalhes das tabelas do banco de dados  Fornecem mecanismos de segurança  Melhoram o desempenho  Reduzem o tráfego de rede

17 USE Locadora GO CREATE PROC dbo.FilmesNaoDevolvidos AS SELECT * FROM dbo.Pedidos WHERE DataDeEntregaPrevista < GETDATE() AND DataDeEntregaEfetiva IS Null GO EXEC FilmesNaoDevolvidos

18 USE Northwind GO ALTER PROC dbo.OverdueOrders AS SELECT CONVERT(char(8), RequiredDate, 1) RequiredDate, CONVERT(char(8), OrderDate, 1) OrderDate, OrderID, CustomerID, EmployeeID FROM Orders WHERE RequiredDate < GETDATE() AND ShippedDate IS Null ORDER BY RequiredDate GO USE Northwind GO ALTER PROC dbo.OverdueOrders AS SELECT CONVERT(char(8), RequiredDate, 1) RequiredDate, CONVERT(char(8), OrderDate, 1) OrderDate, OrderID, CustomerID, EmployeeID FROM Orders WHERE RequiredDate < GETDATE() AND ShippedDate IS Null ORDER BY RequiredDate GO

19 CREATE PROCEDURE dbo.[Locacao de Filmes] @DataInicio DateTime, @DataEntrega DateTime AS IF @DataInicio IS NULL OR @DataEntrega IS NULL BEGIN RAISERROR(‘Valores NULL não são permitidos', 14, 1) RETURN END SELECT PED.DataEntregaPrevista, PRE.Subtotal, FROM PEDIDOS PED INNER JOIN PRECO PRE ON PED.IDPedido = PRE.IDPedido WHERE PED.DataEntregaPrevista BETWEEN @DataInicio AND @DataEntrega GO CREATE PROCEDURE dbo.[Locacao de Filmes] @DataInicio DateTime, @DataEntrega DateTime AS IF @DataInicio IS NULL OR @DataEntrega IS NULL BEGIN RAISERROR(‘Valores NULL não são permitidos', 14, 1) RETURN END SELECT PED.DataEntregaPrevista, PRE.Subtotal, FROM PEDIDOS PED INNER JOIN PRECO PRE ON PED.IDPedido = PRE.IDPedido WHERE PED.DataEntregaPrevista BETWEEN @DataInicio AND @DataEntrega GO

20  Passando valores por nome de parâmetro  Passando valores por posição EXEC AdicionarCliente @ClienteID = 154, @NomeCliente = 'Maria Anders', @NomeEmpresa = 'Alfreds Futterkiste', @Cargo = 'Sales Representative', @Endereco = 'Obere Str. 57', @Cidade = 'Berlin', @CodigoPostal = '12209', @Pais = 'Germany', @Telefone = '030-0074321' EXEC AdicionarCliente @ClienteID = 154, @NomeCliente = 'Maria Anders', @NomeEmpresa = 'Alfreds Futterkiste', @Cargo = 'Sales Representative', @Endereco = 'Obere Str. 57', @Cidade = 'Berlin', @CodigoPostal = '12209', @Pais = 'Germany', @Telefone = '030-0074321' EXEC AdicionarCliente 154, 'Maria Anders', 'Alfreds Futterkiste', 'Sales Representative', 'Obere Str. 57', 'Berlin', NULL, '12209', 'Germany', '030-0074321'

21 CREATE PROCEDURE dbo.Multiplicador @n1 smallint, @n2 smallint, @resultado smallint OUTPUT AS SET @resultado = @n1 * @n2 GO DECLARE @resposta smallint EXECUTE Multiplicador 5,6, @resposta OUTPUT SELECT ‘O resultado é:', @resposta O resultado é: 30 CREATE PROCEDURE dbo.Multiplicador @n1 smallint, @n2 smallint, @resultado smallint OUTPUT AS SET @resultado = @n1 * @n2 GO DECLARE @resposta smallint EXECUTE Multiplicador 5,6, @resposta OUTPUT SELECT ‘O resultado é:', @resposta O resultado é: 30 Resultados do procedimentoarmazenado procedimentoarmazenado Executando o procedimentoarmazenado procedimentoarmazenado Criando o procedimentoarmazenado procedimentoarmazenado

22


Carregar ppt "SEGUNDA FASE / S2B MIC PERNAMBUCO Banco de Dados Turma: Manhã / FIR Recife-PE www.micpernambuco.com.br."

Apresentações semelhantes


Anúncios Google