2019独角兽企业重金招聘Python工程师标准>>>

ANSI SQL标准和准则

SQL:ANSI数据库管理标准

结构化查询语言(SQL)是用于访问和管理数据库的数据库管理员(DBA)的标准语言。

多年来,SQL不断发展,许多版本和语言开始出现。为了统一SQL以获得最佳实践,美国国家标准协会(ANSI)为数据库查询语言创建了特定的标准。

SQL时间轴

  • 1970年:为IBM工作的计算机Edgar Frank Codd博士于1970年6月在计算机协会(ACM)期刊上发表了他的着名论文“大型共享数据库的数据关系模型”。Codd博士的模型仍然是关系数据库管理系统(RDBMS)的权威模型。

  • 1978年: IBM公司在其位于加利福尼亚州的圣何塞研究中心开发数据库系统System / R以及数据库语言结构化英语查询语言(SEQUEL)。它们基于Codd博士的原始模型,他们称之为SEQUEL。

  • 1979年: Relational Software,Inc。发布了第一个关系数据库管理系统,并将其命名为Oracle。他们的RDBMS在一台小型机上运行,​​使用SQL作为主要查询语言。该产品变得如此受欢迎,该公司更名为Oracle。

  • 1982年: IBM发布了第一个基于SQL的商用SQL,它们命名为SQL /数据系统或SQL / DS,并于1985年发布了Database 2系统或DB2。两个系统都在IBM大型计算机上运行。IBM稍后将DB2移植到其他系统,包括在Windows和UNIX操作系统上运行的系统。

ANSI标准逐年

  • 1986: SQL-87最初由ANSI于1986年正式确定。

  • 1989年:美国国家标准协会(ANSI)发布了第一套数据库查询语言标准,称为SQL-89或FIPS 127-1。

  • 1992年: ANSI发布了修订后的标准ANSI / ISO SQL-92或SQL2,它们比SQLI更严格,增加了一些新功能。这些标准引入了合规水平,表明方言符合ANSI标准的程度。

  • 1999: ANSI发布SQL3或ANSI / ISO SQL:1999,具有新功能,如对对象的支持。取代了核心规范的合规水平,以及另外9个封装的附加规格。

  • 2003: ANSI发布SQL:2003,引入标准化序列,XML相关功能和标识列。第一个RDBMS的创建者EFCodd博士于同年4月18日去世。

  • 2006: ANSI发布SQL:2006,定义如何将SQL与XML结合使用,并使应用程序能够将XQuery集成到现有的SQL代码中。

  • 2008: ANSI发布SQL:2008,引入INSTEAD OF触发器以及TRUNCATE语句。

  • 2011: ANSI发布SQL:2011或ISO / IEC 9075:2011,ISO(1987)的第七个修订版和SQL数据库查询语言的ANSI(1986)标准。

他们将新的ANSI SQL标准分为九个部分,包括:

  • 第1部分 - ISO / IEC 9075-1:2011 SQL / Framework,它提供了逻辑概念。

  • 第2部分 - ISO / IEC 9075-2:2011 SQL / Foundation,包括中心元素SQL。

  • 第3部分ISO / IEC 9075-3:2008 SQL /调用级接口(CLI)解释了接口组件,例如用于以各种编码语言(如COBOL和C ++)执行SQL语句的过程,结构和变量绑定。

  • 第4部分ISO / IEC 9075-4:2011 SQL /持久存储模块(PSM),概述了SQL的过程扩展标准,包括条件处理和控制流,以及语句条件信号和重新标记,以及局部变量和游标。将表达式分配给参数和变量。解决了持久数据库语言例程(如存储过程)的维护问题。

  • 第9部分ISO / IEC 9075-9:2008 SQL /外部数据管理(MED),包括用于定义数据链接类型的SQL扩展和允许SQL管理外部数据的外部数据包装器。外部数据是可访问的,但不受基于SQL的DBMS管理。

  • 第10部分ISO / IEC 9075-10:2008 SQL /对象语言绑定(OLB)定义了SQLJ的语义和语法。SQLJ是将SQL嵌入到Java中。该标准规定了SQLJ应用程序的二进制可移植性机制。它还定义了几个Java包及其包含的类。

  • 第11部分ISO / IEC 9075-11:2011 SQL /信息和定义Schemata,指定信息模式和定义模式,提供使SQL对象和数据库自我描述的工具。包括SQL对象标识符,安全性和授权规范,以及安全性和完整性约束。支持ISO / IEC 9075的功能和包,以及基于SQL的DBMS实现提供的功能。

  • 第13部分 - ISO / IEC 9075-13:2008 ISO / IEC 9075-13:2008:SQL例程和类型使用Java编程语言(JRT),指定将Java类用作SQL结构化用户定义类型的能力从SQL应用程序中调用静态Java方法作为例程,在数据库中称为Java。

  • 第14部分 - ISO / IEC 9075-14:2011 SQL / XML相关规范,定义了在SQL中使用XML时基于SQL的扩展。它概述了XML数据类型,例程和函数。它还描述了在SQL数据库中存储和管理XML的XML到SQL数据类型映射。

