2011-01-19 156 views
23

我仍然生活在这种模糊性中:从概念上讲,SQL中的语句查询有什么区别?任何人都可以给每个人一个定义吗?例如,在程序中选择变量名称时,这对每个人都是明确的,这很有用。 谢谢!SQL语句和查询之间的区别

ADDITIONALLY:如何调用一个由多个语句构成的SQL代码块,其中语句由分号分隔(;)?已经回复的人可以编辑他的答案。非常感谢!

回答

21

一个声明是数据库引擎识别为一个有效的命令的任何文字。自SQL-92

SQL语句是一个符合本国际标准中指定的格式和语法规则的字符串。

A 查询是一个返回记录集(可能为空)的语句。

如何调用由多个语句构成的SQL代码块,其中语句由分号(;)分隔?已经回复的人可以编辑他的答案。非常感谢!

一系列立刻发送到服务器SQL语句被称为一批

并非所有SQL发动机所需的语句在批处理被分号分隔。举例来说,SQL Server通常不会根据上下文来打破陈述。 CTE语句开始WITH是一个明显的例外。

+0

“语句是数据库引擎识别为有效命令的任何文本”。请说明命令和查询之间的区别。 – 2015-06-02 19:58:21

1

他们大多数交替使用,但一些经常使用的单词“查询”来表示,具体而言,SELECT语句,因为当你查询某事或某人,你想要的信息。并且SELECT查询返回结果集,以便很好地符合描述。这在事实上SELECT声明正式称为DQL(数据查询语言)语句也可见一斑。

+0

是一个`SELECT..INTO`(不返回结果集)查询吗?是(VALUES(1))AS T(col);`(确实返回结果集)查询? – onedaywhen 2011-01-19 14:18:42

+0

“SELECT语句正式称为DQL” - 我认为使用DML。 DDL,DCL等是非正式的。谁是这类事情的可信来源?我已经看到了DCL的各种定义。 `SELECT`通常与DML,IMO相关联。我不认为DQL是常用的,除了表示Doctrine查询语言或SQL错误(认为D键在S键旁边)。 – onedaywhen 2011-01-19 14:34:29

8

A 陈述是任何SQL命令,例如SELECT,INSERT,UPDATE,DELETE。

一个查询是SELECT语句的代名词。

4

A 声明是您可以发送给DBMS的完整正确SQL的一般术语。一个查询是,将返回数据的语句,因此查询是一种特殊的语句。

一个SELECT ...会查询,DELETE...只是一个声明。

7

Wikipedia - SQL Language Elements

SQL语言被细分成若干语言元素,包括:

  • 条款,这是语句和查询的组成成分。 (在某些情况下,这些是可选的。)[9]
  • 表达式,它可以产生标量值或包含列和行数据的表。
  • 谓词,其中指定了可以评估为SQL三值逻辑(3VL)或布尔(真/假/未知)真值并且用于限制语句和查询的效果的条件,或者用于更改程序流程。
  • 查询,它根据特定的标准检索数据。
  • 声明,它可能对模式和数据有持久影响,或者可能控制事务,程序流,连接,会话或诊断。
    • SQL语句还包括分号(“;”)语句终止符。虽然不是每个平台都需要,但它被定义为SQL语法的标准部分。
  • 不重要的空白通常被忽略的SQL语句和查询,从而更容易格式化SQL代码的可读性。
0

查询用于检索基于特定标准的数据,但声明可能对模式和数据持久效应,或可控制的交易,程序流程,连接,会话,或诊断。另见Wikipedia