1.SQL语言的简史

SQLStructured Query Language:结构化查询语言)是一种领域特定编程语言,用于管理关系数据库管理系统(RDBMS)。

1.历史

在1970年代初,由IBM公司San Jose,California研究实验室的埃德加·科德发表将数据组成表格的应用原则(Codd’s Relational Algebra)。1974年,同一实验室的D.D.Chamberlin和R.F. Boyce将Codd’s Relational Algebra用在研发关系数据库管理系统System R中,研制出一套规范语言-SEQUEL(Structured English Query Language),并在1976年11月的IBM Journal of R&D上公布新版本的SQL(叫SEQUEL/2)。1980年改名为SQL。

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

目前,所有主要的关系数据库管理系统支持某些形式的SQL,大部分数据库至少遵守ANSI SQL89标准。

ANSI SQL92标准在交叉连接(cross join)和内部连接之上,新增加了外部连接,并支持在FROM子句中写连接表达式。支持集合的并运算、交运算。支持Case (SQL)表达式。支持CHECK约束。创建临时表。支持cursor。支持事务隔离。

2.标准化

各种数据库的SQL方言通常不可移植,特别是在日期时间语法、字符串连接、NULL、比较的大小写敏感方面。只有PostgreSQL与Mimer SQL努力遵从标准。Oracle数据库的DATE行为如同DATETIME,缺少TIME type)。

SQL在1986年被ANSI标准化,1987年被ISO标准化。由ISO/IEC JTC 1, Information technology, Subcommittee SC 32, Data management and interchange维护。标准名称通常为如下模式: ISO/IEC 9075-n:yyyy Part n: title

年份名字别名注释
1986SQL-86SQL-87ANSI首次标准化
1989SQL-89FIPS 127-1小修改,增加了integrity constraint
1992SQL-92SQL2, FIPS 127-2大修改,成为现代SQL的基础
1999SQL:1999SQL3增加了正则表达式匹配、递归查询(传递闭包)、数据库触发器、过程式与控制流语句、非标量类型(arrays)、面向对象特性。在Java中嵌入SQL(SQL/OLB)及其逆(SQL/JRT)
2003SQL:2003增加XML相关特性(SQL/XML)、window functions、标准化sequences、自动产生值的列。对SQL:1999的新特性重新描述其内涵。
2006SQL:2006导入/导出XML数据与SQL数据库。XQuery
2008SQL:2008在cursor之外的ORDER BY语句。INSTEAD OF触发器。TRUNCATE语句。FETCH子句
2011SQL:2011增加时态数据(PERIOD FOR)。增强了window functions与FETCH子句
2016SQL:2016增加行模式匹配、多态表函数、JSON。

3.RDBMS(关系型数据库管理系统)

RDBMS 指的是关系型数据库管理系统。

RDBMS 是 SQL 的基础,同样也是所有现代数据库系统的基础,比如 MS SQL Server, IBM DB2, Oracle, MySQL 以及 Microsoft Access。

RDBMS 中的数据存储在被称为表(tables)的数据库对象中。

表是相关的数据项的集合,它由列和行组成。行又称为记录,列又称为字段。

4.常用关系型数据库管理系统

目前,常用的关系型数据库管理系统主要分为以下几类:

  1. 商用数据库,例如:OracleSQL ServerDB2等;
  2. 开源数据库,例如:MySQLPostgreSQL等;
  3. 桌面数据库,以微软Access为代表,适合桌面应用程序使用;
  4. 嵌入式数据库,以Sqlite为代表,适合手机应用和桌面程序。

5.SQL 能做什么?

  • SQL 面向数据库执行查询
  • SQL 可从数据库取回数据
  • SQL 可在数据库中插入新的记录
  • SQL 可更新数据库中的数据
  • SQL 可从数据库删除记录
  • SQL 可创建新数据库
  • SQL 可在数据库中创建新表
  • SQL 可在数据库中创建存储过程
  • SQL 可在数据库中创建视图
  • SQL 可以设置表、存储过程和视图的权限

6.总结

SQL是一门编程语言,不是数据库软件,规范了与各种各样的数据库软件的连接标准。

重要事项

一定要记住,SQL 对大小写不敏感

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/basic/sql/1888.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注