# SQL执行
SQL执行是hwc-dws-cli的核心能力之一，支持AI Agent和开发者通过命令行直接向DWS集群提交SQL语句。默认以JSON结构化格式输出结果，便于AI Agent解析；同时支持table、csv等易读格式，满足人工查看需求。
**安全模型：** SQL执行默认只读（DQL），写操作（DML/DDL）需显式追加 --write，危险操作（DROP/TRUNCATE等）需追加 --write --confirm-dangerous，确保AI Agent不会意外修改或删除数据。
SQL执行命令参数说明如[表1]所示。
 表1**SQL执行参数** 
| 参数                | 说明                            |
|:---|:---|
| --exec \<SQL\>   | 待执行SQL语句（与 --file 二选一）。        |
| --file \<path\> | 执行SQL文件（与 --exec 二选一）。          |
| --param \<v\>    | SQL参数，可重复指定（参数化查询）。            |
| --dry-run      | 仅生成执行计划（EXPLAIN VERBOSE），不实际执行。 |
   
支持 DQL / DML / DDL / DCL / TCL 全类型 SQL，高危操作/写操作需要单独指定参数。
```
# 执行查询（默认 JSON Envelope 输出）
hwc-dws-cli sql --exec "SELECT current_database()" --format table  
# 执行 SQL 文件
hwc-dws-cli sql --file script.sql  
# 参数化查询（--param 可重复）
hwc-dws-cli sql --exec "SELECT * FROM t WHERE id = $1 AND name = $2" --param 1 --param "alice" 
# EXPLAIN VERBOSE 仅生成执行计划，不实际执行
hwc-dws-cli sql --exec "DELETE FROM t WHERE id=1" --dry-run  
# 写操作（需 --write）
hwc-dws-cli sql --exec "INSERT INTO t VALUES (1)" --write  
# 危险操作（需 --write --confirm-dangerous）
hwc-dws-cli sql --exec "DROP TABLE t" --write --confirm-dangerous
```
