EdgeDB REPL 交互式查询环境使用指南

EdgeDB REPL 交互式查询环境使用指南

edgedb A graph-relational database with declarative schema, built-in migration system, and a next-generation query language edgedb 项目地址: https://gitcode.com/gh_mirrors/ed/edgedb

什么是 EdgeDB REPL

EdgeDB REPL (Read-Eval-Print Loop) 是一个强大的交互式查询环境,允许开发者直接与 EdgeDB 数据库进行交互。它类似于其他数据库系统的命令行工具,但专为 EdgeDB 的 EdgeQL 查询语言优化设计。

基本查询操作

在 REPL 中执行查询非常简单,有两种主要方式:

  1. 标准方式:在查询语句末尾添加分号后按回车键
db> select 5;
{5}
  1. 快捷方式
    • Windows/Linux: 使用 Alt+Enter 组合键
    • macOS: 使用 Esc+Return 组合键
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'
;};
[其他重载版本...]

高级技巧

  1. 查询历史:使用 \s 命令可以查看之前执行的所有查询,方便重复使用或修改。

  2. 编辑查询:对于复杂查询,可以使用 \e 命令在外部编辑器中编辑查询,保存后会立即执行。

  3. 设置管理:通过 \set 命令可以查看和修改各种 REPL 设置,如输出格式、显示选项等。

  4. 模式探索:充分利用 \list 系列命令可以快速了解数据库结构,特别适合在开发初期探索数据库设计。

EdgeDB REPL 是一个功能强大的工具,熟练掌握这些命令和技巧可以显著提高开发效率,特别是在数据库设计和查询调试阶段。

edgedb A graph-relational database with declarative schema, built-in migration system, and a next-generation query language edgedb 项目地址: https://gitcode.com/gh_mirrors/ed/edgedb

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

滑茵珠Gerret

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值