SQL语言从入门到精通
上QQ阅读APP看书,第一时间看更新

1.1 SQL语言概述

1.1.1 SQL概述

SQL(Structured Query Language结构化查询语言)语言在1974年由Boyce和Chamberlin提出。1975—1979年,IBM公司San Jose Research Laboratory研制的关系数据库管理系统(原形系统System R)实现了这种语言。

SQL是一种组织、管理和检索计算机数据库存储数据的工具。SQL是一种计算机语言,可以用来与数据库交互。事实上,SQL使用的是一种特殊类型的数据库,即关系数据库。

SQL本身不是一个数据库管理系统,也不是一个独立的产品,而是数据库管理系统不可缺少的组成部分,它是与DBMS通信的一种语言和工具。由于其功能丰富,语言简洁,使用方法灵活,因此倍受用户和计算机业界的青睐,被众多计算机公司和软件公司采用。经过多年的发展,SQL语言已成为关系数据库的标准语言。

1.1.2 SQL语言的组成

SQL语言是具有强大查询功能的数据库语言。除此以外,SQL还可以控制DBMS为其用户提供的所有功能,介绍如下。

 数据定义语言(DDL,Data Definition Language):SQL允许用户定义存储数据的结构和组织,以及存储数据项之间的关系。

 数据检索语言:SQL允许用户或应用程序从数据库中检索存储的数据并使用它。

 数据操纵语言(DML,Data Manipulation Language):SQL允许用户或应用程序通过添加新数据、删除旧数据和修改以前存储的数据对数据库进行更新。

 数据控制语言(DCL,Data Control Language):可以使用SQL来限制用户检索、添加和修改数据的能力,保护存储的数据不被未授权的用户所访问。

 数据共享:可以使用SQL来协调多个并发用户共享数据,确保用户不会相互干扰。

 数据完整性:SQL在数据库中定义完整性约束条件,使它不会因不一致的更新或系统失败而遭到破坏。

因此,SQL是一种综合性语言,用来控制数据库并与数据库管理系统进行交互。SQL是数据库子语言,包含大约40条专用于数据库管理任务的语句。

数据操作类SQL语句如表1.1所示。

表1.1 数据操作类SQL语句

数据定义类SQL语句如表1.2所示。

表1.2 数据定义类SQL语句

数据控制类SQL语句如表1.3所示。

表1.3 数据控制类SQL语句

事务控制类SQL语句如表1.4所示。

表1.4 事务控制类SQL语句

程序化SQL语句如表1.5所示。

表1.5 程序化SQL语句

1.1.3 SQL语句结构

每条SQL语句均由一个谓词(Verb)开始,该谓词描述这条语句要产生的动作,如SELECT或UPDATE关键字。谓词后紧接着一条或多条子句(Clause),子句中给出了被谓词作用的数据或提供谓词动作的详细信息。每一条子句由一个关键字开始,SELECT谓词后为FROM关键字。下面介绍SELECT语句的主要结构。语法格式如下:

     SELECT  子句
     [INTO 子句]
     FROM 子句
     [WHERE 子句]
     [GROUP  BY 子句]
     [HAVING  子句]
     [ORDER BY 子句]

【例1.1】 在db_mrsql数据库中,使用SELECT关键字查询药品销售表tb_sell,并且使用ORDER BY关键字按照“药品编号”的降序排列来显示该表中的相关信息。运行结果如图1.1所示。(实例位置:资源包\TM\sl\1\1)

SQL语句如下:

     --使用SELECT关键字查询药品销售表tb_sell,并且使用order by关键字按照“药品编号”的降序排列显示该表中的相关信息
     SELECT * FROM tb_sell ORDER BY 药品编号 DESC

图1.1 查询药品销售表中的信息

1.1.4 SQL语句分类

SQL语句分为7类,具体如下。

 变量说明语句:用来说明变量的命令。

 数据定义语言:用来建立数据库、数据库对象和定义列。大部分是以CREATE或DROP开头的命令,如CREATE TABLE、CREATE VIEW和DROP TABLE等。

 数据操纵语言:用来操纵数据库中数据的命令,如SELECT、INSERT、UPDATE和DELETE等。

 数据控制语言:用来控制数据库组件的存取许可、存取权限等命令,如GRANT、REVOKE等。

 流程控制语言:用于控制应用程序流程的语句,如IF WHILE和CASE等。

 内嵌函数:说明变量的命令。

 其他命令:嵌于命令中使用的标准函数。