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

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 sales buyer_idbuyer_idprod_idprod_idqtyqty buyers Resultado buyer_namebuyer_name Adam Barr Erin O’Melia Eva Corets buyer_idbuyer_idqtyqty Erin O’Melia 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 buyer_namebuyer_name Adam Barr Sean Chai Eva Corets Erin O’Melia buyer_idbuyer_id salesbuyers Resultado buyer_namebuyer_name Adam Barr Erin O’Melia Eva Corets buyer_idbuyer_idqtyqty Erin O’Melia 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 Adam Barr 1003 Sean Chai 15 Sean Chai Sean Chai 11 Sean Chai 1003 Eva Corets sales buyer_idbuyer_idprod_idprod_idqtyqty buyers buyer_idbuyer_id 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 Apples Pears Oranges Bananas 5 5 Peaches buyer_idbuyer_id buyer_namebuyer_name Adam Barr Sean Chai Eva Corets Erin O’Melia buyer_idbuyer_id prod_idprod_id qtyqty 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

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 sales a buyer_idbuyer_idprod_idprod_idqtyqty Resultado buyer1buyer1 4 4 prod_idprod_idbuyer2buyer 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 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 CustomerIDCustomerID BONAP PICCO QUICK BONAP PICCO QUICK ~~~ RequiredDateRequiredDate ShippedDateShippedDate 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 ShippedDateShippedDate 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 DateTime AS IS NULL 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 GO CREATE PROCEDURE dbo.[Locacao de DateTime AS IS NULL 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 GO

20  Passando valores por nome de parâmetro  Passando valores por posição EXEC = = 'Maria = 'Alfreds = 'Sales = 'Obere Str. = = = = ' ' EXEC = = 'Maria = 'Alfreds = 'Sales = 'Obere Str. = = = = ' ' EXEC AdicionarCliente 154, 'Maria Anders', 'Alfreds Futterkiste', 'Sales Representative', 'Obere Str. 57', 'Berlin', NULL, '12209', 'Germany', ' '

21 CREATE PROCEDURE smallint OUTPUT AS GO smallint EXECUTE Multiplicador OUTPUT SELECT ‘O resultado O resultado é: 30 CREATE PROCEDURE smallint OUTPUT AS GO smallint EXECUTE Multiplicador OUTPUT SELECT ‘O resultado 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