SQL

来自站长百科
跳转至: 导航、​ 搜索

SQL是“结构化查询语言(Structured Query Language)”的简称,最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言,得到了广泛的应用。

目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select, Insert, Update, Delete, Create, 以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。

SQL语言按照功能分为4大类:

  • 数据查询语言DQL(Data Query Language):主要是查询数据(SELECT)
  • 数据定义语言DDL(Data Definition Language):主要是建立、删除和修改数据对象(CREATE, ALTER, DROP)
  • 数据操纵语言DML(Data Manipulation Language):主要是完成数据操作的命令,包括查询(INSERT, UPDATE, DELETE)
  • 数据控制语言DCL(Data Control Language):主要是控制对数据库的访问,服务器的关闭、启动等(GTANT,REVOKE)

SQL发展历史[ ]

在70年代初,E.E.Codd首先提出了关系模型。70年代中期,IBM公司在研制 SYSTEM R关系数据库管理系统中研制了SQL语言,最早的SQL语言(叫SEQUEL2)是在1976 年 11 月的IBM Journal of R&D上公布的。

1979年ORACLE公司首先提供商用的SQL,IBM公司在DB2 和SQL/DS数据库系统中也实现了SQL。

1986年10月,美国ANSI采用SQL作为关系数据库管理系统的标准语言(ANSI X3. 135-1986),后为国际标准化组织(ISO)采纳为国际标准。

1989年,美国ANSI采纳在ANSI X3.135-1989报告中定义的关系数据库管理系统的SQL标准语言,称为ANSI SQL 89, 该标准替代ANSI X3.135-1986版本。该标准为下列组织所采纳:

国际标准化组织(ISO),为ISO 9075-1989报告“Database Language SQL With Integrity Enhancement”
美国联邦政府,发布在The Federal Information Processing Standard Publication(FIPS PUB)127

1992年ISO又推出SQL-92标准,亦称SQL2

1999年起ANSI陆续公布增加了面向对象功能的新标准SQL-99(亦称SQL3)的12个标准文本

目前大多数数据库管理系统均支持SQL-92(SQL2),有少部分支持SQL3

SQL的优点[ ]

SQL广泛地被采用正说明了它的优点。它使全部用户,包括应用程序员、DBA管理员和终端用户受益非浅。

非过程化语言[ ]

SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。所有SQL 语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。 SQL不要求用户指定对数据的存放方法。这种特性使用户更易集中精力于要得到的结果。所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。查询优化器知道存在什么索引,哪儿使用合适,而用户从不需要知道表是否有索引,表有什么类型的索引。

统一的语言[ ]

SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、 应用程序员、决策支持系统人员及许多其它类型的终端用户。基本的SQL 命令只需很少时间就能学会,最高级的命令在几天内便可掌握。 SQL为许多任务提供了命令,包括:

  • 查询数据
  • 在表中插入、修改和删除记录
  • 建立、修改和删除数据对象
  • 控制对数据和数据对象的存取
  • 保证数据库一致性和完整性

以前的数据库管理系统为上述各类操作提供单独的语言,而SQL 将全部任务统一在一种语言中。

面向集合的操作方式[ ]

SQL是一种面向集合的语言,与面向记录的方式截然不同,每个命令的操作对象是一个或多个表,结果也是一个表。这种采用集合的操作方式不仅操作对象、查找结果可以是记录的集合,而且一次插入、删除、更新操作的对象也可以是记录的集合。

同一种语法结构,两种使用方式[ ]

SQL语言既是自含式语言,又是嵌入式语言,或独立使用也可嵌入到宿主语言中。作为自含式语言它能够独立地用于联机交互方式,即在终端机上进行数据库操作,这适用于终端用户、应用程序员和DBA。作为嵌入式语言,SQL语句能够嵌入到高级语言(例如C、COBOL、FORTRAN、PL/1)程序中,供开发使用。在这两种方式下,SQL语法结构基本一致,为用户提供了极大的灵活性和方便性。

-语言简洁易用=[ ]

SQL语言设计巧妙,以简洁的语句实现强大的功能,9个动词即可完成核心功能(SELECT,CREATE,ALTER,DROP,INSERT,UPDATE,DELETE,GTANT,REVOKE)。另外语言本身接近英语自然语言,易学易懂。


是所有关系数据库的公共语言[ ]

由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个。所有用SQL编写的程序都是可以移植的。

相关条目[ ]

参考来源[ ]