SQL REFERENCE
SQL Quick Reference
Teide provides a comprehensive SQL dialect for querying columnar data. This reference covers all supported SQL features, from basic queries to advanced window functions and set operations.
Feature Overview
| Category | Features | Reference |
|---|---|---|
| Data Types | BOOLEAN, INTEGER, BIGINT, REAL, VARCHAR, DATE, TIME, TIMESTAMP, SYM | Data Types |
| DDL | CREATE TABLE, CREATE TABLE AS SELECT, DROP TABLE | DDL |
| DML | INSERT INTO, UPDATE, DELETE | DML |
| Queries | SELECT, column aliases, DISTINCT, constant expressions | Queries |
| Filtering | WHERE, comparison operators, AND/OR/NOT, BETWEEN, IN, LIKE, IS NULL | Filtering |
| Expressions | Arithmetic, string concatenation, CASE WHEN, CAST, NULL handling | Expressions |
| Aggregation | GROUP BY, SUM, AVG, MIN, MAX, COUNT, HAVING | Aggregation |
| Joins | INNER JOIN, LEFT JOIN, CROSS JOIN | Joins |
| Window Functions | ROW_NUMBER, RANK, DENSE_RANK, NTILE, windowed aggregates, frame specs | Window Functions |
| Sorting & Limits | ORDER BY ASC/DESC, NULLS FIRST/LAST, LIMIT, OFFSET | Sorting & Limits |
| Set Operations | UNION, UNION ALL, INTERSECT, EXCEPT | Set Operations |
| Subqueries | IN/NOT IN subqueries, derived tables, scalar subqueries | Subqueries |
| Scalar Functions | Math, string, conditional, and type conversion functions | Scalar Functions |
Running SQL in Teide JS
All SQL statements are executed through the Context object. You can run queries synchronously or asynchronously:
import { Context } from 'teide-js';
const ctx = new Context();
// Load data from CSV
ctx.sqlSync(`CREATE TABLE sales AS SELECT * FROM read_csv('sales.csv')`);
// Run a query synchronously
const table = ctx.sqlSync(`
SELECT region, SUM(amount) AS total
FROM sales
GROUP BY region
ORDER BY total DESC
`);
// Run a query asynchronously
const result = await ctx.sql(`
SELECT product, AVG(price) AS avg_price
FROM sales
GROUP BY product
HAVING AVG(price) > 100
`);
// Clean up
ctx[Symbol.dispose]();
Conventions Used in This Reference
- SQL keywords are shown in
UPPERCASEfor clarity, but Teide SQL is case-insensitive for keywords. - Identifiers (table and column names) are case-sensitive.
- Optional syntax is enclosed in square brackets:
[OPTIONAL]. - Alternatives are separated by pipes:
option1 | option2. - Ellipsis (
...) indicates repeatable elements.