There are different interfaces for each type of query. Each of these interfaces have at least a Str sub defined, which is the sub used to convert the object into the actual query. These queries can in turn be used with a database interfacing module, such as DBIish.
subinto(Str:D$table-->self) subrecord(Any:D%record-->self) subrecords(Hash:D@records-->self)subfrom(Str:D$table-->self) subselect(Str:D$column-->self) subselect(Str:D*@columns-->self) subselect-as(Pair:D$column-->self) subselect-as(Pair:D*@columns-->self) subwhere(Str:D$column, Any:D$value-->self) subwhere(Str:D$column, Str:D$check, Any:D$value-->self) suborder-by(Str:D$column, Str:D$direction="ASC"-->self) subskip(Int:D$amount-->self) subtake(Int:D$amount-->self)subtable(Str:D$table-->self) subset(Str:D$column, Any:D$value-->self) subset(Pair:D*@records-->self) subset(Any:D%record-->self) subwhere(Str:D$column, Any:D$value-->self) subwhere(Str:D$column, Str:D$check, Any:D$value-->self)subfrom(Str:D$table-->self) subwhere(Str:D$column, Any:D$value-->self) subwhere(Str:D$column, Str:D$check, Any:D$value-->self)subname(Str:D$table-->self) subprimary-key(Str:D$column-->self) # Column typessubstr(Str:D$name, Int:D:$length=50, Bool:D:$nullable=False, Str:$default-->self) subint(Str:D$name, Bool:D:$nullable=False, Int:$default-->self) subuint(Str:D$name, Bool:D:$nullable=False, Int:$default-->self) subfloat(Str:D$name, Bool:D:$nullable=False, Num:$default-->self) subdate(Str:D$name, Bool:D:$nullable=False, Date:$default-->self)