原创

SQL 发展历史和原理讲解

从1986年的第一个版本SQL-86,到最近的SQL:2016版本,已经有各种SQL的标准版本被引入。它在1986年被美国国家标准协会(ANSI)和1987年被国际标准化组织(ISO)接受为关系数据定义和操作的标准。请注意,每个关系数据库供应商都提供了自己的SQL实现(也称为SQL方言),在该实现中,通常会实现标准的大部分内容,并补充一些特定于供应商的附加组件。

SQL 主要是面向集合和声明性的(参见第2章)。换句话说,与面向记录的数据库语言相反,SQL可以一次检索和操作许多记录(即它操作的是一组记录,而不是单个记录)。此外,与过程式数据库语言不同,您只需指定要检索哪些数据,而过程式数据库语言需要你显式地定义数据的导航访问路径。

SQL 既可以在命令提示符中交互使用,也可以由用特定编程语言编写的程序执行 (Java、Python等) 。在这种情况下,通用编程语言被称为SQL代码的宿主语言。图7.1显示了一个在MySQL环境中交互使用 SQL 的示例。 MySQL是一个开源的RDBMS,可以从网上免费下载,在业界非常流行。

在这个屏幕截图中,你可以看到在顶部的查询窗口中输入了一个查询。我们在第7.3.1.7节中解释了这个查询的工作原理,但是它基本上选择了所有的产品编号和产品名称,这些产品都包括一个以上的订单。然后可以执行查询并在下面的结果窗口中显示结果。其他RDBMSs,如Microsoft SQL Server、Oracle和IBM DB2,也提供了以交互方式执行查询的工具,用户可以通过这种方式输入SQL查询、运行查询并评估结果。

连接(Connections)

在第2章中,我们讨论了过程式,一次记录DML(在分层和CODASYL DBMS中使用)和声明性在时间上设定DML(在基于SQL的RDBMS中使用)之间的区别。

1 SQL有时也称为SEKWEL。

图7.2说明了相同的查询,但是现在由宿主语言(在这种情况下为Java)执行。你可以在上面看到Java程序,以及控制台中相应的结果。DBMS通常公开了许多应用程序编程接口(API),希望利用DBMS提供的服务, 客户端应用程序希望可以利用这些服务来访问和查询DBMS。第15章详细介绍了此类API。 现在,重要的是要记住, 大多数查询被发送到DBMS都依赖SQL 作为主要语言来实现。

在大多数RDBMS环境中,SQL被视为一种自由格式的语言。换句话说,不需要像Python或COBOL这样的特殊缩进。大多数SQL实现都不区分大小写。但是,建议采用一致的格式样式(例如,始终以大写形式写表名),有助于理解和维护SQL查询语句。

第15章仔细研究了使用不同类型的数据库应用程序编程接口或API访问数据库系统的各种方式。

深度探讨

2015年,Stack Overflow(www.stackoverflow.com)对最受欢迎的应用程序开发语言进行了一项调查,在26086名受访者中,SQL排名第二,仅次于JavaScript。调查明确显示,尽管不断受到新技术的威胁(例如NoSQL;请参见第11章),但SQL仍然是最受欢迎的数据定义和操作语言。同时能看出,掌握SQL知识对你的工资有积极的影响。

~阅读全文~人机检测~

关注下方微信公众号“Java精选”(w_z90110),回复关键词领取资料:如Mysql、Hadoop、Dubbo、Spring Boot等,免费领取视频教程、资料文档和项目源码。

Java精选专注程序员推送一些Java开发知识,包括基础知识、各大流行框架(Mybatis、Spring、Spring Boot等)、大数据技术(Storm、Hadoop、MapReduce、Spark等)、数据库(Mysql、Oracle、NoSQL等)、算法与数据结构、面试专题、面试技巧经验、职业规划以及优质开源项目等。其中一部分由小编总结整理,另一部分来源于网络上优质资源,希望对大家的学习和工作有所帮助。

评论

分享:

支付宝

微信