1.SQL语言的简史
目录
SQL(Structured 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。
年份 | 名字 | 别名 | 注释 |
---|---|---|---|
1986 | SQL-86 | SQL-87 | ANSI首次标准化 |
1989 | SQL-89 | FIPS 127-1 | 小修改,增加了integrity constraint |
1992 | SQL-92 | SQL2, FIPS 127-2 | 大修改,成为现代SQL的基础 |
1999 | SQL:1999 | SQL3 | 增加了正则表达式匹配、递归查询(传递闭包)、数据库触发器、过程式与控制流语句、非标量类型(arrays)、面向对象特性。在Java中嵌入SQL(SQL/OLB)及其逆(SQL/JRT) |
2003 | SQL:2003 | 增加XML相关特性(SQL/XML)、window functions、标准化sequences、自动产生值的列。对SQL:1999的新特性重新描述其内涵。 | |
2006 | SQL:2006 | 导入/导出XML数据与SQL数据库。XQuery | |
2008 | SQL:2008 | 在cursor之外的ORDER BY语句。INSTEAD OF触发器。TRUNCATE语句。FETCH子句 | |
2011 | SQL:2011 | 增加时态数据(PERIOD FOR)。增强了window functions与FETCH子句 | |
2016 | SQL:2016 | 增加行模式匹配、多态表函数、JSON。 |
3.RDBMS(关系型数据库管理系统)
RDBMS 指的是关系型数据库管理系统。
RDBMS 是 SQL 的基础,同样也是所有现代数据库系统的基础,比如 MS SQL Server, IBM DB2, Oracle, MySQL 以及 Microsoft Access。
RDBMS 中的数据存储在被称为表(tables)的数据库对象中。
表是相关的数据项的集合,它由列和行组成。行又称为记录,列又称为字段。
4.常用关系型数据库管理系统
目前,常用的关系型数据库管理系统主要分为以下几类:
- 商用数据库,例如:Oracle,SQL Server,DB2等;
- 开源数据库,例如:MySQL,PostgreSQL等;
- 桌面数据库,以微软Access为代表,适合桌面应用程序使用;
- 嵌入式数据库,以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