T SQL Cheat Sheet PDF

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

Most Used Queries ## Sub-Queries with ALL, ANY, IN and EXISTS

 SELECT DISTINCT fieldname FROM tablename WHERE condition


 SELECT TOP N fieldname FROM tablename WHERE condition # IN Conditional
 SELECT COUNT (fieldnames), SUM (Purhases) FROM tablename WHERE condition SELECT CustomerID, FirstName, LastName FROM Customers
 SELECT MAX (numberfield) , MIN (numberfield) FROM tablename WHERE condition WHERE CustomerID IN
# Use nested SELECT statement as a fieldname ( SELECT CustomerID FROM Sales WHERE SupplyID LIKE ‘C*’ )
 SELECT fieldname AS showfield, SELECT MiddleName FROM tablename AS MidName, another # you can chain more IN statements from here
field WHERE condition IN (SELECT …)
SELECT CustomerID, MAX(DateSold)
Data Selection on WHERE using (AND, OR, BETWEEN conditionals)
# EXISTS Conditional
 …WHERE date = ‘20091018’ AND date = ‘20101210’ SELECT * FROM Customers
 …WHERE date = ‘20091018’ OR ( customerID = 224423 AND date =’20090507’) WHERE EXISTS
 …WHERE date BETWEEN ‘20091018’ AND ‘20101210’ (SELECT * FROM Sales WHERE CustomerID = SalesID )
 … WHERE Name LIKE | NOT LIKE ‘%ema*’
 … WHERE SomeID IS NULL | IS NOT NULL # ANY ( can use any comparison operator <, > , <>, = ANY)
SELECT CustomerID, FirstName, LastName FROM Customers
GROUP BY / ORDER BY / HAVING WHERE City = ANY (SELECT City FROM Customers WHERE State = ‘FL’)
 SELECT * FROM Employees ORDER BY 2, 3
 SELECT CustomerID, Invoices FROM Sales GROUP BY CustomerID # ALL ( can use any comparison operator <, > , <>, = ALL)
SELECT CustomerID, FirstName, LastName FROM Customers
# Group by after WHERE clause: WHERE ZipCode > ALL (SELECT ZipCode FROM Customers WHERE State = ‘CA’)
SELECT * FROM Table WHERE someID > 200 GROUP BY zipCode

#Using HAVING clause


## INNER JOINS – equi-joins
SELECT CustomerID, Count(*) AS Orders FROM Table
GROUP BY CustomerID
# Remember FROM tbl JOIN tbl ON relation
HAVING Count( * ) >=4
SELECT SAL_SOD.SalesOrderID, SAL_SOD.SalesOrderDetaiID
PRO_P.ProductID, PRO_P.ProductName,
SELECT shipdate, salesorderdate, customerid
FROM Sales.SalesOrderDetail SAL_SOD INNER JOIN Production.Product PROP_P
CASE WHEN Freight < 25 THEN ‘lite’
ON SAL_SOD.ProductID=PRO_P.ProductID
WHEN Freight BETWEEN 25 AND 100 THEN ‘normal’
WHERE SAL_SOD.SalesOrderID > 46559
WHEN Freight > 101 THEN ‘heavy’
ELSE ‘None’
# Syntax starting from the FROM clause
END FrieightType - - This is a new column
FROM Table2 (LEFT | RIGHT ){ INNER | OUTER} JOIN Table2 ON Table1Relation = Table2Relation
FROM schemanamespace.tablename
WHERE condition
# CROSS JOINS = Cartesian Product
SELECT * FROM Table1 CROSS JOIN Table2
# INSERT Methods 
 INSERT INTO table VALUES ( val1, val2, val3)
## Table Management
 INSERT INTO Table(fieldname) VALUES (value1)
 CREATE TABLE ( fieldname NVARCHAR (10) NOT NULL PRIMARY KEY,
# Copy Table Data to a new table
FOREIGN KEY ( socialsecuritynumber) REFERENCES Table2 ( socialsecuritynumber) )
 SELECT * INTO NewTable FROM ExistingTable
