Skip to content

KoddQL Tutorial

NynrahGhost edited this page Mar 20, 2021 · 13 revisions

Table of Contents

Selecting data

All selection queries must end with forwarding operator (->) pointing to RESULT constant.

Plain selection

To select all data from the table, you need to just specify table's name and forward it to RESULT.

table -> RESULT

Projection

If you only need a part of table's columns, you can apply projection.

table [field1, field2] -> RESULT

Restriction

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

List of operations:

  • Comparisions
    • (>, <, ==, <>, >=, <=)
  • Arithmethic
    • (+, -, *, /, %)
  • Logical
    • (&, |, ^)
  • Grouping
    • ( "expr0" θ ("expr1" θ "expr2") )
  • Similarity
    • Like ("string" ~ "wildcard")
    • In range ("number" ~ "lower limit" & "higher limit")
  • Relational division
    • ( : )

Join

To select data from multiple tables, you need to join them beforehand.

Note: You can access tables' columns by using L and R constants.

Cross join

tableLeft X tableRight -> RESULT

Natural join

tableLeft [] tableRight -> RESULT

Inner join

portfolio_view

tableLeft <[L.field θ R.field]> tableRight -> RESULT

Left inner join

portfolio_view

tableLeft >[L.field θ R.field] tableRight -> RESULT

Right inner join

portfolio_view

tableLeft [L.field θ R.field]< tableRight -> RESULT

Left outer join

portfolio_view

tableLeft [L.field θ R.field]> tableRight -> RESULT

Right outer join

portfolio_view

tableLeft <[L.field θ R.field] tableRight -> RESULT

Exclusive outer join

portfolio_view

tableLeft >[L.field θ R.field]< tableRight -> RESULT

Full outer join

portfolio_view

tableLeft [L.field θ R.field] tableRight -> RESULT

Equijoin

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

Tips on join

To join more then two tables, you need to join them consequently:

tableFirst [L.field θ R.field] tableSecond [L.field θ R.field] tableThird ... -> RESULT

Set operations

Union

tableLeft UNION tableRight -> RESULT
tableLeft | tableRight -> RESULT

Intersection

tableLeft INTERSECTION tableRight -> RESULT
tableLeft & tableRight -> RESULT

Difference

tableLeft COMPLEMENT tableRight -> RESULT
tableLeft \ tableRight -> RESULT

Symmetric difference

tableLeft DIFFERENCE tableRight -> RESULT
tableLeft ^ tableRight -> RESULT

Updating data

Removing data

Editing table

Editing database

General

Temporary variables

Temporary renaming

Clone this wiki locally