# 自定义SQL查询功能使用说明
## 功能概述
Daedalus CLI现在支持自定义SQL查询功能,允许用户输入任意的SQL语句(包括SELECT查询、JOIN查询等)并查看结果。
## 使用方法
### 1. 启动应用
```bash
./target/debug/daedalus-cli connect <connection_name>
```
### 2. 进入自定义SQL查询模式
- 在表列表界面(TableList状态),按 `s` 键进入SQL查询输入模式
- 在表数据查看界面(TableData状态),按 `s` 键也可以进入SQL查询输入模式
### 3. 输入SQL查询
- 在SQL输入界面,输入您的SQL查询语句
- 支持所有PostgreSQL支持的SQL语法,包括:
- 简单的SELECT查询:`SELECT * FROM users;`
- 带条件的查询:`SELECT * FROM users WHERE age > 18;`
- 连表查询:`SELECT u.name, o.order_date FROM users u JOIN orders o ON u.id = o.user_id;`
- 聚合查询:`SELECT department, COUNT(*) FROM employees GROUP BY department;`
- 子查询等复杂查询
### 4. 执行查询
- 输入完SQL语句后,按 `Enter` 键执行查询
- 查询结果会以表格形式显示
### 5. 导航和操作
在查询结果界面,您可以使用以下快捷键:
- `↑/↓`:在行间导航
- `PageUp/PageDown`:翻页查看结果
- `s`:返回查询输入界面
- `t`:返回表列表界面
- `c`:返回连接选择界面
- `ESC`:返回上一个界面
- `q`:退出应用
## 功能特点
1. **分页支持**:大量查询结果会自动分页显示
2. **列名显示**:自动识别和显示查询结果的列名
3. **数据类型处理**:正确处理各种PostgreSQL数据类型
4. **错误处理**:SQL语法错误或执行错误会显示详细的错误信息
5. **灵活的导航**:可以在查询结果、表数据和连接选择之间自由切换
## 示例
### 简单查询
```sql
SELECT * FROM users LIMIT 10;
```
### 连表查询
```sql
SELECT
u.name,
u.email,
o.order_date,
o.total_amount
FROM users u
JOIN orders o ON u.id = o.user_id
WHERE o.total_amount > 100;
```
### 聚合查询
```sql
SELECT
department,
COUNT(*) as employee_count,
AVG(salary) as avg_salary
FROM employees
GROUP BY department
ORDER BY avg_salary DESC;
```
## 注意事项
1. 查询结果最多显示20行数据,使用PageUp/PageDown翻页查看更多结果
2. 对于非SELECT查询(INSERT、UPDATE、DELETE),会显示执行结果但不显示数据
3. 复杂的查询可能需要较长时间执行,请耐心等待
4. 确保SQL语法正确,否则会显示错误信息