首页 > 解决方案 > 如何在 SQL 中编写查询?

问题描述

我目前正在学习 CS50,这是哈佛的在线编码入门课程。我们刚刚介绍了 SQL,我现在正在尝试尝试问题集中的“电影”问题,可以在此处找到其描述:https ://cs50.harvard.edu/x/2020/psets/7/movies /

但是,我不确定如何正确执行此操作。

例如对于1.sql,我的代码如下:

SELECT title FROM movies WHERE year = 2008;

我实际上只在文件“1.sql”中写了那一行,仅此而已。

但是当我跑步时

$ cat 1.sql | sqlite3 movies.db

在我的终端中,什么都没有发生?

这就是我应该为 SQL 编写代码的方式吗?或者我是否遗漏了一些我应该在查询上方包含的内容(例如标题或其他内容)?

需要明确的是,我相信我知道如何编写查询本身,但如果可能的话,我不知道编写它的“协议”。我的意思是,例如,我非常确定“SELECT title FROM movies WHERE year = 2008;” 满足问题的第一个要求。

一些启示将不胜感激!

编辑 1

好的,首先我必须向所有花时间评论我的帖子的人道歉。由于一些非常奇怪的原因,我的查询在我第一次运行时没有返回任何结果。然而,当我再次尝试时,它完美地工作了!不知道老实说出了什么问题,但现在一切都很好!很抱歉浪费大家的时间):

编辑 2

好的,我还发现我无法执行查询的原因是我在终端的“sqlite3”中。我应该运行命令在主终端中执行我的查询,即当它说“sqlite3”时。愚蠢的。我知道。

标签: sqlcs50

解决方案


选项 1)您可以在普通终端中运行“$ cat 1.sql | sqlite3 movies.db”(不是在 sqlite3 模式下)

选项2)您可以通过键入“sqlite3 movies.db”打开sql环境(如果它存在,它将打开movies.db,如果不存在则创建一个临时的)。然后你可以在“sqlite>”之后输入“.read 1.sql”


推荐阅读