SQL Query

Title Query Description
Distinct (unique) SELECT DISTINCT Country FROM Customers;
And/or/not SELECT * FROM Customers WHERE Country='Germany' OR Country='Spain' and NOT Country='Japan;
Order by SELECT * FROM Customers ORDER BY Country ASC, CustomerName DESC;
Insert into INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES ('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway');
Null values SELECT column_names FROM table_name
WHERE column_name IS NULL;
Update UPDATE Customers SET ContactName = 'Alfred Schmidt', City= 'Frankfurt'
WHERE CustomerID = 1;
Delete DELETE FROM Customers WHERE CustomerName='Alfreds Futterkiste';
Top rows SELECT * FROM Customers LIMIT 3;
SELECT * FROM Customers WHERE Country='Germany' AND ROWNUM <= 3;
SELECT TOP 3 * FROM Customers WHERE Country='Germany';
MySQL
Oracle
SQL Server/MS Access
MIN/MAX SELECT MIN(Price) AS SmallestPrice FROM Products;
SELECT MAX(Price) AS LargestPrice FROM Products;
Count, Average, Sum SELECT COUNT(ProductID), AVG(Price), SUM(Quantity) FROM Products;
Like SELECT * FROM Customers WHERE CustomerName LIKE 'a%'; _ : single char
%: multiple char
h[oa]t: finds hot and hat, but not hit
h[^oa]t: finds hit, but not hot and hat
c[a-b]t: finds cat and cbt
IN SELECT * FROM Customers WHERE Country NOT IN ('Germany', 'France', 'UK');
Between SELECT * FROM Products WHERE Price BETWEEN 10 AND 20
SELECT * FROM Products WHERE ProductName BETWEEN "Carnarvon" AND "Chef"
SELECT * FROM Orders WHERE OrderDate BETWEEN #01/07/1996# AND #31/07/1996#;
Union SELECT City, Country FROM Customers WHERE Country='Germany'
UNION SELECT City, Country FROM Suppliers WHERE Country='Germany' ORDER BY City;
Only union will take distinct values whereas union all will take all values
GroupBY --
Having --
Exists SELECT SupplierName FROM Suppliers WHERE
EXISTS (SELECT ProductName FROM Products WHERE Products.SupplierID = Suppliers.supplierID AND Price = 22);
get data from subquery if it returns some row(s)
Any/All
INTO SELECT column1, column2, column3, INTO newtable [IN externaldb] FROM oldtable WHERE condition;
SELECT * INTO newtable FROM oldtable WHERE 1 = 0;
create a new table with data from oldtable
create and empty table
Insert into select INSERT INTO Customers (CustomerName, City, Country) SELECT SupplierName, City, Country FROM Suppliers
WHERE Country='Germany';
copies data from one table and insert into other
Case SELECT OrderID, Quantity,
CASE
WHEN Quantity > 30 THEN 'The quantity is greater than 30'
WHEN Quantity = 30 THEN 'The quantity is 30'
ELSE 'The quantity is under 30'
END AS QuantityText
FROM OrderDetails;
Here a new column 'QuantityText' will be created
Ifnull SELECT ProductName, UnitPrice * (UnitsInStock + IFNULL(UnitsOnOrder, 0)) FROM Products; if any value in column UnitsOnOrder is null then 0 will be used
Stored procedure CREATE PROCEDURE SelectAllCustomers AS SELECT * FROM Customers GO;
EXEC SelectAllCustomers;
Just like a function which you can call later