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!

Sql basics 2

on

  • 1,367 views

 

Statistics

Views

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

Actions

Likes
0
Downloads
17
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 Sql basics 2 Presentation Transcript

    • SQL Basics - II
    • Non-correlated Sub query USE AdventureWorks SELECT SalesPersonID , SalesQuota CurrentSalesQuota FROM Sales .SalesPerson WHERE SalesQuota IN ( SELECT MAX (SalesQuota) FROM Sales .SalesPerson)
    • 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
    • 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
    • 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
    • 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
    • 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.
    • 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
    • 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
    • EXCEPT USE AdventureWorks GO SELECT ProductID , Name FROM TableA EXCEPT SELECT ProductID , Name FROM TableB
    • INTERSECT USE AdventureWorks GO SELECT ProductID , Name FROM TableA INTERSECT SELECT ProductID , Name FROM TableB
    • CUBE USE AdventureWorks GO SELECT i .Shelf, SUM (i.Quantity) Total FROM Production .ProductInventory i GROUP BY i .Shelf WITH CUBE
    • 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
    • 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
    • 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
    • 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
    • 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
    • JOINT Hints A join hint will force the query optimizer to join the tables in the way you command
    • 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
    • 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
    • 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 )
    • Table hint USE AdventureWorks GO SELECT DocumentID , Title FROM Production .Document WITH ( NOLOCK ) WHERE Status = 1