1.1 SQL是什么
那么SQL到底是什么呢?简而言之,SQL就是为了维护和使用关系型数据库中的数据而使用的一种标准的计算机语言。简单来说,SQL就是能让用户和关系型数据库进行交互的一种语言。SQL语言有很长的发展历史,很多组织都对它的发展做出了贡献,它最早的历史可以追溯到20世纪70年代。1986年,美国国家标准局(American National Standards Institute,ANSI)发布了该语言的第一套标准,从那时起,它经历过多次的修订。
一般来讲,SQL语言有3个主要的组成部分。第1个部分叫做数据操纵语言(Data Manipulation Language,DML)。SQL语言的这个模块让我们可以检索、修改、增加或删除数据库中的数据。第2个部分叫做数据定义语言(Data Definition Language,DDL)。DDL使得我们能够创建和修改数据库本身。例如,DDL提供了ALTER语句,它让我们可以修改数据库中的表的设计。第3个部分是数据控制语言(Data Control Language,DCL),用于维护数据库的安全。
许多主要的软件厂商,像Microsoft和Oracle,为了其各自的目的,都会修改这个标准,并且对该语言添加大量的扩展和修改。尽管每个厂商对于SQL都有自己独特的解释,但是仍然会有一个底层的基础语言,而它对于所有厂商几乎都是一致的。这个基础语言,也正是本书所要介绍的内容。
作为一种计算机语言,和你可能熟悉的其他语言(如Visual Basic或C++)相比,SQL并不相同。其他语言本质上往往趋向于过程化。这就意味着,它们允许你指定特定的过程来完成想要实现的任务。SQL更趋向于一种声明式语言(Declarative Language)。在SQL中,经常用一条单独的语句来声明预期的目标。SQL的结构之所以如此简单,是因为它只关注关系型数据库,而不是整个计算机系统。
关于SQL语言,还有一点需要澄清,人们经常会把SQL语言和具体的SQL数据库搞混。有很多的软件公司销售数据库管理系统(Database Management System,DBMS)。通常,这些类型的软件包中的数据库称为SQL数据库,因为SQL语言是管理和访问这些数据库中的数据的主要方法。一些厂商甚至把SQL作为其数据库名称的一部分。例如,Microsoft把它最新的数据库叫做SQL Server 2016。但实际上,更准确地讲,SQL是一种语言,而不是一个数据库。本书的重点是介绍SQL的语言,而不是介绍任何一种特定的数据库。