WHERE
We learned how to get specific columns using SELECT
.
What if we're looking for specific rows?
That is what the WHERE
clause is for.
SELECT *
FROM daters
WHERE eye_color = 'brown';
name VARCHAR | height_cm INTEGER | eye_color VARCHAR |
---|---|---|
Ray | 180 | brown |
Claude | 156 | brown |
Anita | 188 | brown |
Visually, it looks like this:
The expression of the WHERE
clause tells us which rows we want.
This expression has a special constraint.
The WHERE
expression must be a BOOL
type, which is short for "boolean".
A boolean is 1 of 2 possible values: TRUE
and FALSE
(or 0
and 1
if you prefer numbers).
A boolean
can be created literally with the keywords TRUE
and FALSE
.
SELECT
TRUE AS true_literal,
FALSE AS false_literal;
true_literal BOOL | false_literal BOOL |
---|---|
TRUE | FALSE |
They can also be created by comparing values using operators.
SELECT
2 + 2 = 4 AS something_true,
2 + 2 = 3 AS something_false;
something_true BOOL | something_false BOOL |
---|---|
TRUE | FALSE |
Most of the time, these comparisons are used in a WHERE
clause.
The WHERE
expression is evaluated per row, and if it outputs TRUE
for a row, the row is kept in the result.
Let's try this out in a challenge!