Repository navigation
KoddQL Tutorial
All selection queries must end with forwarding operator (->) pointing to RESULT constant.
To select all data from the table, you need to just specify table's name and forward it to RESULT.
| table | -> | RESULT |
|---|
If you only need a part of table's columns, you can apply projection.
| table | [field1, field2] | -> | RESULT |
|---|
To select data by criteria, you need to use restriction.
Only those rows that match the condition will be returned.
Note: You are not limited to only one expression, you can unite multiple by using logical operators between them.
| table | [field1 θ field2] | -> | RESULT |
|---|
- Comparisions
- (>, <, ==, <>, >=, <=)
- Arithmethic
- (+, -, *, /, %)
- Logical
- (&, |, ^)
- Grouping
- ( "expr0" θ ("expr1" θ "expr2") )
- Similarity
- Like ("string" ~ "wildcard")
- In range ("number" ~ "lower limit" & "higher limit")
- Relational division
- ( : )
To select data from multiple tables, you need to join them beforehand.
Note: You can access tables' columns by using L and R constants.
| tableLeft | X | tableRight | -> | RESULT |
|---|
| tableLeft | [] | tableRight | -> | RESULT |
|---|
| tableLeft | <[L.field θ R.field]> | tableRight | -> | RESULT |
|---|
| tableLeft | >[L.field θ R.field] | tableRight | -> | RESULT |
|---|
| tableLeft | [L.field θ R.field]< | tableRight | -> | RESULT |
|---|
| tableLeft | [L.field θ R.field]> | tableRight | -> | RESULT |
|---|
| tableLeft | <[L.field θ R.field] | tableRight | -> | RESULT |
|---|
| tableLeft | >[L.field θ R.field]< | tableRight | -> | RESULT |
|---|
| tableLeft | [L.field θ R.field] | tableRight | -> | RESULT |
|---|
Equijoin differs from normal join by only using equality comparision as it's criteria.
As such, equijoins are specified by a list of column names, by which tables will be joined.
Every type of inner and outer joins have their respective equijoin versions.
| tableLeft | [field0, field1] | tableRight | -> | RESULT |
|---|
To join more then two tables, you need to join them consequently:
| tableFirst | [L.field θ R.field] | tableSecond | [L.field θ R.field] | tableThird | ... | -> | RESULT |
|---|
| tableLeft | UNION | tableRight | -> | RESULT |
|---|---|---|---|---|
| tableLeft | | | tableRight | -> | RESULT |
| tableLeft | INTERSECTION | tableRight | -> | RESULT |
|---|---|---|---|---|
| tableLeft | & | tableRight | -> | RESULT |
| tableLeft | COMPLEMENT | tableRight | -> | RESULT |
|---|---|---|---|---|
| tableLeft | \ | tableRight | -> | RESULT |
| tableLeft | DIFFERENCE | tableRight | -> | RESULT |
|---|---|---|---|---|
| tableLeft | ^ | tableRight | -> | RESULT |






