CodeGym /课程 /SQL SELF /安装CodeGym插件

安装CodeGym插件

SQL SELF
第 4 级 , 课程 4
可用

插件可以集成到Intellij IDEA、WebStorm或者PyCharm开发环境里,让你可以直接在IDE里做CodeGym课程的题目。比如,你可以写代码、提交代码检查、和“默认”答案对比,还有很多别的功能。插件里的做题进度会和你在CodeGym账号同步,所以你在网站和IDE里看到的进度是一样的。

你可以直接在Jetbrains的marketplace里下载CodeGym插件,就在你的IDE里。下面我们用WebStorm举例演示安装步骤,其实其他IDE也是一样的流程。

要用这个插件,你的Jetbrains IDE版本得是2023.1或者更高。

  1. 打开“设置”,Windows/Linux点File - Settings,MacOS点WebStorm - Preferences。如果没看到设置,随便打开一个项目或者新建一个。

  2. 在弹出来的窗口左边菜单里选Plugins,然后点Marketplace标签。在搜索框里输入codegym

  3. 选中插件,点Install按钮。
  4. 重启(Restart IDE)WebStorm,就可以开始用插件了。

插件装好了!

登录账号和加载题目

  1. 你会看到界面有点变化,还有个按钮。登录账号在上面横向菜单栏。

    点一下会弹出登录窗口,你需要输入你的密钥:

    提醒一下,你可以在设置 → 安全和登录里找到你的密钥。

  2. 要打开新题目,点左边竖直面板的Tasks,然后在左侧边栏点题目卡片,再点打开

  3. 打开新题目后,你会看到一个工作区,里面有几个重要文件:
    • Solution — 这是你主要写代码的文件。你要在这里写SQL查询来解题。
    • init.sql — 这是用来初始化本地数据库的辅助脚本。里面有建表和插入数据的指令。
    • 题目描述的标签页。
  4. 和网站上一样,在Solution文件里写答案,然后点Проверить/Validate按钮检查。

本地运行你的解答

  1. 首先要在本地数据库里建表和插入数据。打开init.sql文件,右键点它,选Run 'init.sql'
  2. 弹出的"Edit Configuration"窗口里,你要指定脚本要在哪执行。在"Target data source / schema"区域点+,选你配置好的连接,然后选对应的schema(比如university)。选好后点Run
  3. 执行成功后,底部控制台会有提示。想看新建的表,去"Database"面板刷新(双箭头按钮)。你应该能在schema里看到新表(比如products)。
  4. 现在数据库准备好了,回到solution.sql文件。写你的SQL查询。想本地测试的话,在编辑器上方下拉菜单选你的schema,然后点绿色"Run"按钮。你的查询会在本地数据库执行,结果会显示出来。

重新运行 init.sql 或解决依赖问题

在处理任务时,您会经常运行 init.sql 脚本来准备您的本地数据库。但如果当表已创建后,您再次运行它会发生什么?

在这些脚本中常见的 DROP TABLE IF EXISTS employees; 命令,似乎应该通过在创建新表之前删除旧表来解决这个问题。然而,情况并非总是如此。您可能会遇到一个不允许删除表的错误。这种情况发生在有其他数据库对象引用您的表时,例如来自其他表的外键 (Foreign Keys) 或用于自增字段的序列 (sequences)。系统会保护这些关联,防止删除“父”表。

CASCADE 选项

对于这种情况,PostgreSQL 为 DROP 命令提供了一个扩展功能——CASCADE 选项。它告诉服务器:“删除此表,并自动删除所有依赖于它的对象”。这允许您“强制”清除所有与要删除的表相关的内容。

代码示例


-- 如果 employees 表被引用,这个版本可能会导致错误
DROP TABLE IF EXISTS employees;

-- 用于教学脚本的选项
-- 这将删除 employees 表及其所有依赖对象(键、序列)。
-- IF EXISTS 可防止在表不存在时发生错误。
DROP TABLE IF EXISTS employees CASCADE;

-- 在此之后,您可以安全地重新创建表
CREATE TABLE employees (
    id SERIAL PRIMARY KEY,
    full_name TEXT NOT NULL
    -- ... 其他列
);

重要!在教学目的和本地开发中,当您需要频繁地重新创建数据库结构时,CASCADE 是您最好的帮手。然而,在实际的生产数据库中,应极其谨慎地使用此命令,因为它可能导致无意中删除重要的相关数据和对象。

题目同步:网站 ↔ 插件

题目列表和状态会自动更新,每五分钟一次,或者你提交任何题目到CodeGym服务器后也会更新。

所以你在网站上做完的题,在插件里也会显示为已完成。如果你想马上刷新题目状态,点右上角你的头像,在下拉菜单里选同步题目

插件里的新手模式

这是给没怎么用过WebStorm或者其他IDE的小伙伴准备的简化版。里面隐藏了一些WebStorm的功能。想关掉这个模式,点右上角你的头像,在下拉菜单里选设置:

PRO模式下怎么隐藏插件导航栏

点设置(⚙️),把“显示插件导航栏”前面的勾去掉就行:

2
任务
SQL SELF, 第 4 级, 课程 4
已锁定
计算简单的和
计算简单的和
2
任务
SQL SELF, 第 4 级, 课程 4
已锁定
将字符串转换为大写
将字符串转换为大写
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION