# Basic Expressions and Operators¶

These building blocks are split into arithmetic and boolean expressions and operators.

## Arithmetic Expressions and Operators¶

A SQL developer can use arithmetic operators to construct arithmetic expressions. For instance, `10 + 5` is an expression that has two operands (`10` and `5`) with the addition operator (`+`) in between them, which is referred to as infix position. Another possible position is postfix, which applies, for instance, to the factorial operation, like `10!`. Finally, the prefix position is used by, for instance, the bitwise NOT operator, such as `~1`.

The following table shows the basic operators that ODAS supports.

Operator Position Description
`*` Infix Multiply operator
`/` Infix Division operator
`%` Infix Module operator
`DIV` Infix Integer division operator
`+` Infix Addition operator
`-` Infix Subtraction operator
`!` Postfix Factorial operator
`&` Infix Bitwise AND operator
`|` Infix Bitwise OR operator
`^` Infix Bitwise XOR operator
`~` Prefix Bitwise NOT operator

Example: Simple arithmetic expressions

``````> select 10 * 10;
100

> select 10!;
3628800

> SELECT 5 & ~1;
4
``````

SQL is quite limited in its available operators, but is commonly extended to more complex ones using functions.

## Boolean Expressions and Operators¶

In Boolean algebra, instead of using numbers, the allowed values are only `true` and `false`. The ODAS supported Boolean operator are shown in the following table, using the same position notation as explained in the previous section.

Operator Position Description
`AND` Infix Boolean AND operator
`OR` Infix Boolean OR operator
`NOT` Prefix Boolean NOT operator

Example: Boolean expressions

``````> SELECT true AND true;
true

> SELECT true AND false;
false

> SELECT (10 < 100) AND ("foo" = "foo");
true
``````