sqlite-utils query - to read SQL from stdin, closes #765

This commit is contained in:
Simon Willison 2026-07-07 17:52:26 -07:00
commit 619770bf42
5 changed files with 48 additions and 0 deletions

View file

@ -4,6 +4,13 @@
Changelog
===========
.. _v_unreleased:
Unreleased
----------
- ``sqlite-utils query`` can now read the SQL query from standard input by passing ``-`` in place of the query, for example ``echo "select * from dogs" | sqlite-utils query dogs.db -``. (:issue:`765`)
.. _v4_0:
4.0 (2026-07-07)

View file

@ -109,6 +109,10 @@ See :ref:`cli_query`.
"select * from chickens where age > :age" \
-p age 1
Pass "-" as the SQL to read the query from standard input:
echo "select * from chickens" | sqlite-utils data.db -
Options:
--attach <TEXT FILE>... Additional databases to attach - specify alias and
filepath

View file

@ -29,6 +29,16 @@ The ``sqlite-utils query`` command lets you run queries directly against a SQLit
.. note::
In Python: :ref:`db.query() <python_api_query>` CLI reference: :ref:`sqlite-utils query <cli_ref_query>`
Pass ``-`` as the SQL query to read the query from standard input. This is useful for longer queries that would otherwise require careful shell escaping, or for piping in SQL generated by another tool:
.. code-block:: bash
echo "select * from dogs" | sqlite-utils query dogs.db -
.. code-block:: bash
sqlite-utils query dogs.db - < query.sql
.. _cli_query_json:
Returning JSON