Facebook
From BM, 10 Months ago, written in Plain Text.
This paste is a reply to SQL Notes from Biswaranjan - go back
Embed
Viewing differences between SQL Notes and Re: SQL Notes
HelloThe SQL Server Joins are classified into two types such as

ANSI format JOINS
NON-ANSI format JOINS

ANSI - 
Inner join
Outer join
Cross join
 Further, the outer join is divided into three types are as follows
    Left outer join
    Right outer join
    Full outer join
    
NON - ANSI
EQUI join
NON-EQUI join
SELF-join
Natural Join

Note :- Default JOIN in SQL is Inner join

INDEX:-

Note - In a table, we can use a maximum of 1000 indexes (1 Clustered Index plus 999 Non-Clustered Index).

When an index is created, a balanced tree which has root, non-leaf and leaf nodes are created. Hence the search becomes faster.

Clustered index is created by default only when primary key is present for the table.
In Non clustered,the leaf node actually holds the data and in the case of a non-clustered index, the leaf node actually points to the leaf node of a clustered index or points to the heap table if the table does not have any clustered index.

What is a Covering query?
If all the columns that we have requested in the select clause of the query are present in the index, then there is no need to look up the table again. The requested column data can simply be returned from the index. This is called Covering Query.

Aspect                  | RANK() Function         | DENSE_RANK() Function   |
-------------------------|--------------------------|--------------------------|
Rank Assignment         | Assigns unique ranks     | Assigns unique ranks     |
Handling Tied Rows      | Skips ranks for tied rows | No gaps in rank sequence |
Tied Rows              | Receive different ranks if tied | Receive the same rank if tied |
Rank Values             | Non-consecutive (may have gaps) | Consecutive (no gaps)   |
Example SQL            | RANK() OVER (ORDER BY Column) | DENSE_RANK() OVER (ORDER BY Column) |
Use Case                | When gaps in ranks are acceptable | When consecutive ranks are preferred for tied rows |

Window Functions:-

Aggregate Functions :- Avg, min, max, count, sum
Ranking funtions :- rank, dense_rank, row_number, ntile
value functions :- lag, lead, first_value, last_value, nth_value

SELECT
    Date,
    Price,
    Price - LAG(Price, 1) OVER (ORDER BY Date) AS DailyChange,
    LAST_VALUE(Price) OVER (ORDER BY Date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS EndOfWeekPrice
FROM
    StockPrices;
    
Stored procedure:-
When we execute a sql query it goes through 3 process:Syntax Checked,Plan Selected,Query Execution.

When we create a stored procedure, the syntaxes are checked while creating the procedure or we can say at the design. When we execute the procedure for the first time, the best execution plan is selected and is cached in memory. And after that whenever we call the stored procedure, the query execution plan is taken from the cache rather than creating again and again and executed

NOTE:-So, in SQL Server by using the return values, we can return only one integer. It is not possible, to return more than one value using return values, whereas in output parameters, we can return any data type and a stored procedure can have more than one output parameter.

Temporary/private Stored procedure
CREATE PROCEDURE #GlobalProcedue
AS
BEGIN
  PRINT 'This is Temporary Temporary Procedure'
END

GLobal SP:-
CREATE PROCEDURE ##GlobalProcedue
AS
BEGIN
  PRINT 'This is Global Temporary Procedure'
END

FUNCTIONS :-

User defined Scalar function:- Meaning it returns only one value
  CREATE FUNCTION AddTwoNumber(@firstNo INT, @second INT)
  RETURNS INT
  AS
  BEGIN
  DECLARE @result INT
      SET @result = @firstNo + @second
      RETURN @result
  END
  We can call using
  Select dbo.AddTwoNumber 
     or
  DECLARE @result INT
  SET @result = (Select dbo.AddTwoNumber(10,15))
  PRINT @result
  
User defined Inline Table Valued function
 It returns a whole table and its return type is TABLE
      CREATE FUNCTION FN_GetStudentDetailsByID
      (
        @ID INT
      )
      RETURNS TABLE
      AS
      RETURN (SELECT * FROM Student WHERE ID = @ID)
      
       We can call it using just like a table But with ()
       SELECT * FROM FN_GetStudentDetailsByBranch(‘CSE’)
       
User defined Multi-statement Table Valued Function

-- Multi-statement Table Valued function: In this we create our own return table definition
CREATE FUNCTION MSTVF_GetEmployees()
RETURNS @Table Table (ID int, Name nvarchar(20), DOB Date)
AS
BEGIN
  INSERT INTO @Table
    SELECT ID, Name, Cast(DOB AS Date)
    FROM Employee
  Return
End

Calling:-
SELECT * FROM MSTVF_GetEmployees()
       
Functions VS Procedures

https://dotnettutorials.net/lesson/multi-statement-table-valued-function-in-sql-server/

Deterministic function
The Deterministic functions in SQL Server always return the same result every time they are called with a specific set of input values and give the same state of the database. For examples: SQUARE(), Power(), Sum(), AVG(), and Count(). All aggregate functions are deterministic functions. Let us see some examples.

Non deterministic function
The Non-deterministic functions in SQL Server may return different results each time they are called with a specific set of values even if the database state that they access remains the same. For examples: GetDate() and Current_Timestamp

Replies to Re: SQL Notes rss

Title Name Language When
Re: Re: SQL Notes BM1 text 10 Months ago.