ISO / IEC 13249 SQL多媒体和应用程序包与ISO / IEC 9075一起作为单独但相关的标准,指定基于SQL的各种接口和包。

该软件包的目标是提供对最常见的数据库应用程序的集中访问,例如图片,文本,空间数据和数据挖掘。

如何查找标准副本

由于ISO和ANSI版权限制,SQL标准规范的硬拷贝仅可购买。您可以在ANSI网站上找到电子副本,方法是选择“访问标准 - eStandards商店”并搜索“SQL语言”。

每个文档有两种变体,但它们是相同的:

  1. INCITS / ISO / IEC 9075 - * - 2011

  2. ISO / IEC 9075 - *:2011

每个数据库创建者都希望遵守这些标准,从而使SQL的各种实现变得相似; 但是,每个实现仍然具有使用SQL的独特方言,包括标准的扩展或添加。

将SQL置于测试中

所有SQL方言的基本SQL命令和语句都是类似的,因此一旦DBA知道如何使用它,他们就可以轻松地学习其他方法。

虽然大多数SQL数据库程序都有自己的专有扩展,但为了符合ANSI标准,它们必须至少以相同的方式支持这五个主要命令:

  1. UPDATE

  2. 删除

  3. 选择

  4. 哪里

SQL使DBA能够在数据库中执行以下操作:

  • 执行查询

  • 检索数据

  • 插入,更新和删除记录

  • 创建新表和视图

  • 建立新的数据库

  • 生成存储过程

  • 设置视图,表和过程的权限。

为了生成可以从数据库访问数据的网站,关系数据库管理系统(RDBMS)数据库程序是必要的。一些流行的RDBMS程序包括:

  • SQL Server

  • MS Access

  • MySQL的

  • Postgre SQL

  • Oracle数据库。

为了创建数据库,数据库管理员还需要使用以下内容:

  • 标准的标记语言,如CSS / HTML

  • 服务器端脚本语言,例如ASP或PHP。

  • 了解如何使用SQL检索您请求的数据。

数据库的剖析

关系数据库管理系统(RDBMS)构成了数据库的基础。使用RDBMS允许DBA将数据存储在称为表的数据库对象中。表由按部分组织的列和行相关数据组成。

识别数据库表

大多数数据库包含多个表,因此DBA必须使用名称标识每个表。每个表都包含包含信息和数据的记录行。

例如,企业将使用具有客户表的数据库,该客户表包含每个客户的以下数据:

  1. 顾客姓名

  2. 联系人姓名

  3. 客户ID

  4. 客户地址 - 街道,城市,邮政编码和国家

  5. 客户联系信息

在这种情况下,该表包含五个记录 - 每个客户一个 - 和八列,每个数据块一个:客户名称,联系人姓名,客户ID,包括城市的客户地址,邮政编码和国家/地区,以及客户联系信息。

与SQL数据库通信

数据库管理员使用SQL语句执行数据库中所需的所有操作。然后将结果存储在结果表中,称为结果集。

SQL通常不区分大小写,并且某些数据库系统需要在每个SQL语句的末尾使用分号。分号已成为在数据库系统中将SQL语句彼此分离的标准方法。

这使DBA能够在一次调用服务器时执行多个SQL语句。

一些SQL命令包括:

  • ALTER TABLE修改表。

  • ALTER DATABASE修改数据库。

  • CREATE DATABASE创建新数据库。

  • CREATE INDEX创建索引/搜索键。

  • CREATE TABLE创建新表。

  • DELETE从数据库中删除数据。

  • DROP INDEX删除索引。

  • DROP TABLE删除表

  • INSERT INTO将新数据插入数据库。

  • SELECT从数据库中提取数据。

  • UPDATE更新数据库中的数据。

