SQL WHERE - SQL Tutorial
The SQL WHERE clause is used to select data conditionally, by adding it to already existing SQL SELECT query. We are going to use the Customers table from the previous chapter, to illustrate the use of the SQL WHERE command.
Table: Customers
FirstName | LastName | DOB | Phone | |
John | Smith | John.Smith@yahoo.com | 2/4/1968 | 626 222-2222 |
Steven | Goldfish | goldfish@fishhere.net | 4/4/1974 | 323 455-4545 |
Paula | Brown | pb@herowndomain.org | 5/24/1978 | 416 323-3232 |
James | Smith | jim@supergig.co.uk | 20/10/1980 | 416 323-8888 |
If we want to select all customers from our database table, having last name 'Smith' we need to use the following SQL syntax:
SELECT * FROM Customers WHERE LastName = 'Smith' |
The result of the SQL expression above will be the following:
FirstName | LastName | DOB | Phone | |
John | Smith | John.Smith@yahoo.com | 2/4/1968 | 626 222-2222 |
James | Smith | jim@supergig.co.uk | 20/10/1980 | 416 323-8888 |
In this simple SQL query we used the "=" (Equal) operator in our WHERE criteria:
LastName = 'Smith'
But we can use any of the following comparison operators in conjunction with the SQL WHERE clause:
<> (Not Equal)
SELECT * FROM Customers WHERE LastName <> 'Smith' |
> (Greater than)
SELECT * FROM Customers WHERE DOB > '1/1/1970' |
>= (Greater or Equal)
SELECT * FROM Customers WHERE DOB >= '1/1/1970' |
< (Less than)
SELECT * FROM Customers WHERE DOB < '1/1/1970' |
<= (Less or Equal)
SELECT * FROM Customers WHERE DOB =< '1/1/1970' |
LIKE (similar to)
SELECT * FROM Customers WHERE Phone LIKE '626%' |
Note the LIKE syntax is different with the different RDBMS (SQL Server syntax used above). Check the SQL LIKE article for more details.
Between (Defines a range)
SELECT * FROM Customers WHERE DOB BETWEEN '1/1/1970' AND '1/1/1975' |