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 |