SQL Syntax
Previous Next Chapter
Database Tables
A database most often contains one or more tables. Each table is identified by a name (e.g. "Customers" or "Orders"). Tables contain records (rows) with data. Below is an example of a table called "Persons": P_Id LastName FirstName Address City 1 Hansen Ola Timoteivn 10 Sandnes 2 Svendson Tove Borgvn 23 Sandnes 3 Pettersen Kari Storgt 20 Stavanger The table above contains three records (one for each person) and five columns (P_Id, LastName, FirstName, Address, and City).
SQL Statements
Most of the actions you need to perform on a database are done with SQL statements. The following SQL statement will select all the records in the "Persons" table: SELECT * FROM Persons In this tutorial we will teach you all about the different SQL statements.
Keep in Mind That...
SQL is not case sensitive
Semicolon after SQL Statements?
Some database systems require a semicolon at the end of each SQL statement. Semicolon is the standard way to separate each SQL statement in database systems that allow more than one SQL statement to be executed in the same call to the server. We are using MS Access and SQL Server 2000 and we do not have to put a semicolon after each SQL statement, but some database programs force you to use it.
SQL DML and DDL
SQL can be divided into two parts: The Data Manipulation Language (DML) and the Data Definition Language (DDL). The query and update commands form the DML part of SQL:
SELECT - extracts data from a database UPDATE - updates data in a database DELETE - deletes data from a database INSERT INTO - inserts new data into a database
The DDL part of SQL permits database tables to be created or deleted. It also defines indexes (keys), specifies links between tables, and imposes constraints between tables. The most important DDL statements in SQL are:
CREATE DATABASE - creates a new database ALTER DATABASE - modifies a database CREATE TABLE - creates a new table ALTER TABLE - modifies a table DROP TABLE - deletes a table CREATE INDEX - creates an index (search key) DROP INDEX - deletes an index
SQL SELECT Statement
Previous Next Chapter
This chapter will explain the SELECT and the SELECT * statements.
The SQL SELECT Statement
The SELECT statement is used to select data from a database. The result is stored in a result table, called the result-set.
SQL SELECT Syntax SELECT column_name(s) FROM table_name
and
SELECT * FROM table_name
Note: SQL is not case sensitive. SELECT is the same as select.
An SQL SELECT Example
The "Persons" table:
P_Id LastName FirstName Address 1 2 3 Hansen Ola City
Timoteivn 10 Sandnes Borgvn 23 Storgt 20 Sandnes Stavanger
Svendson Tove Pettersen Kari
Now we want to select the content of the columns named "LastName" and "FirstName" from the table above. We use the following SELECT statement:
SELECT LastName,FirstName FROM Persons
The result-set will look like this:
LastName FirstName Hansen Ola
Svendson Tove Pettersen Kari
SELECT * Example
Now we want to select all the columns from the "Persons" table. We use the following SELECT statement:
SELECT * FROM Persons
Tip: The asterisk (*) is a quick way of selecting all columns! The result-set will look like this:
P_Id LastName FirstName Address 1 2 3 Hansen Ola City
Timoteivn 10 Sandnes Borgvn 23 Storgt 20 Sandnes Stavanger
Svendson Tove Pettersen Kari
Navigation in a Result-set
Most database software systems allow navigation in the result-set with programming functions, like: Move-To-First-Record, Get-Record-Content, Move-To-Next-Record, etc. Programming functions like these are not a part of this tutorial. To learn about accessing data with function calls, please visit our ADO tutorial or our PHP tutorial.
SQL SELECT DISTINCT Statement
Previous
Next Chapter
This chapter will explain the SELECT DISTINCT statement.
The SQL SELECT DISTINCT Statement
In a table, some of the columns may contain duplicate values. This is not a problem, however, sometimes you will want to list only the different (distinct) values in a table. The DISTINCT keyword can be used to return only distinct (different) values.
SQL SELECT DISTINCT Syntax SELECT DISTINCT column_name(s) FROM table_name
SELECT DISTINCT Example
The "Persons" table:
P_Id LastName FirstName Address 1 2 3 Hansen Ola City
Timoteivn 10 Sandnes Borgvn 23 Storgt 20 Sandnes Stavanger
Svendson Tove Pettersen Kari
Now we want to select only the distinct values from the column named "City" from the table above. We use the following SELECT statement:
SELECT DISTINCT City FROM Persons
The result-set will look like this:
City Sandnes Stavanger
SQL WHERE Clause
Previous Next Chapter
The WHERE clause is used to filter records.
The WHERE Clause
The WHERE clause is used to extract only those records that fulfill a specified criterion.
SQL WHERE Syntax SELECT column_name(s) FROM table_name WHERE column_name operator value
WHERE Clause Example
The "Persons" table:
P_Id LastName FirstName Address 1 2 3 Hansen Ola City
Timoteivn 10 Sandnes Borgvn 23 Storgt 20 Sandnes Stavanger
Svendson Tove Pettersen Kari
Now we want to select only the persons living in the city "Sandnes" from the table above. We use the following SELECT statement:
SELECT * FROM Persons WHERE City='Sandnes'
The result-set will look like this:
P_Id LastName FirstName Address 1 2 Hansen Ola City
Timoteivn 10 Sandnes Borgvn 23 Sandnes
Svendson Tove
Quotes Around Text Fields
SQL uses single quotes around text values (most database systems will also accept double quotes). However, numeric values should not be enclosed in quotes. For text values:
This is correct: SELECT * FROM Persons WHERE FirstName='Tove' This is wrong: SELECT * FROM Persons WHERE FirstName=Tove
For numeric values:
This is correct: SELECT * FROM Persons WHERE Year=1965 This is wrong:
SELECT * FROM Persons WHERE Year='1965'
Operators Allowed in the WHERE Clause
With the WHERE clause, the following operators can be used:
Operator = <> > < >= <= Equal Not equal Greater than Less than Greater than or equal Less than or equal Description
BETWEEN Between an inclusive range LIKE IN Search for a pattern To specify multiple possible values for a column
Note: In some versions of SQL the <> operator may be written as !=
SQL AND & OR Operators
Previous Next Chapter
The AND & OR operators are used to filter records based on more than one condition.
The AND & OR Operators
The AND operator displays a record if both the first condition and the second condition are true. The OR operator displays a record if either the first condition or the second condition is true.
AND Operator Example
The "Persons" table: P_Id LastName FirstName Address City 1 Hansen Ola Timoteivn 10 Sandnes 2 Svendson Tove Borgvn 23 Sandnes 3 Pettersen Kari Storgt 20 Stavanger Now we want to select only the persons with the first name equal to "Tove" AND the last name equal to "Svendson": We use the following SELECT statement: SELECT * FROM Persons WHERE FirstName='Tove' AND LastName='Svendson' The result-set will look like this: P_Id LastName FirstName Address City 2 Svendson Tove Borgvn 23 Sandnes
OR Operator Example
Now we want to select only the persons with the first name equal to "Tove" OR the first name equal to "Ola": We use the following SELECT statement: SELECT * FROM Persons WHERE FirstName='Tove' OR FirstName='Ola'
The result-set will look like this: P_Id LastName FirstName Address City 1 Hansen Ola Timoteivn 10 Sandnes 2 Svendson Tove Borgvn 23 Sandnes
Combining AND & OR
You can also combine AND and OR (use parenthesis to form complex expressions). Now we want to select only the persons with the last name equal to "Svendson" AND the first name equal to "Tove" OR to "Ola": We use the following SELECT statement: SELECT * FROM Persons WHERE LastName='Svendson' AND (FirstName='Tove' OR FirstName='Ola') The result-set will look like this: P_Id LastName FirstName Address City 2 Svendson Tove Borgvn 23 Sandnes
SQL ORDER BY Keyword
Previous Next Chapter
The ORDER BY keyword is used to sort the result-set.
The ORDER BY Keyword
The ORDER BY keyword is used to sort the result-set by a specified column. The ORDER BY keyword sorts the records in ascending order by default.
If you want to sort the records in a descending order, you can use the DESC keyword.
SQL ORDER BY Syntax SELECT column_name(s) FROM table_name ORDER BY column_name(s) ASC|DESC
ORDER BY Example
The "Persons" table:
P_Id LastName FirstName Address 1 2 3 4 Hansen Ola City
Timoteivn 10 Sandnes Borgvn 23 Storgt 20 Vingvn 23 Sandnes Stavanger Stavanger
Svendson Tove Pettersen Kari Nilsen Tom
Now we want to select all the persons from the table above, however, we want to sort the persons by their last name. We use the following SELECT statement:
SELECT * FROM Persons ORDER BY LastName
The result-set will look like this:
P_Id LastName FirstName Address 1 4 3 Hansen Nilsen Ola Tom City
Timoteivn 10 Sandnes Vingvn 23 Storgt 20 Stavanger Stavanger
Pettersen Kari
Svendson Tove
Borgvn 23
Sandnes
ORDER BY DESC Example
Now we want to select all the persons from the table above, however, we want to sort the persons descending by their last name. We use the following SELECT statement:
SELECT * FROM Persons ORDER BY LastName DESC
The result-set will look like this:
P_Id LastName FirstName Address 2 3 4 1 Svendson Tove Pettersen Kari Nilsen Hansen Tom Ola Borgvn 23 Storgt 20 Vingvn 23 City Sandnes Stavanger Stavanger
Timoteivn 10 Sandnes