logo
天地变化的道理
使用率很高网站
生活要常常分享
您身边百科全书
免费为您秀产品
SQL
SQL SQL(或,Structured Query Language,结构化查询语言)是一种特定目的程式语言,用于管理关系数据库管理系统(RDBMS),或在关系流数据管理系统(RDSMS)中进行流处理。 SQL基于关系代数和元组关系演算,包括一个数据定义语言和数据操纵语言。SQL的范围包括数据插入、查询、更新和删除,数据库模式创建和修改,以及数据访问控制。尽管SQL经常被描述为,而且很大程度上是一种声明式编程(4GL),但是其也含有过程式编程的元素。 SQL是对埃德加·科德的关系模型的第一个商业化语言实现,这一模型在其1970年的一篇具有影响力的论文《一个对于大型共享型数据库的关系模型》中被描述。尽管SQL并非完全按照科德的关系模型设计,但其依然成为最为广泛运用的数据库语言。 SQL在1986年成为美国国家标准学会(ANSI)的一项标准,在1987年成为国际标准化组织(ISO)标准。此后,这一标准经过了一系列的增订,加入了大量新特性。虽然有这一标准的存在,但大部分的SQL代码在不同的数据库系统中并不具有完全的跨平台性。 历史. 在1970年代初,由IBM研究院下属的埃德加·科德发表将资料组成表格的应用原则(-- )。1974年,同一实验室的和参考了科德的模型后,在研制关系数据库管理系统中,开发出了一套规范语言-- ,结构化英语查询语言),并在1976年11月的《》上公布新版本的-- (叫-- /2)。1980年改名为-- 1979年,甲骨文公司(当时名为关系式软件公司)首先提供商用的-- ,IBM公司在DB2和-- 数据库系统中也实现了-- 1986年10月,美国-- 采用-- 作为关系数据库管理系统的标准语言(-- ),后为国际标准化组织(-- )采纳为国际标准。 1989年,美国-- 采纳在-- 报告中定义的关系数据库管理系统的-- 标准语言,称为-- ,该标准替代-- 版本。该标准为下列组织所采纳: 报告《-- 目前,所有主要的关系数据库管理系统支持某些形式的-- ,大部分数据库至少遵守-- 标准。 标准在交叉连接(-- )和内部连接之上,新增加了外部连接,并支持在-- 子句中写连接表达式。支持集合的并运算、交运算。支持Case (SQL)表达式。支持-- 约束。创建临时表。支持-- 。支持事务隔离。 语法. SQL语言分成了几种要素,包括: 语言特点. SQL是高级的非过程化编程语言,它允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解其具体的数据存放方式。而它的界面,能使具有底层结构完全不同的数据库系统和不同数据库之间,使用相同的SQL作为数据的输入与管理。它以记录项目〔records〕的合集(set)〔项集,record set〕作为操纵对象,所有SQL语句接受项集作为输入,回送出的项集作为输出,这种项集特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语句可以嵌套,这使它拥有极大的灵活性和强大的功能。在多数情况下,在其他编程语言中需要用一大段程序才可实践的一个单独事件,而其在SQL上只需要一个语句就可以被表达出来。这也意味着用SQL可以写出非常复杂的语句,在不特别考虑效能下。 SQL同时也是数据库文件格式的扩展名。 SQL包含四个部分: 互操作性和标准化. 供应商之间的SQL实现不兼容,不一定完全遵循标准。各种数据库的SQL方言通常不可移植,特别是在日期时间语法、字符串连接、codice_1、比较的大小写敏感方面。只有PostgreSQL与Mimer SQL努力遵从标准。 标准化历史. SQL在1986年被ANSI标准化,1987年被ISO标准化。由维护。标准名称通常为如下模式:"ISO/IEC 9075-n:yyyy Part n: title"。 当前标准. 该标准通常用以下模式表示:ISO/IEC 9075-n:yyyy 第n部分:标题,或者简称为ISO/IEC 9075。 ISO / IEC 9075补充了ISO / IEC 13249:SQL多媒体和应用程序包(SQL/MM),该程序包定义了基于SQL的接口和包,给诸如视频,音频和空间数据之类的广泛的应用程序。感兴趣的各方可以从ISO、IEC或ANSI购买SQL标准文档。SQL:2008的草稿可作为zip存档免费获得。 SQL标准剖析. SQL标准包含10部分: ISO / IEC标准的扩展. "ISO/IEC 9075"被"ISO/IEC 13249: SQL Multimedia and Application Packages" (SQL/MM)补充。后者定义了基于SQL的音视频、空间数据的界面与包。包括: 微软MS SQL-Server,以及系列资料库所用的SQL Oracle 资料库所使用的SQL 安全问题. 由于SQL指令在部份进阶使用时,语法会依照特定条件来变换,而且若是表格中的栏位过多时,许多开发人员都会习惯以字串组立的方式建立SQL指令,而且又使用系统管理员级的帐户连到资料库,因此让骇客有机会利用SQL的组立方式进行攻击,像是在指令中添加部份刺探性或破坏性的指令(例如codice_2、codice_3或是codice_4等具破坏性的指令),让资料库的资料或实体伺服器被破坏,导致服务中断或是系统瘫痪等后果,或是以逻辑的漏洞,在密码栏写入特殊字串(例如' or '1'='1),让该字串形成的逻辑判断永远为真,或直接取得非查询条件的资料,而不需要知道密码,以达成非法登入系统的目的,此种攻击手法称为SQL注入(SQL injection)。 目前实务上较有效的防御方法,就是全面改用参数化查询。 外部连结. -{H|zh-hans:重定向;zh-hant:重新导向;}--{H|zh-cn:字符;zh-tw:字元;}--{H|zh-hans:文件; zh-hant:档案;}--{H|zh-hans:快捷方式; zh-hant:捷径;}--{H|zh-hans:项目;zh-hant:专案;zh-tw:计划;zh-hk:计划;zh-mo:计划;}--{H|zh-cn:计算机; zh-sg:电脑; zh-tw:电脑;}- -{H|zh-hans:汇编语言;zh-hant:组合语言}- -{H|zh-hans:标记语言;zh-hant:置标语言}- -{H|zh-hans:重定向;zh-hant:重新导向;}--{H|zh-cn:字符;zh-tw:字元;}--{H|zh-hans:文件; zh-hant:档案;}--{H|zh-hans:快捷方式; zh-hant:捷径;}--{H|zh-hans:项目;zh-hant:专案;zh-tw:计划;zh-hk:计划;zh-mo:计划;}--{H|zh-cn:计算机; zh-sg:电脑; zh-tw:电脑;}-
SQL
本站由爱斯园团队开发维护,感谢
那些提出宝贵意见和打赏的网友,没有你们的支持,
网站不可能发展到今天,
继往开来,善终如始,我们将继续砥砺前行。
Copyright ©2014 iissy.com, All Rights Reserved.