The AND operator can be used to join two or more conditions in the WHERE clause. Both sides of the AND condition must be true in order for the condition to be met and for those rows to be displayed.
SELECT column1, SUM(column2) FROM "list-of-tables" WHERE "condition1" AND "condition2";
The OR operator can be used to join two or more conditions in the WHERE clause also. However, either side of the OR operator can be true and the condition will be met – hence, the rows will be displayed. With the OR operator, either side can be true or both sides can be true.
SELECT employeeid, firstname, lastname, title, salary FROM employee_info WHERE salary >= 45000.00 AND title = 'Programmer';
This statement will select the employeeid, firstname, lastname, title, and salary from the employee_info table where the salary is greater than or equal to 50000.00 AND the title is equal to ‘Programmer’. Both of these conditions must be true in order for the rows to be returned in the query. If either is false, then it will not be displayed.
Although they are not required, you can use parentheses around your conditional expressions to make it easier to read:
SELECT employeeid, firstname, lastname, title, salary FROM employee_info WHERE (salary >= 45000.00) AND (title = 'Programmer');
SELECT firstname, lastname, title, salary FROM employee_info WHERE (title = 'Sales') OR (title = 'Programmer');
This statement will select the firstname, lastname, title, and salary from the employee_info table where the title is either equal to ‘Sales’ OR the title is equal to ‘Programmer’.
|Use these tables for the exercises|
- Select the customerid, order_date, and item from the items_ordered table for all items unless they are ‘Snow Shoes’ or if they are ‘Ear Muffs’. Display the rows as long as they are not either of these two items.
SELECT customerid, order_date, item FROM items_ordered WHERE (item <> 'Snow shoes') AND (item <> 'Ear muffs');
Note: Yes, that is correct, you do want to use an AND here. If you were to use an OR here, then either side of the OR will be true, and EVERY row will be displayed. For example, when it encounters ‘Ear muffs’, it will evaluate to True since ‘Ear muffs’ are not equal to ‘Snow shoes’.
- Select the item and price of all items that start with the letters ‘S’, ‘P’, or ‘F’.
SELECT item, price FROM items_ordered WHERE (item LIKE 'S%') OR (item LIKE 'P%') OR (item LIKE 'F%');
Results will be displayed here