SQL Tutorial - Learn SQL

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 Email 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 Email 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'