sqlexpr
  • About
    • Authors
    • License
  • Getting Started
    • Purpose
    • Real-World Example
    • Design
    • Installation
    • Basic Usage
    • Comments
    • Executing Queries
    • Parameter Styles
  • SELECT Queries
    • Basic Select
    • Multiple Columns
    • DISTINCT
    • Tables and Joins
    • WHERE Clause
    • GROUP BY and HAVING
    • ORDER BY, LIMIT, OFFSET
    • WINDOW Clauses
    • Common Table Expressions (WITH)
    • UNION and Set Operations
    • SELECT INTO
    • FETCH
    • FOR UPDATE / Locking
    • Subqueries
  • INSERT Queries
    • Basic Insert
    • Multiple Columns (kwargs)
    • Columns and Values
    • Values Only
    • DEFAULT VALUES
    • Multiple Rows
    • INSERT from SELECT
    • Table Alias
    • ON CONFLICT (Upsert)
    • WITH Clause
    • RETURNING
  • UPDATE Queries
    • Basic Update
    • Multiple Assignments
    • Column-List Syntax
    • FROM Clause
    • UPDATE ONLY
    • WITH Clause
    • RETURNING
  • DELETE Queries
    • Basic Delete
    • Delete All Rows
    • RETURNING
    • USING
    • DELETE ONLY
    • WITH Clause
  • CREATE TABLE Queries
    • Basic Table
    • IF NOT EXISTS
    • UNLOGGED
    • TEMPORARY
    • Table Constraints
    • LIKE
    • INHERITS
    • PARTITION BY
    • TABLESPACE
  • DROP TABLE
    • Basic Drop
    • IF EXISTS
    • Multiple Tables
    • CASCADE
  • CREATE INDEX
    • Basic Index
    • Unique Index
    • INCLUDE
    • USING (Index Method)
    • Partial Index (WHERE)
    • CONCURRENTLY
    • Expression Index
    • Storage Parameters
    • TABLESPACE
    • NULLS NOT DISTINCT
    • Column Options
  • BULK COPY
    • Basic Usage
    • NULL Values
    • Escaping
    • Row Count
  • Expressions
    • SqlTerm
    • SqlAnd / SqlOr
    • SqlValue
    • SqlCat
    • SqlColumn
  • Formatting
    • Basic Usage
    • Options
    • Line Wrapping
    • Parameter Styles
      • format (%s) — PG, MYSQL, MSSQL
      • qmark (?) — SQLITE
      • named (:name) — ORACLE
      • numeric (:1, :2) — ORACLE
      • pyformat (%(name)s) — PG, MYSQL
      • Named Parameter Deduplication
    • Template Mode
      • Positional template
      • Named template
  • Supporting Multiple SQL Dialects
    • Available Dialects
    • Usage
    • Design Principles
    • Placeholder Styles
    • Dialect-Specific Features
    • Adding a New Dialect
    • Module Structure
  • API Reference
    • Dialect Classes
      • Common Attributes
      • PG
      • MYSQL
      • SQLITE
      • ORACLE
      • MSSQL
    • Class Hierarchy
      • SqlParam
        • SqlParam
      • SqlObj
        • SqlObj
      • SqlStatement
        • SqlStatement
      • Interaction with SqlFormat
      • Parameter Handling
    • SqlSelect
      • SqlSelect
        • SqlSelect.column()
        • SqlSelect.columns()
        • SqlSelect.reset_columns()
        • SqlSelect.has_column()
        • SqlSelect.get_columns()
        • SqlSelect.distinct()
        • SqlSelect.from_table()
        • SqlSelect.join()
        • SqlSelect.join_table()
        • SqlSelect.left_join_table()
        • SqlSelect.where()
        • SqlSelect.get_where()
        • SqlSelect.group_by()
        • SqlSelect.having()
        • SqlSelect.window()
        • SqlSelect.union()
        • SqlSelect.union_query()
        • SqlSelect.order_by()
        • SqlSelect.limit()
        • SqlSelect.offset()
        • SqlSelect.fetch()
        • SqlSelect.into()
        • SqlSelect.for_locking()
        • SqlSelect.recursive()
        • SqlSelect.with_cte()
        • SqlSelect.with_cte_query()
    • SqlInsert
      • SqlInsert
        • SqlInsert.column()
        • SqlInsert.columns()
        • SqlInsert.columns_kwargs()
        • SqlInsert.values()
        • SqlInsert.values_list()
        • SqlInsert.default_values()
        • SqlInsert.query()
        • SqlInsert.query_columns()
        • SqlInsert.on_conflict()
        • SqlInsert.returning()
        • SqlInsert.recursive()
        • SqlInsert.with_cte()
        • SqlInsert.with_cte_query()
    • SqlUpdate
      • SqlUpdate
        • SqlUpdate.set()
        • SqlUpdate.columns_kwargs()
        • SqlUpdate.only()
        • SqlUpdate.from_table()
        • SqlUpdate.where()
        • SqlUpdate.get_where()
        • SqlUpdate.returning()
        • SqlUpdate.returning_with()
        • SqlUpdate.recursive()
        • SqlUpdate.with_cte()
        • SqlUpdate.with_cte_query()
    • SqlColumnList
      • SqlColumnList
        • SqlColumnList.values()
        • SqlColumnList.query()
    • SqlDelete
      • SqlDelete
        • SqlDelete.only()
        • SqlDelete.using()
        • SqlDelete.where()
        • SqlDelete.get_where()
        • SqlDelete.returning()
        • SqlDelete.recursive()
        • SqlDelete.with_cte()
        • SqlDelete.with_cte_query()
    • SqlCreateTable
      • SqlCreateTable
        • SqlCreateTable.column()
        • SqlCreateTable.constraint()
        • SqlCreateTable.like()
        • SqlCreateTable.temporary()
        • SqlCreateTable.unlogged()
        • SqlCreateTable.if_not_exists()
        • SqlCreateTable.inherits()
        • SqlCreateTable.partition_by()
        • SqlCreateTable.on_commit()
        • SqlCreateTable.on_commit_drop()
        • SqlCreateTable.tablespace()
    • SqlDropTable
      • SqlDropTable
        • SqlDropTable.if_exists()
        • SqlDropTable.cascade()
    • SqlCreateIndex
      • SqlCreateIndex
        • SqlCreateIndex.columns()
        • SqlCreateIndex.unique()
        • SqlCreateIndex.concurrently()
        • SqlCreateIndex.if_not_exists()
        • SqlCreateIndex.only()
        • SqlCreateIndex.using()
        • SqlCreateIndex.include()
        • SqlCreateIndex.nulls_not_distinct()
        • SqlCreateIndex.with_params()
        • SqlCreateIndex.tablespace()
        • SqlCreateIndex.where()
    • SqlBulkCopy
      • SqlBulkCopy
        • SqlBulkCopy.count_rows
        • SqlBulkCopy.fp
        • SqlBulkCopy.write_row()
        • SqlBulkCopy.execute()
    • SqlTerm
      • SqlTerm
      • Variant 1: Raw expression (expr only)
      • Variant 2: Simple comparison (expr, op, scalar value)
      • Variant 3: NULL handling (expr, op, None)
      • Variant 4: Subquery value (expr, op, SqlQuery)
      • Variant 5: EXISTS (SqlQuery expr, op=’EXISTS’)
      • Variant 6: Parameter placeholder (expr, op, SqlParam)
      • Variant 7: SqlObj value (expr, op, SqlObj)
      • Variant 8: SqlCat as expr
      • Variant 9: Other SqlObj as expr
    • SqlAnd
      • SqlAnd
        • SqlAnd.add()
        • SqlAnd.extend()
        • SqlAnd.is_empty()
        • SqlAnd.has_sql()
    • SqlOr
      • SqlOr
    • SqlValue
      • SqlValue
    • SqlNamedValue
      • SqlNamedValue
    • SqlCat
      • SqlCat
    • SqlColumn
      • SqlColumn
    • SqlCte
      • SqlCte
        • SqlCte.materialized()
    • SqlJoin
      • SqlJoin
    • SqlUnion
      • SqlUnion
    • PgWindow
      • PgWindow
        • PgWindow.partition_by()
        • PgWindow.order_by()
        • PgWindow.frame()
        • PgWindow.existing()
    • PgForLocking
      • PgForLocking
        • PgForLocking.of()
        • PgForLocking.locking()
    • SqlFormat
      • SqlFormat
        • SqlFormat.get_sql()
        • SqlFormat.get_args()
        • SqlFormat.get_sqlargs()
        • SqlFormat.is_empty()
        • SqlFormat.param()
        • SqlFormat.write_query()
        • SqlFormat.comment()
      • SqlFormatQmark
      • SqlFormatNumeric
      • SqlFormatNamed
      • SqlFormatPyformat
  • Glossary
sqlexpr
  • Search
  • Index


© Copyright 2026.

Built with Sphinx using a theme provided by Read the Docs.