Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Like this? Share it with your network

Share

Sql basics 2

on

  • 1,441 views

 

Statistics

Views

Total Views
1,441
Views on SlideShare
1,441
Embed Views
0

Actions

Likes
0
Downloads
18
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Sql basics 2 Presentation Transcript

  • 1. SQL Basics - II
  • 2. Non-correlated Sub query USE AdventureWorks SELECT SalesPersonID , SalesQuota CurrentSalesQuota FROM Sales .SalesPerson WHERE SalesQuota IN ( SELECT MAX (SalesQuota) FROM Sales .SalesPerson)
  • 3. UNION USE AdventureWorks SELECT SalesPersonID , GETDATE () QuotaDate, SalesQuota FROM Sales .SalesPerson WHERE SalesQuota > 0 UNION SELECT SalesPersonID , QuotaDate, SalesQuota FROM Sales .SalesPersonQuotaHistory WHERE SalesQuota > 0 ORDER BY SalesPersonID DESC , QuotaDate DESC
  • 4. Combining Result Sets with UNION
    • The UNION operator is used to append the results of two or more SELECT statements into a single result set
    • Each SELECT statement being merged must have the same number of columns, with the same or compatible data types in the same order
  • 5. Table Valued Function USE AdventureWorks GO CREATE FUNCTION dbo .fn_WorkOrderRouting (@WorkOrderID int ) RETURNS TABLE AS RETURN SELECT WorkOrderID ,ProductID,OperationSequence,LocationID FROM Production .WorkOrderRouting WHERE WorkOrderID = @WorkOrderID GO
  • 6. Using CROSS APPLY USE AdventureWorks GO SELECT w .WorkOrderID,w.OrderQty,r.ProductID,r.OperationSequence FROM Production .WorkOrder w CROSS APPLY dbo.fn_WorkOrderRouting (w.WorkOrderID) AS r ORDER BY w .WorkOrderID,w.OrderQty,r.ProductID
  • 7. APPLY
    • APPLY is used to invoke a table-valued function for each row of an outer query
    • CROSS APPLY works like an INNER JOIN in that unmatched rows between the left table and the table-valued function don’t appear in the result set
    • OUTER APPLY is like an OUTER JOIN , in that mismatched rows are still returned in the result set with NULL values in the function results.
  • 8. EXCEPT and INTERCEPT -- First two new tables based on ProductionProduct will be created USE AdventureWorks GO SELECT prod .ProductID, prod.Name INTO dbo .TableA FROM ( SELECT ProductID , Name , ROW_NUMBER () OVER ( ORDER BY ProductID ) RowNum FROM Production .Product) prod WHERE RowNum BETWEEN 1 and 20
  • 9. Create second table USE AdventureWorks GO -- Create TableB SELECT prod .ProductID, prod.Name INTO dbo .TableB FROM ( SELECT ProductID , Name , ROW_NUMBER () OVER ( ORDER BY ProductID ) RowNum FROM Production .Product) prod WHERE RowNum BETWEEN 10 and 29
  • 10. EXCEPT USE AdventureWorks GO SELECT ProductID , Name FROM TableA EXCEPT SELECT ProductID , Name FROM TableB
  • 11. INTERSECT USE AdventureWorks GO SELECT ProductID , Name FROM TableA INTERSECT SELECT ProductID , Name FROM TableB
  • 12. CUBE USE AdventureWorks GO SELECT i .Shelf, SUM (i.Quantity) Total FROM Production .ProductInventory i GROUP BY i .Shelf WITH CUBE
  • 13. What is CUBE ?
    • WITH CUBE is used to aggregate values for each grouping combination
    • WITH CUBE is often used for reporting purposes, providing an easy method of reporting totals by grouped column
  • 14. GROUPING with CUBE USE AdventureWorks GO SELECT i .Shelf, GROUPING (i.Shelf) Source, SUM (i.Quantity) Total FROM Production .ProductInventory i GROUP BY i .Shelf WITH CUBE
  • 15. ROLLUP USE AdventureWorks GO SELECT i .Shelf, p.Name, SUM (i.Quantity) Total FROM Production .ProductInventory i INNER JOIN Production.Product p ON i .ProductID = p.ProductID GROUP BY i .Shelf, p.Name WITH ROLLUP
  • 16. What is ROLLUP ? WITH ROLLUP is used in conjunction with GROUP BY to add hierarchical data summaries based on the ordering of columns in the GROUP BY clause
  • 17. HINTS
    • SQL Server’s query optimization process is responsible for producing a query execution plan when a SELECT query is executed
    • Under rare circumstances SQL Server may choose an inefficient plan over a more efficient one
    • After researching the query performance, you may decide to override the decision making process of the SQL Server query optimizer by using hints
  • 18. JOINT Hints A join hint will force the query optimizer to join the tables in the way you command
  • 19. JOIN without hint USE AdventureWorks GO SET SHOWPLAN_TEXT ON GO SELECT p .Name,r.ReviewerName,r.Rating FROM Production .Product p INNER JOIN Production.ProductReview r ON r .ProductID = p.ProductID GO SET SHOWPLAN_TEXT OFF GO
  • 20. JOIN with hint USE AdventureWorks GO SET SHOWPLAN_TEXT ON GO SELECT p .Name,r.ReviewerName, r.Rating FROM Production .Product p INNER HASH JOIN Production.ProductReview r ON r .ProductID = p.ProductID GO SET SHOWPLAN_TEXT OFF GO
  • 21. Query with hint USE AdventureWorks GO SELECT SalesOrderID , ProductID, UnitPrice, OrderQty FROM Sales .SalesOrderDetail WHERE CarrierTrackingNumber = '5CE9-4D75-8F' ORDER BY SalesOrderID , ProductID OPTION ( RECOMPILE )
  • 22. Table hint USE AdventureWorks GO SELECT DocumentID , Title FROM Production .Document WITH ( NOLOCK ) WHERE Status = 1