SQL是真正的编程语言吗?

ZDNet软件频道 时间:2002-09-03 作者:BUILDER.COM |  我要评论()
本文关键词:
数据就是一个企业的支柱,他参与报告和审查,随着就数据的消除,新数据也经常被加入。SQL是一种可以轻松工作的语言,SQL所提供的功能不容轻易地被忽视。
让我们来面对这个现象,在开发界中等级之间的偏见正在蔓延。Java开发者看不起.NET使用者,而相反也是如此。令人惊讶的是,我发现在SQL (Structured Query Language)中也有相同的现象。很多开发者将SQL看成是一种补充说明,一种相对容易的访问数据的语法。这些新手经常通过Open Database Connectivity (ODBC),Java Database Connectivity (JDBC)或者是本地驱动器来访问相关的数据,他们忽视了SQL的能力。

是的,SQL是一种语言

就像SQL缩写所代表的意义一样,它是一种语言,它提供了循环,逻辑指令,变量等内容。但它并不是与Java或C++相同意义上的语言,SQL是一种第四代语言(4GL),而Java和C++是第三代语言(3GLs)。

第四代语言是一种比类似于Java的高级语言更接近人类语言的编程语言。第四代语言经常被用于访问数据库,例如SQL,它使用类似人类语言的句法来恢复和操作数据。

SQL可能与Java或C#不是同等的,但它确实是一种语言,这是Visual Basic和C开发者经常讨论的话题,他们对其持相反的观点,声称SQL并未编译且与3GL相比提供了很少的功能性。

SQL的能力

证明其能力的最佳途径就是给出一个具体的实例,下面是SQL的例子:

IF EXISTS (SELECT * FROM table_name1)
BEGIN
UPDATE table_name2 SET field_name = ‘value’
FROM table_name2 alias2 INNER JOIN table_name1 alias1
ON alias2.field_name = alias1.field_name AND alias2.fieldname = alias1.fieldname
END
ELSE
BEGIN
UPDATE table_name2 SET field_name = ‘value’
FROM table_name2 alias3 INNER JOIN table_name1 alias4
ON alias3.fieldname = alias4.fieldname AND alias3.fieldname = alias4.fieldname
END
ELSE
PRINT ‘Error’


这个例子建立在SQL Server之上,它显示了几点内容:控制流(IF/ELSE),控制块(BEGIN/END)和Boolean操作符(AND) —一个编程语言的所有元素。

此外,合并变量是很容易实现的。你可以在存储程序中重用代码并使用触发器将程序作自动化或是时间安排。这些元素中的很多都取决于数据库的平台(SQL Server, Oracle, Sybase, Informix, DB/2等等),但core SQL99标准基本都是支持的。

更多关于SQL的内容

SQL可以轻松地访问有用的数据,参阅ZDNet文章来了解更多的有关内容:

数据至高无上

数据就是一个企业的支柱,他参与报告和审查,随着就数据的消除,新数据也经常被加入。SQL是一种可以轻松工作的语言,SQL所提供的功能不容轻易地被忽视。

我希望了解你的想法,你有没有遇到类似的关于SQL的偏见?请在下面讨论区发表你的意见。


责任编辑:炒饭

欢迎评论或投稿


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134