# Copy Data in a new column
 ALTER TABLE Tablename ADD ColumnName DataType
 UPDATE Table SET newcolumn = originalcolumn
 DROP TABLE Tablename
 BULK INSERT database.schemanamespace.tablename FROM ‘c:\filename.txt’
 BCP AdventureWorks.Production.ProductName in “Products.txt” –T -C
## Remove column requires ALTER TABLE preceding DROP COLUMN
 ALTER TABLE Tablename DROP COLUMN ColumnName
T-SQL SYNTAX BLOCK
# TABLE VALUE UDF – returns a table instead
• Defining and using variables ( DECLARE, SET)
CREATE FUNCTION dbo.GetInterest (@NumPeriods int, @PercentInterst money)
• Controlling Flow ( IF, ELSE, RETURN)
RETURNS ( Num int, I money)
• Using Loops ( WHILE , BREAK, CONTINUE ) AS BEGIN
• Defining a block (BEGIN, END) DECLARE @N = 0
SET @N = 0
DECLARE @ITot money
# SCALAR UDF – must return scalar type (string, number, or date value NOT a table or view) SET @ITot = 1
WHILE @N < @NumPeriods
CREATE FUNCTION ownername.functionname (@varname type ) BEGIN
RETURNS returntype SET @N = @N + 1
AS BEGIN SET @ ITot = @ITot * (1 + (@PercentInterest / 100 ))
DECLARE @amount MONEY INSERT INTO @InterestTable VALUES (@N, @ITot )
SET @amount = 0 END
SELECT @amount = AVG(TotalDue) RETURN
FROM Sales.SalesOrderHeader END
WHERE (CustomerID = @CustomerID)
RETURN ISNULL (@Amount, 0)
END ## Using IF ELSE
DECLARE @compareprice money, @cost money
EXECUTE Production.uspGetList '%Bikes%', 700,
#Create an Index @compareprice OUT,
 CREATE INDEX IndexName ON Tablename (Column1, Column2) @cost OUTPUT
#Create a View IF @cost <= @compareprice
 CREATE VIEW Viewname AS SELECT statement… BEGIN
# Create and Execute an SP PRINT 'These products can be purchased for less than
 CREATE PROCEDURE CountPurchases AS SELECT statement… END
 EXEC CountPurchases ELSE
PRINT 'The prices for all products in this category exceed
CREATE PROCEDURE SalesStats $'+ RTRIM(CAST(@compareprice AS varchar(20)))+'.'
@spid varchar(5)
AS SELECT statement ## Create a CURSOR
DECLARE CursorName CURSOR FOR SELECT statement OPEN CursorName FETCH NEXT FROM CursorName
CREATE TRIGGER Triggername ON Tablename FOR INSERT, UPDATE , DELETE AS SQL Operation WHILE @@FETCH STATUS = 0
BEGIN FETCH NEXT FROM CursorName - - include a SQL operation
END
# Creating a TRANSACTION CLOSE CursorName
DEALLOCATE CursorName
BEGIN TRANSACTION
INSERT INTO Customers VALUES ( 11, ‘Hot’ , ‘1222 Street’) - - do some SQL operation
SAVE TRANSACTION TransactionName
GLOBAL VARIABLES  F5 (Execute)
IF @@ERROR <> 0
@@VERSION  CTRL + F5 (Parse)
BEGIN  CTRL + SHIFT + Q (Query Designer)
PRINT “An Error occurred here” - - error handler here @@ERROR  CTRL + L (Estimated Execution Plan)
ROLLBACK TRANSACTION TransactionName @@ROWCOUNT  SP_HELP (Show Tables and Details)
END @@TRANCOUNT #nesting level of a txn  CTRL + N (New Query)
COMMIT TRANSACTION @@IDENTITY Sybase:
 SELECT * FROM sysobjects WHERE type='U'

You might also like