为什么SQL称为数据子语言?

时间:2017-02-28 20:44:46

标签: sql

最近我读过(在PDF文档中 - SQL for dummies),SQL实际上是一个数据子语言,而不是像C ++或Java或C#这样的编程语言,现在我有点困惑,因为你可以开发东西通过SQL,我认为它与其他编程语言类似。

有人可以向我解释有什么区别吗?感谢

4 个答案:

答案 0 :(得分:2)

尝试编写一个简单但非平凡的应用程序,只使用标准SQL,要求用户输入其名称,并输出" Hello,。"

也许您可以使用某些特定于供应商的扩展来实现它,但它不会成为标准SQL。

SQL旨在成为数据库查询的domain-specific language。它意味着与功能更全面的语言结合使用。 SQL标准定义了可以在C,C ++或其他语言的代码文件中编写SQL行的方法。没有标准方法可以使用SQL编写完整的独立应用程序。

答案 1 :(得分:2)

阅读标准。 SQL / PSM部分使用循环和IF-THEN-ELSE定义了成熟的编程语言,并且您拥有什么。 SQL / PSM最初于1996年修订为现有标准,并正式包含在SQL:1999中。

正如Bill Karwin所暗示的那样,SQL没有用于UI交互的功能,但是关于Java语言也是如此(不,swing包不是 语言的一部分 ),COBOL语言,ALGOL语言以及许多其他语言。

SQL 开始使用 作为数据子语言。这段历史比我们落后了20多年。 (“数据子语言”部分仍然是最常用和最有用的部分,但这并不能改变从技术上来说,SQL语言具有被视为一种成熟的编程语言所需要的一切。 )

答案 2 :(得分:1)

根据维基百科的子语言

  

术语"子语言"首先由E.F.Codd于1970年用于此目的,是指用于定义或操纵关系数据库管理系统(RDBMS)的结构和内容的计算机语言。与现代RDBMS相关的典型子语言是QBE(按示例查询)和SQL(结构化查询语言)。

这意味着子语言不能用于开发独立的应用程序,但它们可以与其他计算机编程语言结合使用来管理应用程序 - 数据库交互。

答案 3 :(得分:0)

标准SQL只能用于定义数据库模式以及查询和更新数据。数据库供应商对SQL(如Microsoft的T-SQL)的扩展是完整的编程语言。