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等。
内嵌函数:说明变量的命令。
其他命令:嵌于命令中使用的标准函数。