Codd的12条规则

当他创建第一个关系数据库管理系统时,Codd博士包含了13条规则,建议如果数据库管理系统满足所有这些规则,那么它就是一个真正的关系数据库管理系统。

因为他从0到12编号,他们被称为Codd的12条规则:

  • 规则零:基础声明基本系统必须满足三个基本要求:它必须是关系型的,包括数据库和管理系统。它还必须专门利用关系设施来管理数据库,才能被视为真正的RDBMS。

  • 规则一:信息表示以单数形式表示数据库中的所有信息,特别是通过将值放在表行内的列位置。

  • 规则二:保证访问所有数据都必须是可访问的,就像主键的基本要求一样。通过定义包含的表和列的名称以及包含行的主键值,可以合理地寻址数据库中的每个单独标量值。

  • 规则三:处理空值 DBMS必须让每个字段保持为空或为空。这意味着它必须以系统的方式支持对任何不适用或缺失信息的表示的操纵,该方式不同于所有常规值,并且独立于数据类型。

  • 规则四:活动在线目录系统必须支持使用其常规查询语言的授权用户可访问的内联,联机,关系结构或目录。用户应该能够使用他们用于访问数据库内部数据的相同关系模型和查询语言来访问数据库的目录。

  • 规则五:综合数据子语言系统必须支持至少一种具有线性语法的关系语言。用户应该能够在应用程序中以交互方式利用它。它还必须支持数据操作操作(如更新和检索)和数据定义操作(如视图定义)以及事务管理操作(如提交,开始和回滚)。它还应该具有完整性和安全性约束。

  • 规则六:更新任何理论上可以更新的视图都必须由系统更新。

  • 规则七:高级更新,插入和删除系统应该支持一次更新,插入和删除操作符,以便用户可以从由多个表和/或行的数据构成的集合中检索关系数据库中的数据。应为任何可检索集启用更新,插入和删除操作,而不是单个表中的单行。

  • 规则八:物理数据独立性物理级别的更新不应要求基于结构更新应用程序。例如,数据存储方式的更改,例如是否将数据放在数组或链接列表中。

  • 规则九:逻辑数据独立性对逻辑级别的更新(例如列,表和行)不应要求基于结构更新应用程序。实现逻辑数据独立性比物理数据独立性更难。

  • 规则10:完整性独立性指定完整性约束必须与应用程序和目录分开存储。必须可以在适当时更新这些约束而不影响任何当前存在的应用程序。

  • 规则11:分发独立性数据库用户不应看到数据库各部分到各个位置的分布。面对引入DBMS的分布式版本或当前分布式数据在整个系统中重新分配时,所有现有应用程序应能够连续有效地运行。

  • 规则12:非颠覆如果系统提供一次一个记录或低级别接口,则无法利用它来减少另一个系统。这种情况的一个例子是绕过关系完整性或安全约束的行为。

结构化查询语言或SQL已经走过了漫长的道路,但用于创建它的基础仍然很强大。随着云计算成为常态,数据库管理员可能会发现更多使用它的方式和地点; 但是,ANSI将保留用于指定统一数据库查询语言的标准。

资源:

ANSI.org

SQL的历史

W3Resource

←网站管理员工具的最终列表AZHTTP状态代码→

转载于:https://my.oschina.net/hblt147/blog/1843640

