← Back to Dashboard

Master Syntax Reference Guide

A quick-reference cheat sheet for all SQL Server commands.

1. Database Operations

-- Create a new database
CREATE DATABASE DatabaseName;

-- Rename a database (Modern Query Method - Recommended)
ALTER DATABASE OldDbName MODIFY NAME = NewDbName;

-- Rename a database (Stored Procedure Method - Legacy)
EXEC sp_renamedb 'OldDbName', 'NewDbName';

-- Change User Modes
ALTER DATABASE DatabaseName SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
ALTER DATABASE DatabaseName SET MULTI_USER;

-- Drop (Delete) a database
DROP DATABASE DatabaseName;

2. Table Operations & Constraints

-- Create a table with ALL constraints
CREATE TABLE TableName (
    ID INT PRIMARY KEY,                           -- Primary Key
    Email VARCHAR(50) UNIQUE NOT NULL,            -- Unique & Cannot be empty
    Age INT CHECK (Age >= 18),                    -- Check condition
    Status VARCHAR(20) DEFAULT 'Active',          -- Default value
    DeptID INT FOREIGN KEY REFERENCES Dept(DeptID) ON DELETE CASCADE -- FK & Cascade
);

-- Alter Table: Add a column
ALTER TABLE TableName ADD ColumnName DataType;

-- Alter Table: Drop a column
ALTER TABLE TableName DROP COLUMN ColumnName;

-- Drop Table entirely
DROP TABLE TableName;

3. Data Manipulation (INSERT, UPDATE, DELETE)

-- INSERT 1: Specific Columns (Safest and Recommended)
INSERT INTO TableName (Col1, Col2) 
VALUES ('Value1', 'Value2');

-- INSERT 2: All Columns (Values must match the exact order of table columns)
INSERT INTO TableName 
VALUES ('Value1', 'Value2', 'Value3');

-- INSERT 3: Multiple Rows at once
INSERT INTO TableName (Col1, Col2) 
VALUES 
    ('Row1_Val1', 'Row1_Val2'),
    ('Row2_Val1', 'Row2_Val2'),
    ('Row3_Val1', 'Row3_Val2');

-- UPDATE a record 
-- ⚠️ CRITICAL: Always use WHERE, otherwise it updates EVERY row in the table!
UPDATE TableName 
SET Col1 = 'NewValue', Col2 = 'NewValue' 
WHERE ID = 1;

-- DELETE a record
-- ⚠️ CRITICAL: Always use WHERE, otherwise it deletes EVERY row in the table!
DELETE FROM TableName 
WHERE ID = 1;

4. Data Retrieval (SELECT & WHERE)

-- Basic Select & Distinct
SELECT * FROM TableName;
SELECT Col1, Col2, Col3 FROM TableName;
SELECT DISTINCT ColumnName FROM TableName;

-- Sorting & Limiting
SELECT TOP 5 * FROM TableName ORDER BY ColumnName DESC;
SELECT TOP 10 PERCENT * FROM TableName ORDER BY ColumnName ASC;

-- WHERE Clause with Operators (AND, OR, NOT)
SELECT * FROM TableName 
WHERE Col1 = Value AND NOT Col2 = Value OR Col3 > 100;

-- IN & BETWEEN
SELECT * FROM TableName WHERE Category IN ('A', 'B', 'C');
SELECT * FROM TableName WHERE Age BETWEEN 25 AND 35;

-- LIKE Operator (Wildcards)
SELECT * FROM TableName WHERE Name LIKE 'A%';    -- Starts with A
SELECT * FROM TableName WHERE Name LIKE '%son';  -- Ends with son
SELECT * FROM TableName WHERE Name LIKE '_B%';   -- Second letter is B
SELECT * FROM TableName WHERE Name LIKE '[A-C]%';-- Starts with A, B, or C

4. Functions, GROUP BY & HAVING

-- Scalar Functions (String & Math)
SELECT UPPER(Name), LEN(Name), LTRIM(RTRIM(Name)), CEILING(Price) 
FROM TableName;

-- Aggregate Functions (COUNT, SUM, AVG, MIN, MAX)
SELECT COUNT(*), SUM(Salary), AVG(Salary), MIN(Age), MAX(Age) 
FROM TableName;

-- GROUP BY & HAVING (Filtering Aggregates)
SELECT Department, SUM(Salary) AS TotalSal
FROM Employees
WHERE Status = 'Active'      -- Filters rows BEFORE grouping
GROUP BY Department
HAVING SUM(Salary) > 50000;  -- Filters groups AFTER grouping

5. Combining Data (UNION & JOINS)

-- UNION (Removes Duplicates) / UNION ALL (Keeps Duplicates)
SELECT Col1, Col2 FROM TableA
UNION ALL
SELECT Col1, Col2 FROM TableB
ORDER BY Col1; -- Order By goes at the very end only

-- INNER JOIN (Matches only)
SELECT A.Col1, B.Col2 
FROM TableA A 
INNER JOIN TableB B ON A.KeyID = B.KeyID;

-- LEFT JOIN (All from Left, matches from Right)
SELECT A.Col1, B.Col2 
FROM TableA A 
LEFT JOIN TableB B ON A.KeyID = B.KeyID;

-- CROSS JOIN (Cartesian product, every row matched with every row)
SELECT A.Col1, B.Col2 
FROM TableA A 
CROSS JOIN TableB B;

-- SELF JOIN (Joining a table to itself)
SELECT E1.EmpName, E2.ManagerName 
FROM Employees E1 
LEFT JOIN Employees E2 ON E1.ManagerID = E2.EmpID;

6. Virtual Tables (Views)

-- Create a View
CREATE VIEW vw_ViewName AS
SELECT Col1, Col2 FROM TableName WHERE Condition;

-- Modify an existing View
ALTER VIEW vw_ViewName AS
SELECT Col1, Col2, Col3 FROM TableName;

-- Query a View
SELECT * FROM vw_ViewName;

-- Drop (Delete) a View
DROP VIEW vw_ViewName;