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,422 views

 

Statistics

Views

Total Views
1,422
Views on SlideShare
1,422
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 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 View slide
  • 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
    View slide
  • 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