# Query Commands Execute SQL queries using Trino. ## Basic Usage ```bash tdx query [options] [sql] ``` ## Options | Option | Description | Default | | --- | --- | --- | | `-f, --file ` | Read SQL from file | - | | `-d, --database ` | Database to query | information_schema | | `--in ` | Alias for `--database` | - | | `--catalog ` | Trino catalog | td | ## Examples ### Inline Query ```bash # Simple query tdx query "SELECT * FROM mydb.users LIMIT 10" # With database flag tdx query "SELECT * FROM users" --in mydb tdx query "SELECT * FROM users" --database mydb tdx query "SELECT * FROM users" -d mydb ``` ### File Input Read SQL from file: ```bash # Auto-detect .sql file (recommended) tdx query query.sql # Explicit file option tdx query --file query.sql tdx query -f query.sql # With options tdx query query.sql --database mydb --json --output results.json ``` ### Stdin Input Read SQL from stdin using `-`: ```bash # Pipe SQL from echo echo "SELECT * FROM mydb.users LIMIT 10" | tdx query - # Pipe from file cat query.sql | tdx query - # Pipe from another command generate-sql.sh | tdx query - ``` ### Multi-Statement Execution Execute multiple SQL statements sequentially: ```bash # From command line tdx query "SELECT COUNT(*) FROM users; SELECT COUNT(*) FROM orders" # From file tdx query -f setup-and-query.sql ``` **Example multi-statement file** (`setup-and-query.sql`): ```sql CREATE TABLE temp_users AS SELECT * FROM users WHERE active = true; CREATE TABLE temp_orders AS SELECT * FROM orders WHERE user_id IN (SELECT id FROM temp_users); SELECT COUNT(*) as order_count FROM temp_orders; ``` **Output behavior:** - Each statement executes sequentially with progress indication - **Console output**: All results displayed as they complete - **File output** (`--output`): All results appended to single file - **Fail-fast**: Execution stops on first error ### Output Formats ```bash # Table format (default) tdx query "SELECT * FROM users LIMIT 5" # JSON format tdx query "SELECT * FROM users" --json # JSON Lines format tdx query "SELECT * FROM users" --jsonl # TSV format tdx query "SELECT * FROM users" --tsv # Save to file tdx query "SELECT * FROM users" --output results.json ``` ## Multi-Statement Output Example ``` ✔ Statement 1/3 - Query completed: Processed 1,000 rows in 2.3s ┌────────────┐ │ user_count │ ├────────────┤ │ 1000 │ └────────────┘ ✔ Statement 2/3 - Query completed: Processed 5,000 rows in 3.1s ┌─────────────┐ │ order_count │ ├─────────────┤ │ 5000 │ └─────────────┘ ```