结构化查询语言(SQL)

SQL(结构化查询语言)是一种专用的编程语言,已标准化,可用于管理关系数据库和对数据执行各种操作。SQL有多种用途,包括修改数据库表和索引结构。添加,更新和删除数据行;从数据库中检索各种信息子集,以用于事务处理和分析应用程序。有一些专门的查询和操作,它们以命令的形式运行,通常称为SQL语句,例如选择,添加,插入,更新,删除,创建,更改和截断。

在1970年代末和1980年代初出现之后,SQL成为关系数据库的标准编程语言。关系系统通常称为SQL数据库,它包含一组表,其中包含行和列形式的数据,其中表中的每一列都对应于一类数据,例如,客户名称或地址,并且每一行都包含用于相交的列。

SQL还是一种特定于域的语言,用于对关系数据库管理系统(RDBMS)中保存的数据进行编程和设计。它在处理结构化数据时特别有用,在该结构化数据中,数据的不同实体/变量之间存在关系。

SQL最初基于关系代数和元组关系演算,SQL由多种类型的语句组成,通常称为数据查询语言(DQL),数据定义语言(DDL),数据控制语言(DCL)和数据操作语言(DML)。SQL的范围包括数据查询,数据操作(插入,更新和删除),数据定义(模式创建和修改)以及数据访问控制。同样,SQL被描述为一种声明性语言(4GL),因为它还包含过程元素。

SQL的应用

SQL有多种应用-

  • 1.数据集成脚本 -SQL的主要应用是由数据库管理员和开发人员编写数据集成脚本。

  • 2.分析查询- 数据分析人员使用结构化查询语言来定期设置和运行分析查询。

  • 3.检索信息- 此语言的另一个流行应用是在数据库中检索信息的子集,以用于分析应用程序和事务处理。最常用的SQL元素是选择,插入,更新,添加,删除,创建,截断和更改。

  • 4.其他重要应用程序 -SQL用于修改索引结构和数据库表。此外,用户可以使用此语言添加,更新和删除数据行。

SQL标准和专有扩展

正式的SQL标准在1986年被美国国家标准协会(ANSI)采用,然后在1987年被国际标准化组织(ISO)采用。数据库管理员以及编写数据集成脚本和数据的开发人员通常使用SQL。希望建立和运行分析查询的分析师。

围绕SQL构建的专有和开源关系数据库管理系统都可供组织使用。它们包括Microsoft SQL Server,Oracle数据库,IBM DB2,SAP HANA,SAP Adaptive Server,MySQL(现在由Oracle拥有)和PostgreSQL。

但是,这些数据库产品中的许多都支持SQL,并带有对过程编程和其他功能的标准语言的专有扩展。例如,Microsoft提供了一组称为Transact-SQL(T-SQL)的扩展,而Oracle的标准扩展版是PL / SQL。结果,供应商提供的各种SQL变体彼此之间并不完全兼容。

SQL命令和语法

SQL命令分为几种不同的类型,例如数据操作语言(DML)和数据定义语言(DDL)语句,事务控制和安全措施。

  • DML用于检索和处理数据。

  • DDL语句用于定义和修改数据库结构。

  • 事务控件有助于管理事务处理,确保在发生错误或问题时完成事务或回滚事务。

  • 安全性语句用于控制数据库访问以及创建用户角色和权限

SQL语言分为几种语言元素,包括-

  • 子句, 它们是语句和查询的组成部分。

  • 表达式,可以具有标量值也可以具有由数据的列和行组成的表

  • 谓词,用于指定可以评估为SQL三值逻辑(3VL)(是/否/未知)或布尔真值(是/否)的条件,并用于限制语句和查询的影响或更改程序流。

  • 用于根据特定条件检索数据的查询 

  • 语句,可能对架构和数据产生持久影响,或者可能控制事务,程序流,连接,会话或诊断。

  • SQL语句还包括分号(“;”)语句终止符。

  • 在SQL语句和查询中,通常忽略无关紧要的空格,这使得格式化SQL代码更容易阅读。

互操作性和标准化

供应商之间的SQL实现不兼容,并且未遵循所有标准。在特定的日期和时间语法中,字符串之间的连接,NULL和比较大小写的敏感性因供应商而异。结果,SQL代码很少可以在没有修改的情况下在数据库系统之间移植。

数据库系统之间的可移植性问题有多种原因-

  • SQL标准的复杂性和规模意味着大多数实现者不支持整个标准。

  • 该标准未在几个重要领域(例如索引,文件存储...)中指定数据库行为,而是由实现方式决定行为方式。

  • SQL标准精确地指定了一致性数据库系统必须实现的语法。但是,该标准对语言构造语义的规范定义不明确,导致模棱两可。

  • 许多数据库供应商都有大量的现有客户群。如果SQL标准的较新版本与供应商的数据库的先前行为发生冲突,则供应商可能不愿意破坏向后兼容性。

  • 供应商几乎没有商业动机,可以使用户更轻松地更改数据库供应商(请参阅供应商锁定)。

  • 评估数据库软件的用户倾向于将其他因素(例如性能)放在优先于标准一致性的位置。

SQL的优点

  • SQL查询可用于快速,有效地从数据库检索大量记录。

  • SQL用于查看数据而不将数据存储在对象中。

  • SQL连接两个或多个表并将其作为一个对象显示给用户。

  • SQL数据库使用已建立的标准,该标准已被ANSI& ISO。非SQL数据库不遵循任何明确的标准。

  • 使用标准SQL,无需编写大量代码即可更轻松地管理数据库系统。

  • SQL限制了对表的访问,因此没有人可以将行插入表中。

  • 以前,SQL数据库是关系数据库的同义词。随着面向对象的DBMS的出现,对象存储功能已扩展到关系数据库。

SQL的缺点

  • 与添加几行代码相比,连接SQL数据库要复杂得多。

  • 删除表后,视图将变为非活动状态。它取决于表对象。

  • 尽管SQL数据库符合ANSI& ISO标准,某些数据库对标准SQL进行了专有扩展,以确保供应商锁定。

  • 它是一个对象,因此占用空间。