A PostgreSQL Boolean type can store three values: true, false, and NULL (unknown).
Click to reveal answer
beginner
How does PostgreSQL interpret the string 't' when cast to Boolean?
PostgreSQL interprets the string 't' as true when cast to Boolean.
Click to reveal answer
intermediate
What happens when you use a Boolean column in a WHERE clause in PostgreSQL?
The WHERE clause treats true as passing the condition, false as failing, and NULL as unknown, so rows with NULL in that column are excluded unless explicitly handled.
Click to reveal answer
intermediate
Can you use Boolean values in arithmetic operations in PostgreSQL?
No, Boolean values cannot be directly used in arithmetic operations. You must cast them to integers (true = 1, false = 0) first.
Click to reveal answer
beginner
How do you explicitly cast a Boolean to text in PostgreSQL?
Use the CAST operator or :: syntax, for example: SELECT true::text; returns 't'.
Click to reveal answer
Which of these is NOT a valid Boolean literal in PostgreSQL?
A'xyz'
B'true'
C'f'
D'false'
✗ Incorrect
PostgreSQL accepts 'true', 'false', 't', 'f' as Boolean literals, but 'xyz' is not recognized as a Boolean.
What does the expression SELECT NULL::boolean; return?
AError
Bfalse
Ctrue
DNULL
✗ Incorrect
Casting NULL to boolean results in NULL, representing an unknown Boolean value.
In a WHERE clause, what happens to rows where the Boolean column is NULL?
AThey are excluded
BThey are included
CThey cause an error
DThey are converted to false
✗ Incorrect
Rows with NULL in a Boolean column are excluded because NULL means unknown, which does not satisfy the WHERE condition.
How can you convert a Boolean true to integer 1 in PostgreSQL?
Atrue * 1
Btrue + 1
CCAST(true AS integer)
Dtrue::text
✗ Incorrect
You must explicitly cast Boolean to integer using CAST or :: syntax; arithmetic operations on Boolean are not allowed.
Which of these is the correct way to cast Boolean false to text?
ACAST(false AS integer)
Bfalse::text
CCAST(false AS boolean)
Dfalse + ''
✗ Incorrect
Casting Boolean false to text uses false::text or CAST(false AS text).
Explain how PostgreSQL handles Boolean values and their behavior in queries.
Think about how true, false, and NULL affect filtering and casting.
You got /4 concepts.
Describe how to convert Boolean values to other types in PostgreSQL and why it might be necessary.
Consider when you want to display or calculate with Boolean values.
You got /4 concepts.
Practice
(1/5)
1. In PostgreSQL, which of the following is a valid boolean value stored in a boolean column?
easy
A. TRUE
B. 2
C. 'foo'
D. 'NULL'
Solution
Step 1: Understand boolean data type values
PostgreSQL boolean columns accept TRUE, FALSE, or NULL (unknown).
Step 2: Identify valid boolean literals
TRUE and FALSE are valid boolean literals; 2, 'foo', and 'NULL' are not valid boolean literals in PostgreSQL.
Final Answer:
TRUE -> Option A
Quick Check:
Boolean values = TRUE or FALSE [OK]
Hint: Boolean columns accept TRUE, FALSE, or NULL only [OK]
Common Mistakes:
Using 1 or 0 as boolean values directly
Using strings like 'yes' or 'no' as boolean
Confusing NULL with a boolean TRUE or FALSE
2. Which of the following is the correct way to declare a boolean column named is_active in a PostgreSQL table?
easy
A. CREATE TABLE users (is_active BOOLEAN(1));
B. CREATE TABLE users (is_active BOOLEAN);
C. CREATE TABLE users (is_active BOOL(1));
D. CREATE TABLE users (is_active BOOLIAN);
Solution
Step 1: Check correct boolean type syntax
PostgreSQL uses BOOLEAN or BOOL as valid types; BOOLEAN(1) is invalid.
Step 2: Identify syntax errors
A uses invalid BOOLEAN(1) syntax; B has a typo 'BOOLIAN'; C uses invalid BOOL(1) syntax.
Final Answer:
CREATE TABLE users (is_active BOOLEAN); -> Option B
Quick Check:
BOOLEAN keyword is correct type [OK]
Hint: Use BOOLEAN or BOOL, no size or typo allowed [OK]
Common Mistakes:
Typo in BOOLEAN keyword
Adding size like BOOLEAN(1)
Using unsupported types like BOOLIAN
3. Given the table settings with a boolean column enabled, what will this query return?
SELECT enabled FROM settings WHERE enabled = FALSE;
medium
A. All rows where enabled is TRUE
B. All rows where enabled is NULL
C. All rows where enabled is FALSE
D. Syntax error
Solution
Step 1: Understand the WHERE clause condition
The query filters rows where the boolean column enabled equals FALSE.
Step 2: Determine which rows match
Only rows with enabled = FALSE will be returned; TRUE or NULL rows are excluded.
Final Answer:
All rows where enabled is FALSE -> Option C
Quick Check:
WHERE enabled = FALSE returns FALSE rows [OK]
Hint: WHERE boolean_column = FALSE returns only FALSE rows [OK]
Common Mistakes:
Assuming NULL rows are included
Confusing TRUE and FALSE values
Thinking it returns all rows
4. You wrote this query but it returns no rows:
SELECT * FROM users WHERE is_admin = TRUE;
The is_admin column is boolean but some rows have NULL. What is the likely issue?
medium
A. TRUE is not a valid boolean value in PostgreSQL
B. The query syntax is incorrect
C. The column should be text, not boolean
D. NULL values cause the condition to fail, so no rows with NULL appear
Solution
Step 1: Understand boolean NULL behavior in WHERE clause
Comparing boolean column to TRUE excludes NULL rows because NULL means unknown, not TRUE.
Step 2: Explain why no rows returned
Rows with NULL in is_admin do not satisfy is_admin = TRUE, so they are excluded.
Final Answer:
NULL values cause the condition to fail, so no rows with NULL appear -> Option D
Quick Check:
NULL in boolean = TRUE returns no rows [OK]
Hint: NULL in boolean columns excludes rows in equality checks [OK]
Common Mistakes:
Thinking NULL equals TRUE
Assuming TRUE is invalid boolean
Believing syntax error caused no rows
5. You want to select all rows from tasks where the boolean column completed is either FALSE or NULL. Which query correctly does this?
hard
A. SELECT * FROM tasks WHERE completed = FALSE OR completed IS NULL;
B. SELECT * FROM tasks WHERE completed = FALSE AND completed IS NULL;
C. SELECT * FROM tasks WHERE NOT completed;
D. SELECT * FROM tasks WHERE completed != TRUE;
Solution
Step 1: Understand boolean NULL and FALSE filtering
To get rows where completed is FALSE or NULL, use OR with completed = FALSE and completed IS NULL.
Step 2: Analyze each option
SELECT * FROM tasks WHERE completed = FALSE AND completed IS NULL; uses AND, which cannot be both FALSE and NULL simultaneously. SELECT * FROM tasks WHERE NOT completed; excludes NULL rows. SELECT * FROM tasks WHERE completed != TRUE; excludes TRUE and NULL (since NULL != TRUE is unknown), includes only FALSE.
Final Answer:
SELECT * FROM tasks WHERE completed = FALSE OR completed IS NULL; -> Option A
Quick Check:
Use OR to include FALSE or NULL rows [OK]
Hint: Use OR with IS NULL to include unknown boolean values [OK]
Common Mistakes:
Using AND instead of OR
Ignoring NULL rows in boolean filters
Using NOT completed excludes NULL rows
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.