ANSI SQL标准和准则相关推荐

  1. mysql ansi sql标准_Mysql数据库隔离级别(ANSI SQL92规范,行锁,间隙锁)

    一. 什么是数据库隔离级别? ANSI(美国国家标准学会:AMERICAN NATIONAL STANDARDS INSTITUTE)在多个事务并发的时候能够正确的处理数据所定义的规范.事务隔离级别越 ...

  2. Oracle 20c 新特性知多少?ANSI SQL 全支持之 EXCEPT 运算符增强

    导读:在 Oracle 20c 中,Oracle 增加了对于集合运算符的增强,全部支持了 ANSI SQL 标准的关键字,新增了 EXCEPT 关键字支持. 在 Oracle 20c 中,Oracle ...

  3. 【数据库理论】研究 ANSI/ISO SQL 标准、事务、数据异常与隔离级别

    文章目录 一.前言 二.简介研究的演进过程 三.一致性级别与锁机制 3.1 定义 1 :一致性的非正规定义 3.2 定义 2 :一致性的锁协议定义 3.3 定义 3 :一致性的正式定义 四.<A ...

  4. mysql用的sql标准_标准SQL语言的用法_MySQL

    SQL语言是目前最通用的关系数据库语言.ANSI SQL是指由美国国家标准局(ANSI)的数据库委员会制定的标准SQL语言,多数关系数据库产品支持标准SQL语言,但是它们也往往有各自的SQL方言. 在 ...

  5. 【数据库基本原理】详解SQL标准中的隔离级别定义

    详解SQL标准中的隔离级别定义 SQL标准中隔离级别的初衷 SQL标准,已被ANSI 和ISO/IEC采用,定义了四种事务隔离级别.这些隔离级别在事务处理吞吐量上游不同程度的影响. 这些隔离级别根据并 ...

  6. SQL全方位攻略:3.SQL标准

    系列文章目录 1.数据库介绍 2.SQL介绍 文章目录 系列文章目录 3. SQL标准 3.1 ISO SQL和ANSI SQL 3.2 SQL标准的历史 1. SQL-86 2. SQL-89 (S ...

  7. ansi c标准_C/C++的起源与发展故事,我是最牛的软件编程语言,不接受反驳

    C语言和C++语言绝对是计算机软件界最经典和坚挺的编程语言,不论多少语言走完了诞生.发展.消亡的生命历程,这两种语言依然保有旺盛的生命力.而两者之间的关系,说是继承也好.扩展也好.父子也好,总之是有千 ...

  8. ansi c标准_C语言为什么需要有标准库

    标准库是 ANSI C 语言标准的一个重要组成部分.在 ANSI C 标准之前,不同的 C 系统都提供了库,其中包含许多常用功能函数,以及相关的类型与变量定义.随着发展,不同 C 系统所提供的库之间的 ...

  9. C语言 | 什么是ANSI C标准?

    1024G 嵌入式资源大放送!包括但不限于C/C++.单片机.Linux等.关注微信公众号[嵌入式大杂烩],回复1024,即可免费获取! 我们在很多地方都有看到过K&R C.ANSI C.IS ...

  10. C/C++编程:什么是ANSI C标准?

    我们在很多地方都有看到过K&R C.ANSI C.ISO C.C89.C99.C11等标准,具体有什么不同呢?(文末有个很好的实例) 什么是K&R C? 1978年,丹尼斯•里奇(De ...

最新文章

  1. axios使用post请求的时候后台接收不到参数
  2. android应用程序的混淆打包
  3. nmake构建Geos库
  4. ❗HTML引入CSS的三种常用方式汇总❗
  5. 使用nhmicro提供的micro-datasource嵌入式的解决微服务架构中分布式事务问题
  6. 制作Ubuntu U 盘启动盘在ubuntu12.04中
  7. 简洁的 Bash Programming 技巧(三)
  8. 动态生成表格呈现还是将表格直接绑定gridview等控件呈现的开发方式选择依据...
  9. linux系统在windows看不到,Linux下怎么看不到盘符啊?
  10. mdstyle暂存备用
  11. java中final类调用_Java中final的使用
  12. Spark (一):大数据概述
  13. torch.norm的理解
  14. 48搜索相关参数梳理以及bouncing results问题解决方案
  15. bootstraptable treegrid
  16. 设置vs工程中的宏参数
  17. CleanMyMac X4.20最新mac电脑优化工具好用吗?
  18. 电脑如何进入bios设置?
  19. 粉象生活宇漫:贴吧引流实战教程
  20. 饭否android客户端,fanfou(饭否) android客户端 代码学习二

热门文章

  1. 区块链如何解决电商供应的问题?
  2. 华为杯数学建模竞赛百分百获奖经验分享(获奖 == 四分经验,三分运气,三分实力)
  3. 国二c语言题库 word,国家二级计算机考试MS-Office历年真题题库及答案
  4. 免费代理ip网站总结
  5. nginx:工作原理
  6. Windows远程桌面开发之九-虚拟显示器(Windows 10 Indirect Display 虚拟显示器驱动开发)
  7. npm下载axios
  8. 使用for循环打印出大写字母的ASCII码对照表(c语言实现)
  9. Tomcat原理简述
  10. IDEA中部署Tomcat及原理