SQL Overview
What is SQL?
SQL stands for Structured Query Language. It allows you to access a database. SQL can be used to execute queries against a database, retrieve data from a database, insert new records in a database, delete records from a database and update records in a database.
SELECT Statement
SELECT is used to get data out of the database. It is returned in a table form.
Syntax :
SELECT Column_Name(s) FROM TABLE_NAME
All of the examples below will use this table.
| Table : Customer | |||
|---|---|---|---|
| FirstName | LastName | Phone | City |
| Darryll | Sulymka | 604-607-1440 | Langley |
| John | Crichton | 321-868-1221 | Cape Canaveral |
| Rob | McLean | 604-607-1440 | Langley |
| Aeryn | Sun | 456-345-7234 | Unknown |
| Rygel XVI | Unknown | 894-256-4235 | Unknown |
Select Some Columns : To Select the firstname , lastname and Location from Customer you would do some thing like this :
SELECT FirstName, LastName, City FROM Customer
| FirstName | LastName | City |
|---|---|---|
| Darryll | Sulymka | Langley |
| John | Crichton | Cape Canaveral |
| Rob | McLean | Langley |
| Aeryn | Sun | Unknown |
| Rygel XVI | Unknown | Unknown |
Distinct
DISTINCT is used to return only different values from your select statement like what were all of the different Sizes I ran last shift.
Syntax :
SELECT DISTINCT Column_Name(s) FROM TABLE_NAME
Example :
SELECT City FROM Customer
| Result : SELECT City FROM Customer |
|---|
| Langley |
| Cape Canaveral |
| Langley |
| Unknown |
| Unknown |
SELECT DISTINCT City FROM Customer
| Result : SELECT DISTINCT City FROM Customer |
|---|
| Langley |
| Cape Canaveral |
| Unknown |
WHERE Clause
WHERE is added to a Select statement to help limit down the number of records returned, based on a given condition.
Syntax :
SELECT Column_Name(s) FROM TABLE_NAME\\ WHERE COLUMN operator VALUE
Here is a list of available operators :
| Operator | Description |
|---|---|
| = | Equal |
| <> | Not equal |
| > | Greater than |
| < | Less than |
| >= | Greater than or equal |
| <= | Less than or equal |
| BETWEEN | Between a range |
| LIKE | Search for data that is Like |
All of the Examples Below will use this table :
| Table : Customer | |||
|---|---|---|---|
| FirstName | LastName | Phone | City |
| Darryll | Sulymka | 604-607-1440 | Langley |
| John | Crichton | 321-868-1221 | Cape Canaveral |
| Rob | McLean | 604-607-1440 | Langley |
| Aeryn | Sun | 456-345-7234 | Unknown |
| Rygel XVI | Unknown | 894-256-4235 | Unknown |
Examples
SELECT * FROM Customer WHERE Phone = '604-607-1440'
| FirstName | LastName | Phone | City |
|---|---|---|---|
| Darryll | Sulymka | 604-607-1440 | Langley |
| Rob | McLean | 604-607-1440 | Langley |
SELECT * FROM Customer Where Phone <> '604-607-1440'
| FirstName | LastName | Phone | City |
|---|---|---|---|
| John | Crichton | 321-868-1221 | Cape Canaveral |
| Aeryn | Sun | 456-345-7234 | Unknown |
| Rygel XVI | Unknown | 894-256-4235 | Unknown |
BETWEEN SQL
SELECT * FROM Customer WHERE FirstName BETWEEN 'a' AND 'f'
| FirstName | LastName | Phone | City |
|---|---|---|---|
| Darryll | Sulymka | 604-607-1440 | Langley |
| Aeryn | Sun | 456-345-7234 | Unknown |
SELECT * FROM Customer WHERE FirstName BETWEEN 'f' AND 'z'
| FirstName | LastName | Phone | City |
|---|---|---|---|
| John | Crichton | 321-868-1221 | Cape Canaveral |
| Rob | McLean | 604-607-1440 | Langley |
| Rygel XVI | Unknown | 894-256-4235 | Unknown |
LIKE SQL
SELECT * FROM Customer WHERE Lastname LIKE 'su%'
| FirstName | LastName | Phone | City |
|---|---|---|---|
| Darryll | Sulymka | 604-607-1440 | Langley |
| Aeryn | Sun | 456-345-7234 | Unknown |
SELECT * FROM Customer WHERE FistName LIKE '%y%'
| FirstName | LastName | Phone | City |
|---|---|---|---|
| Darryll | Sulymka | 604-607-1440 | Langley |
| Aeryn | Sun | 456-345-7234 | Unknown |
| Rygel XVI | Unknown | 894-256-4235 | Unknown |
SELECT * FROM Customer WHERE LastName LIKE '%n'
| FirstName | LastName | Phone | City |
|---|---|---|---|
| John | Crichton | 321-868-1221 | Cape Canaveral |
| Rob | McLean | 604-607-1440 | Langley |
| Aeryn | Sun | 456-345-7234 | Unknown |
| Rygel XVI | Unknown | 894-256-4235 | Unknown |
INSERT INTO Statement
INSERT INTO is used to add records to a table.
Syntax
INSERT INTO TABLE_NAME\\ VALUES (value1, value2, value3 ...)
OR
INSERT INTO TABLE_NAME(column1, column2, column3 ...) \\ VALUES (value1, value2, value3 ...)
All of the examples below will modify this table.
| CustomerID | FirstName | LastName | Phone | City |
|---|---|---|---|---|
| 42 | Darryll | Sulymka | 604-607-1440 | Langley |
Examples
INSERT INTO Customer
VALUES(43, 'John', 'Crichton', '321-868-1221', 'Cape Canaveral')
| CustomerID | FirstName | LastName | Phone | City |
|---|---|---|---|---|
| 42 | Darryll | Sulymka | 604-607-1440 | Langley |
| 43 | John | Crichton | 321-868-1221 | Cape Canaveral |
INSERT INTO Customer(CustomerID,FirstName,LastName,Phone) \\ VALUES(24, 'Aeryn', 'Sun', '456-345-7234')
| CustomerID | FirstName | LastName | Phone | City |
|---|---|---|---|---|
| 42 | Darryll | Sulymka | 604-607-1440 | Langley |
| 43 | John | Crichton | 321-868-1221 | Cape Canaveral |
| 44 | Aeryn | Sun | 456-345-7234 |
UPDATE Statement
UPDATE is used to update the data in a table.
Syntax :
UPDATE TABLE_NAME \\ SET column_name = new_value \\ WHERE condition
All of the Examples Below will use this table
| Table : Customer | |||
|---|---|---|---|
| FirstName | LastName | Phone | City |
| Darryll | Sulymka | 604-607-1440 | Langley |
| John | Crichton | 321-868-1221 | Cape Canaveral |
| Rob | McLean | 604-607-1440 | Langley |
| Aeryn | Sun | 456-345-7234 | Unknown |
| Rygel XVI | Unknown | 894-256-4235 | Unknown |
Examples :
UPDATE Customer \\ SET LastName='Smith' \\ WHERE FirstName = 'Rygel'
| Table : Customer | |||
|---|---|---|---|
| FirstName | LastName | Phone | City |
| Darryll | Sulymka | 604-607-1440 | Langley |
| John | Crichton | 321-868-1221 | Cape Canaveral |
| Rob | McLean | 604-607-1440 | Langley |
| Aeryn | Sun | 456-345-7234 | Unknown |
| Rygel XVI | Smith | 894-256-4235 | Unknown |
UPDATE Customer \\ SET City='New York' \\ WHERE City = 'Unknown'
| Table : Customer | |||
|---|---|---|---|
| FirstName | LastName | Phone | City |
| Darryll | Sulymka | 604-607-1440 | Langley |
| John | Crichton | 321-868-1221 | Cape Canaveral |
| Rob | McLean | 604-607-1440 | Langley |
| Aeryn | Sun | 456-345-7234 | New York |
| Rygel XVI | Smith | 894-256-4235 | New York |
UPDATE Customer \\ SET City='Unknown' \\ ---if no where statement is used will update every record in the table
| Table : Customer | |||
|---|---|---|---|
| FirstName | LastName | Phone | City |
| Darryll | Sulymka | 604-607-1440 | Unknown |
| John | Crichton | 321-868-1221 | Unknown |
| Rob | McLean | 604-607-1440 | Unknown |
| Aeryn | Sun | 456-345-7234 | Unknown |
| Rygel XVI | Smith | 894-256-4235 | Unknown |
DELETE Statement
DELETE allows you to remove rows from tables.
Syntax :
DELETE FROM TABLE_NAME \\ WHERE condition
All of the Examples Below will use this table :
| Table : Customer | |||
|---|---|---|---|
| FirstName | LastName | Phone | City |
| Darryll | Sulymka | 604-607-1440 | Langley |
| John | Crichton | 321-868-1221 | Cape Canaveral |
| Rob | McLean | 604-607-1440 | Langley |
| Aeryn | Sun | 456-345-7234 | Unknown |
| Rygel XVI | Unknown | 894-256-4235 | Unknown |
Examples :
DELETE FROM Customer \\ WHERE FirstName='Rob'
| Table : Customer | |||
|---|---|---|---|
| FirstName | LastName | Phone | City |
| Darryll | Sulymka | 604-607-1440 | Langley |
| John | Crichton | 321-868-1221 | Cape Canaveral |
| Aeryn | Sun | 456-345-7234 | Unknown |
| Rygel XVI | Unknown | 894-256-4235 | Unknown |
DELETE FROM Customer \\ WHERE City='Unknown'
| Table : Customer | |||
|---|---|---|---|
| FirstName | LastName | Phone | City |
| Darryll | Sulymka | 604-607-1440 | Langley |
| John | Crichton | 321-868-1221 | Cape Canaveral |
Delete all records in a table :
DELETE FROM Customer
| Table : Customer | |||
|---|---|---|---|
| FirstName | LastName | Phone | City |
ORDER BY Clause
ORDER BY is used with a select statement to order the results that are returned.
Syntax :
SELECT * FROM TABLE_NAME \\ ORDER BY column_name [ASC|DESC]
ASC - Ascending DESC - Descending If ASC or DESC are not used the query will use the database default
All of the Examples Below will use this table :
| Table : Customer | |||
|---|---|---|---|
| FirstName | LastName | Phone | City |
| Darryll | Sulymka | 604-607-1440 | Langley |
| John | Crichton | 321-868-1221 | Cape Canaveral |
| Rob | McLean | 604-607-1440 | Langley |
| Aeryn | Sun | 456-345-7234 | Unknown |
| Rygel XVI | Unknown | 894-256-4235 | Unknown |
Examples :
SELECT * FROM Customer \\ ORDER BY FirstName
| Table : Customer | |||
|---|---|---|---|
| FirstName | LastName | Phone | City |
| Aeryn | Sun | 456-345-7234 | Unknown |
| Darryll | Sulymka | 604-607-1440 | Langley |
| John | Crichton | 321-868-1221 | Cape Canaveral |
| Rob | McLean | 604-607-1440 | Langley |
| Rygel XVI | Unknown | 894-256-4235 | Unknown |
SELECT * FROM Customer \\ ORDER BY LastName DESC
| Table : Customer | |||
|---|---|---|---|
| FirstName | LastName | Phone | City |
| Rygel XVI | Unknown | 894-256-4235 | Unknown |
| Aeryn | Sun | 456-345-7234 | Unknown |
| Darryll | Sulymka | 604-607-1440 | Langley |
| Rob | McLean | 604-607-1440 | Langley |
| John | Crichton | 321-868-1221 | Cape Canaveral |
SELECT * FROM Customer \\ ORDER BY City ASC, FirstName DESC
| Table : Customer | |||
|---|---|---|---|
| FirstName | LastName | Phone | City |
| John | Crichton | 321-868-1221 | Cape Canaveral |
| Rob | McLean | 604-607-1440 | Langley |
| Darryll | Sulymka | 604-607-1440 | Langley |
| Rygel XVI | Unknown | 894-256-4235 | Unknown |
| Aeryn | Sun | 456-345-7234 | Unknown |
SQL Functions
Functions are used to operate against a collection of values, but return a single value.
Syntax :
SELECT FUNCTION(COLUMN) FROM TABLE_NAME
| Function | Description |
|---|---|
| AVG(column) | Returns the average value of a column |
| COUNT(column) | Returns the number of rows (without a NULL value) of a column |
| COUNT(*) | Returns the number of selected rows |
| COUNT(DISTINCT column) | Returns the number of distinct results |
| MAX(column) | Returns the highest value of a column |
| MIN(column) | Returns the lowest value of a column |
| SUM(column) | Returns the total sum of a column |
This table will be used in all of the examples below :
| Table : Stats | |
|---|---|
| ID | DATA |
| 1 | 42 |
| 2 | 24 |
| 3 | 72 |
| 4 | 14 |
| 5 | 50 |
| 6 | 35 |
| 7 | 99 |
| 8 | 66 |
| 9 | 34 |
| 10 | 80 |
AVG() SQL
SELECT AVG(DATA) FROM Stats
| Result |
|---|
| 51.6 |
COUNT() SQL
SELECT COUNT(DATA) FROM Stats
| Result |
|---|
| 10 |
MAX() SQL
SELECT MAX(DATA) FROM Stats
| Result |
|---|
| 99 |
MIN() SQL
SELECT MIN(DATA) FROM Stats
| Result |
|---|
| 14 |
SUM() SQL
SELECT SUM(DATA) FROM Stats
| Result |
|---|
| 516 |
GROUP BY Clause
GROUP BY divides a table into groups.
Syntax:
SELECT column1, SUM(column2) FROM tablename GROUP BY column1
This table will be used in the example below :
| TABLE : Payroll | |
|---|---|
| Name | Amount |
| John | 1000 |
| Bob | 1500 |
| Dan | 5000 |
| Frank | 3000 |
| John | 1000 |
| Bob | 1500 |
| Dan | 5000 |
| Frank | 3000 |
Example :
SELECT Name, SUM(Amount) FROM Payroll GROUP BY Name
| TABLE : Payroll | |
|---|---|
| Name | Amount |
| John | 2000 |
| Bob | 3000 |
| Dan | 10000 |
| Frank | 6000 |
SQL Quick Reference
| Statement | Syntax |
|---|---|
| AND / OR | SELECT column_name(s) FROM table_name WHERE condition AND/OR condition |
| ALTER TABLE (add column) | ALTER TABLE table_name ADD column_name datatype |
| ALTER TABLE (drop column) | ALTER TABLE table_name DROP COLUMN column_name |
| AS (alias for column) | SELECT column_name AS column_alias FROM table_name |
| AS (alias for table) | SELECT column_name FROM table_name AS table_alias |
| BETWEEN | SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2 |
| CREATE DATABASE | CREATE DATABASE database_name |
| CREATE INDEX | CREATE INDEX index_name ON table_name (column_name) |
| CREATE TABLE | CREATE TABLE table_name (column_name1 data_type, column_name2 data_type, …….) |
| CREATE UNIQUE INDEX | CREATE UNIQUE INDEX index_name ON table_name (column_name) |
| CREATE VIEW | CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition |
| DECLARE | DECLARE @Temp Datatype SET @Temp = Value |
| DELETE FROM | DELETE FROM table_name (Note: Deletes the entire table!!) or DELETE FROM table_name WHERE condition |
| DROP DATABASE | DROP DATABASE database_name |
| DROP INDEX | DROP INDEX table_name.index_name |
| DROP TABLE | DROP TABLE table_name |
| GROUP BY | SELECT column_name1,SUM(column_name2) FROM table_name GROUP BY column_name1 |
| HAVING | SELECT column_name1,SUM(column_name2) FROM table_name GROUP BY column_name1 HAVING SUM(column_name2) condition value |
| IN | SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,..) |
| INSERT INTO | INSERT INTO table_name VALUES (value1, value2,….) or INSERT INTO table_name (column_name1, column_name2,…) VALUES (value1, value2,….) |
| LIKE | SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern |
| ORDER BY | SELECT column_name(s) FROM table_name ORDER BY column_name [ASC/DESC] |
| SELECT | SELECT column_name(s) FROM table_name |
| SELECT * | SELECT * FROM table_name |
| SELECT DISTINCT | SELECT DISTINCT column_name(s) FROM table_name |
| SELECT INTO (used to create backup copies of tables) | SELECT * INTO new_table_name FROM original_table_name or SELECT column_name(s) INTO new_table_name FROM original_table_name |
| TRUNCATE TABLE (deletes only the data inside the table) | TRUNCATE TABLE table_name |
| UPDATE | UPDATE table_name SET column_name=new_value [,column_name=new_value] WHERE column_name=some_value |
| WHERE | SELECT column_name(s) FROM table_name WHERE condition |