27 SQL WHERE
| Operators (Predicates) | Definition |
|---|---|
| = | Equal |
| <> != | Not Equals |
| > < | greater, lesser |
| >= <= | greater or equal, lesser or equal |
| AND | logical AND |
| OR | logical OR |
| NOT | logical NOT |
| BETWEEN | Between given 2 values, limits are included |
| LIKE | Is given pattern in the string (wildcard are included) |
27.1 Examples
Chinook
select * from Employee where EmployeeId = 5;select * from Employee where EmployeeId != 5;select * from Employee where EmployeeId <> 5;select * from Employee where EmployeeId < 5;select * from Employee where EmployeeId <= 5;select * from Employee where EmployeeId > 5;select * from Employee where EmployeeId >= 5;27.2 logical operators
- AND
- OR
- NOT
| p | q | p AND q |
|---|---|---|
| T | T | T |
| T | F | F |
| F | T | F |
| F | F | F |
| p | q | p OR q |
|---|---|---|
| T | T | T |
| T | F | T |
| F | T | T |
| F | F | F |
27.3 IN Operator
select * from Employee where EmployeeId IN (2,5,9); 27.4 Between operator
27.5 LIKE Operator
We use the so called wild cards while searching. The characters % and _ are supported by almost all databases while others are supported less.
| Symbol | Description | Oracle | Sql Server | sqlite |
|---|---|---|---|---|
| % | zero or more characters | ✓ | ✓ | ✓ |
| _ | a single character | ✓ | ✓ | ✓ |
| [] | any single character within the brackets | ❌ | ✓ | ❌ |
| ^ | any character not in the brackets | ❌ | ✓ | ❌ |
| - | any single character within the specified range | ❌ | ✓ | ❌ |
examples in Chinook
SELECT * from Customer c WHERE C.FirstName LIKE 'L%';SELECT * from Customer c WHERE C.FirstName LIKE 'Lu_s'Works in SQL Server
SELECT * from Customer c WHERE C.Address LIKE '%[12]%'-- second character is a
SELECT * from Customer c WHERE C.FirstName LIKE '_[a]%'
-- second character is NOT a
--SELECT * from Customer c WHERE C.FirstName LIKE '_[^a]%'27.6 Chaining of conditions
Use parentheses when you need to chain more than 3 conditions. Like mathematics, parentheses change the order of operations.
(2+3)*5
2+3*5