EdgeDB REPL 交互式查询环境使用指南
什么是 EdgeDB REPL
EdgeDB REPL (Read-Eval-Print Loop) 是一个强大的交互式查询环境,允许开发者直接与 EdgeDB 数据库进行交互。它类似于其他数据库系统的命令行工具,但专为 EdgeDB 的 EdgeQL 查询语言优化设计。
基本查询操作
在 REPL 中执行查询非常简单,有两种主要方式:
- 标准方式:在查询语句末尾添加分号后按回车键
db> select 5;
{5}
- 快捷方式:
- Windows/Linux: 使用
Alt+Enter
组合键 - macOS: 使用
Esc+Return
组合键
- Windows/Linux: 使用
db> select 5
{5}
macOS 用户注意:默认情况下快捷方式可能不可用,需要进行以下设置:
- Terminal.app: 设置 → 配置文件 → 键盘 → 勾选"使用 Option 作为 Meta 键"
- iTerm: 设置 → 配置文件 → 键 → 将 Option 键行为设置为 ESC+
使用查询参数
EdgeDB REPL 支持参数化查询,当查询中包含参数时,系统会提示输入参数值:
db> select 5 + <int64>$num;
Parameter <int64>$num: 6
{11}
这种特性特别适合测试不同参数值对查询结果的影响。
常用命令参考
EdgeDB REPL 提供了一系列实用命令来帮助开发者探索和管理数据库:
描述命令
| 命令 | 描述 | 选项 | |------|------|------| | \d [-v] NAME
| 描述特定模式对象 | -v
显示详细信息 | | \ds
或 \describe schema
| 描述整个数据库模式 | |
列表命令
| 命令 | 描述 | 选项 | |------|------|------| | \list branches
或 \l
| 列出所有分支 | | | \list scalars
或 \ls
| 列出标量类型 | -s
显示系统对象 | | \list types
或 \lt
| 列出对象类型 | -I
区分大小写 | | \list roles
或 \lr
| 列出角色 | | | \list modules
或 \lm
| 列出模块 | | | \list aliases
或 \la
| 列出表达式别名 | | | \list casts
或 \lc
| 列出类型转换 | | | \list indexes
或 \li
| 列出索引 | |
数据操作命令
| 命令 | 描述 | |------|------| | \dump <filename>
| 将当前分支转储到文件 | | \restore <filename>
| 从文件恢复分支 | | \s
或 \history
| 显示查询历史 | | \e
或 \edit [N]
| 编辑历史记录中的第N条查询 | | \set [<option> [<value>]]
| 查看/更改设置 | | \c
或 \connect [<dbname>]
| 连接到特定分支 |
实用示例
列出数据库分支
db> \ls
List of branches:
db
tutorial
连接到特定分支
db> \c my_new_project
my_new_project>
查看对象类型定义
db> \d object Object
abstract type std::Object extending std::BaseObject {
required single link __type__ -> schema::Type {
readonly := true;
};
required single property id -> std::uuid {
readonly := true;
};
};
查看标量类型定义
db> \d object decimal
scalar type std::decimal extending std::anynumeric;
查看函数定义
db> \d object sum
function std::sum(s: set of std::bigint) -> std::bigint {
volatility := 'Immutable';
annotation std::description := 'Return the sum of the set of numbers.';
using sql function 'sum'
;};
[其他重载版本...]
高级技巧
-
查询历史:使用
\s
命令可以查看之前执行的所有查询,方便重复使用或修改。 -
编辑查询:对于复杂查询,可以使用
\e
命令在外部编辑器中编辑查询,保存后会立即执行。 -
设置管理:通过
\set
命令可以查看和修改各种 REPL 设置,如输出格式、显示选项等。 -
模式探索:充分利用
\list
系列命令可以快速了解数据库结构,特别适合在开发初期探索数据库设计。
EdgeDB REPL 是一个功能强大的工具,熟练掌握这些命令和技巧可以显著提高开发效率,特别是在数据库设计和查询调试阶段。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考