Skip to main content

Command Palette

Search for a command to run...

SQL Operators

Published
โ€ข6 min readโ€ขView as Markdown

๐Ÿง  SQL Operators in DQL (Data Query Language)

SQL operators are used inside the SELECT, WHERE, HAVING, and other clauses to filter, compare, or manipulate data.


๐Ÿ”น 1. Comparison Operators

Used to compare one value with another (numbers, text, or dates).

OperatorMeaningExampleResult
=Equal tosalary = 50000salary exactly 50000
!= or <>Not equal tosalary <> 50000salary not 50000
>Greater thansalary > 50000salary more than 50000
<Less thansalary < 50000salary below 50000
>=Greater than or equal tosalary >= 50000salary 50000 or more
<=Less than or equal tosalary <= 50000salary 50000 or less
BETWEENRange check (inclusive)salary BETWEEN 40000 AND 6000040000 โ‰ค salary โ‰ค 60000
INMatches any from listdept_id IN (1,3,5)belongs to dept 1,3,5
NOT INExcludes valuesdept_id NOT IN (2,4)excludes depts 2,4
LIKEPattern matchname LIKE 'S%'names starting with โ€˜Sโ€™
NOT LIKEPattern not matchname NOT LIKE '%a'names not ending with โ€˜aโ€™
IS NULLChecks NULLbonus IS NULLcolumn is empty
IS NOT NULLChecks not nullbonus IS NOT NULLcolumn has a value

๐Ÿ”น 2. Logical Operators

Used to combine multiple conditions in WHERE or HAVING.

OperatorDescriptionExampleMeaning
ANDAll conditions must be truesalary > 50000 AND dept_id = 3both must match
ORAny one condition truesalary > 70000 OR dept_id = 2either condition passes
NOTNegates conditionNOT salary < 50000opposite of condition
ALLCompare with all values in subquerysalary > ALL (SELECT salary FROM interns)salary greater than all interns
ANYCompare with any one valuesalary > ANY (SELECT salary FROM staff)greater than at least one staff
EXISTSChecks if subquery returns rowsEXISTS (SELECT 1 FROM projects WHERE emp_id=e.id)returns true if subquery has result

๐Ÿ”น 3. Arithmetic Operators

Used to perform numeric calculations.

OperatorDescriptionExampleResult
+Additionsalary + bonussum
-Subtractionsalary - deductiondifference
*Multiplicationsalary * 0.110% of salary
/Divisionsalary / 12monthly salary
%Modulus (remainder)id % 2even/odd check

โš™๏ธ Common in calculations inside SELECT or HAVING clauses.


๐Ÿ”น 4. String Operators

Used to manipulate or compare text data.

OperatorExampleDescription
`orCONCAT()`
LIKEname LIKE 'S%'Starts with โ€˜Sโ€™
LOWER(), UPPER()LOWER(name)Change case
TRIM(), LTRIM(), RTRIM()TRIM(name)Remove spaces
SUBSTRING()SUBSTRING(name,1,3)Extract substring
LENGTH() or LEN()LENGTH(name)Count characters

๐Ÿ”น 5. Set Operators

Used to combine results from multiple queries.

OperatorDescriptionExample
UNIONCombines results (removes duplicates)SELECT name FROM emp UNION SELECT name FROM mgr
UNION ALLCombines results (keeps duplicates)SELECT name FROM emp UNION ALL SELECT name FROM mgr
INTERSECTCommon records in bothSELECT dept FROM emp INTERSECT SELECT dept FROM mgr
EXCEPT or MINUSReturns records in first query but not in secondSELECT dept FROM emp EXCEPT SELECT dept FROM mgr

๐Ÿ”น 6. Aggregate / Grouping Functions

Used with DQL for analytics.

FunctionDescriptionExample
COUNT()Count of rowsCOUNT(*)
SUM()TotalSUM(salary)
AVG()AverageAVG(salary)
MAX()Maximum valueMAX(salary)
MIN()Minimum valueMIN(salary)
ROUND()Round off numberROUND(AVG(salary), 2)

Used mostly in SELECT, GROUP BY, and HAVING.


๐Ÿ”น 7. Special Operators (Advanced)

OperatorDescriptionExample
CASEConditional logicCASE WHEN salary>50000 THEN 'HIGH' ELSE 'LOW' END AS Grade
COALESCE()Returns first non-null valueCOALESCE(bonus,0)
NVL()Replaces NULL with valueNVL(bonus,0)
CAST() / CONVERT()Change data typeCAST(salary AS VARCHAR)
NULLIF()Returns NULL if two expressions are equalNULLIF(a,b)

๐Ÿ”น 8. Bitwise Operators (less common in DQL, but used in DB logic)

OperatorDescriptionExample
&Bitwise AND5 & 3 = 1
``Bitwise OR
^Bitwise XOR5 ^ 3 = 6
~Bitwise NOT~5 = -6
<<Left shift5 << 1 = 10
>>Right shift5 >> 1 = 2

๐Ÿ”น 9. Example โ€” Using Multiple Operators Together

SELECT emp_name,
       salary,
       CASE
           WHEN salary BETWEEN 60000 AND 90000 THEN 'MID'
           WHEN salary > 90000 THEN 'HIGH'
           ELSE 'LOW'
       END AS salary_level
FROM employees
WHERE dept_id IN (1,2,3)
  AND (emp_name LIKE 'S%' OR emp_name LIKE 'A%')
  AND salary > 50000
ORDER BY salary DESC;

Explanation:

  • Filters departments 1,2,3

  • Name starts with S or A

  • Salary > 50000

  • Categorizes salary levels dynamically


โœ… Summary

TypeOperators / FunctionsUsed In
Comparison\=, <>, >, <, >=, <=, BETWEEN, IN, LIKE, IS NULLWHERE, HAVING
LogicalAND, OR, NOT, ALL, ANY, EXISTSWHERE, HAVING
Arithmetic+, -, *, /, %SELECT, WHERE
StringLIKE, CONCAT, LENGTH, TRIM, SUBSTRINGSELECT, WHERE
SetUNION, UNION ALL, INTERSECT, EXCEPTCombine queries
AggregateCOUNT, SUM, AVG, MIN, MAXSELECT, GROUP BY
SpecialCASE, COALESCE, CAST, NULLIFSELECT, WHERE
Bitwise&,, ^, ~, <<, >>Numeric conditions