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