In this shot, we learn about logical operators in SQL and test our understanding with some quizzes.
The main purpose of logical operators is to test for the correctness of some conditions.
Let’s learn about the following logical operators:
LIKE
IN
NOT
LIKE
logical operatorThe LIKE
operator is very useful when we’re working with text. We use it within a WHERE
clause.
The LIKE
operator is frequently used with the wildcard %
, which means any number of characters. For example, %Abel%
means, it can start with any number of characters, it must contain Abel, and it can have any number of characters at the end.
Wildcard | Description | Example |
---|---|---|
% | Any string of zero or more characters | WHERE fullName LIKE '%Lifaefi%' finds all students with the word “Lifaefi” anywhere in their full name. |
_ (underscore) | Any single character | WHERE firstName LIKE '_oel' finds all four-lettered first names that end with “oel” (Noel, Joel, etc.). |
[] | Any single character within the specified range ([a-d]) or set ([abcd]) | WHERE name LIKE '[B-K]en' finds usernames that end with “en” and start with any single character between B and K (Ben, Ken, etc.). |
[^] | Any single character not within the specified range ([^a-d]) or set ([^abcd]) | WHERE firstName LIKE '%[^i]el' finds first names of all students that with “el” and where the following letter isn’t “i” (Gael, Abel, Joel, etc.). |
Let’s consider the Student
table below:
ID | Full name | College |
---|---|---|
1 | Abel Lifaefi Mbula | ICT |
2 | Sarah Lifaefi Masika | Engeniring |
3 | Patience Kavira Kahola | Biodiversity |
4 | Jean-Pierre Badibanga | Arts |
5 | Joseph Lifaefi Kambale | Agronomy |
6 | Norbert Lifaefi Kakule | Building |
7 | Abel Kahola Mbula | ICT |
8 | Jean-Marie Lifaefi Nasibu | ICT |
Let’s select all students whose middle name is “Lifaefi.”
SELECT * FROM Student WHERE fullName LIKE '%Lifaefi%';
Here’s the result:
ID | Full name | College |
---|---|---|
1 | Abel Lifaefi Mbula | ICT |
2 | Sarah Lifaefi Masika | Engeniring |
5 | Joseph Lifaefi Kambale | Agronomy |
6 | Norbert Lifaefi Kakule | Building |
8 | Jean-Marie Lifaefi Nasibu | ICT |
Now that you understand the logical operator LIKE
, try to answer the questions below.
Note: You are required to use the
Student
table.
IN
logical operatorWe use the IN
operator to filter data based on several possible values. We can see it like =
, but for more than one item of that particular column.
The IN
operator allows us to check one, two, or many column values for which we want to pull data within the same query. Each distinct value is separated with a comma (,
).
Note:
IN
works both for numbers and text.
Given the Student
table above, let’s find all information regarding students who study ICT or Biodiversity.
SELECT *FROM StudentWHERE college IN ('ICT', 'Biodiversity');
Here’s the result:
ID | Full name | College |
---|---|---|
1 | Abel Lifaefi Mbula | ICT |
3 | Patience Kavira Kahola | Biodiversity |
7 | Abel Kahola Mbula | ICT |
8 | Jean-Marie Lifaefi Nasibu | ICT |
Consider the Accounts
table below:
ID | Name | Person | Sales_ID |
---|---|---|---|
1 | Exxon Mobile | Abel Lifaefi | 1001 |
2 | Apple | Yves Madika | 1011 |
3 | Microsoft | Patience Kavira | 1021 |
4 | AT&T | Sarah Lifaefi | 1031 |
5 | General ELectric | Valentin Nasibu | 1041 |
6 | Verizon | Gisel Kabamba | 1051 |
7 | Amazon | Pierre-Etienne Etukumalo | 1061 |
Find the account “Name,” “Person,” and "Sales_ID` for Apple, Microsoft, and Verizon.
NOT
The NOT
operator is used to find the inverse results for LIKE
, IN
, and similar operators.
Considering the Accounts
table above, let’s find the account name
, person
, and sales_id
for companies other than Apple, Microsoft, and Verizon.
SELECT name, person, sales_idFROM accountsWHERE name NOT IN ('Apple', 'Microsoft', 'Verizon');
Here is the result:
Name | Person | Sales_ID |
---|---|---|
Exxon Mobile | Abel Lifaefi | 1001 |
AT&T | Sarah Lifaefi | 1031 |
General Electric | Valentin Nasibu | 1041 |
Amazon | Pierre-Etienne Etukumalo | 1061 |
Now, try to answer the questions below:
Note: You are required to use the
Student
table.
Let’s recap.
Logical operators allow us to perform operations similar to using WHERE
and =
, but for specific cases:
LIKE
: It is used for cases when we might not know exactly what we are looking for.
IN
: It is used for more than one condition.
NOT
: It is used with the two operators above, and helps us negate the query result easily.
Happy coding!