Saturday, November 19, 2011

SQL - WHERE

The WHERE clause is used to select data conditionally, by adding it to already existing 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 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 LIKE article for more details.

Between (Defines a range)

SELECT *
FROM Customers
WHERE DOB BETWEEN '1/1/1970' AND '1/1/1975'

No comments:

Post a Comment