Add CREATE TABLE ... AS helper

Signed-off-by: Stephen Celis <stephen@stephencelis.com>
Rename ALTER TABLE ... RENAME helper from alter to rename

Signed-off-by: Stephen Celis <stephen@stephencelis.com>
Add INSERT INTO ... DEFAULT VALUES helpers

Signed-off-by: Stephen Celis <stephen@stephencelis.com>
Add INSERT INTO ... SELECT helpers

Signed-off-by: Stephen Celis <stephen@stephencelis.com>
Cleanup

Signed-off-by: Stephen Celis <stephen@stephencelis.com>
Add temporary, if{Not,}Exists helpers, ADD/DROP VIEW

The naming is kind of ugly, but practical.

    db.create(table: users, temporary: true, ifNotExists: true) { t // ..
    db.create(table: users, temporary: true, ifNotExists: true, from: query)
    db.drop(table: users, ifExists: true)

    db.create(index: users, unique: true, ifNotExists: true, on: email)
    db.drop(index: users, ifExists: true, on: email)

Signed-off-by: Stephen Celis <stephen@stephencelis.com>
Add CREATE/DROP VIEW helpers

Mostly uses reusable logic from the previous commit.

Signed-off-by: Stephen Celis <stephen@stephencelis.com>