SQL

来自维基学院

SQL(Structured Query Language),结构化查询语言。SQL与资料库两者很大关联,可以将资料库比拟为电脑储存资料的仓库,而SQL就是仓库物料的标签与专业沟通名词,也就是说SQL是应用程式与资料库之间沟通的语言,而且SQL通常就是指某种资料库系统。

SQL概述[编辑 | 编辑源代码]

SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。绝大多数流行的关系型数据库管理系统都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select, Insert, Update, Delete, Create,以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。

举个简单的例子,若资料库建里起一个名为CLIENT客户资料表,并且有一个名为 AREA代表“地区”的栏位,如果程式需要列出所有在New York的客户,那么程式就要下一段 SQL 命令给资料库:

SELECT * FROM CLIENT WHERE AREA='New York'

上述QL 送到资料库后,经资料库系统解译其意义,然后取出对应的资料,传送回下达命令的电脑端。   再举个例子:

UPDATE CLIENT SET TEL='5'+TEL WHERE AREA LIKE '新竹%'

相信可以看出它是用来把所有新竹县市的客户的电话号码前面加一个‘5’字,请注意,所有程式语言的“=”与数学的“等于”是不同意义的。 看起来很简单易懂,但是SQL是个好上手但难以精通的工具,在实际应用上,经常会碰到许多难解的问题考验著开发人员的智力与耐力。


RDB与NoSQL[编辑 | 编辑源代码]

列(属性Attribute)和行(值组Tuple)的形式

关联式资料库(Relational database,RDB),是建立在关联模型基础上的资料库,借助于集合代数等数学概念和方法来处理资料库中的资料。 表(关联Relation)是以行(值组Tuple)和列(属性Attribute)的形式组织起来的数据的集合。一个数据库包括一个或多个表(关联Relation)。例如,可能有一个有关作者信息的名为authors的表(关联Relation)。每列(属性Attribute)都包含特定类型的信息,如作者的姓氏。每行(值组Tuple)都包含有关特定作者的所有信息:姓、名、住址等等。在关系型数据库当中一个表(关联Relation)就是一个关系,一个关系数据库可以包含多个表(关联Relation)。

非关联式资料库(NOSQL)是对不同于传统的关联式资料库的资料库管理系统的统称。允许部分资料使用SQL系统储存,而其他资料允许使用NOSQL系统储存。其数据储存可以不需要固定的表格模式以及元资料(metadata),也经常会避免使用SQL的JOIN操作,一般有水平可延伸性的特征。

SQL指令类别[编辑 | 编辑源代码]

资料定义语言[编辑 | 编辑源代码]

SQL资料定义语言(data definition language,DDL)属于DBMS语言的一种,为SQL语言集中负责资料结构定义与资料库物件定义的语言,由CREATEALTERDROP三个语法所组成。


资料操纵语言[编辑 | 编辑源代码]

SQL资料操纵语言(Data Manipulation Language,DML)是用于资料库操作,对资料库其中的物件和资料执行存取工作的编程语句,通常是资料库专用编程语言之中的一个子集,例如在资讯软体产业通行标准的SQL语言中,以INSERTUPDATEDELETE三种指令为核心,分别代表插入(意指新增或创建)、更新(修改)与删除(销毁)。

资料查询语言[编辑 | 编辑源代码]

SQL查询语言(Data Query Language,DQL)为资料库或资讯系统查询的各种程式语言。