PL/SQL

PL/SQL 知识量:16 - 57 - 244

2.1 SQL语言><

什么是SQL语言- 2.1.1 -

SQL全称为Structured Query Language(结构化查询语言),它利用一些简单的句子构成基本语法来存取数据库内容。由于SQL简单易学,目前它已经成为关系数据库系统中使用最广泛的语言。

SQL语言的功能- 2.1.2 -

使用SQL语言可以创建、维护、保护数据库对象,并且可以操作对象中的数据。 SQL可实现的功能如下:

  • 数据定义语言(Data Definition Language,DDL):主要用于创建、修改或删除数据库对象,如表、视图、索引等。

  • 数据操纵语言(Data Manipulation Language,DML):主要用于查询、添加、修改或删除存储在数据库对象中的数据。

  • 数据控制语言(Data Control Language,DCL):可以控制访问数据库中特定对象的用户,还可以控制用户对数据库的访问类型,还有用户访问权限的授予、收回。

SQL语言的执行方式- 2.1.3 -

SQL语言最主要的执行方式有:交互式SQL、嵌入式SQL以及CLI(调用层接口)等。

1、交互式SQL

交互式SQL是直接执行SQL语句,一般DBMS都提供联机交互工具,可以从前端应用程序,如SQL Server中的Query Analyzer(查询分析器)、Oracle中的SQL*Plus Worksheet,直接与SQL服务器上的数据库进行通信。

只要把查询输入到应用程序窗口,再执行SQL语句,就可以获取查询结果。通过这种方式可以迅速检查数据、验证连接和观察数据库对象。SQL语句由DBMS来进行解释。

2、嵌入式SQL

在这种方式中,将SQL语句嵌入到高级语言(宿主语言)中,使应用程序充分利用SQL访问数据库的能力、宿主语言的过程处理能力。例如,可以将SQL语句嵌入C应用程序代码中。在编译代码之前,预处理器将分析SQL语句,并把这些语句从C代码中分离出来。SQL代码被转换成能为RDMS理解的一种格式,其余的C代码则按照正常的方式进行编译。这种方式一般需要预编译,将嵌入的SQL语句转换为宿主语言编译器能处理的语句。

3、CLI(调用层接口)

CLI可以通过接口调用SQL语句。它定义了一套可以从宿主语言调用的公共函数,即提供一套API,通过函数调用实现对DBMS的操作。常用的CLI包括DBLib、OCI、ODBC、JDBC等,将逐步替代嵌入式SQL。

SQL语句结构- 2.1.4 -

SQL语言由一些简单句子构成基本的语法,所有的SQL语句均有自己的格式,典型的SQL语句是查询语句:

select name from student;

select语句用公式表示就是:select (想选择什么) from (从什么地方选择);

SQL环境- 2.1.5 -

SQL环境是指数据在其中可以存在、对数据的SQL操作可以执行的框架。实际上,可以把SQL环境看作运行在某个设备上的数据库管理系统。基本的数据库元素,比如基本表、视图等都是在SQL环境中定义的。SQL环境包含模式、目录等元素。

1、模式对象

模式对象位于目录的底层,SQL数据就存储在这一层。通过使用SQL,就可以定义SQL对象,并可以修改、存储和操作对象中的数据。SQL标准定义了表、视图、域、约束、触发器等类型的模式对象,这些对象构成了SQL环境的基础。

2、模式(Schema)

这里所说的模式是指数据库模式,而不是关系模式,是表、视图、域等数据库模式对象的聚集,它是整个SQL环境体系结构的基本单位。在SQL中,它的创建采用CREATE SCHEMA语句,其语法如下:

CREATE SCHEMA <模式名> <模式元素>

3、目录(Catalog)

SQL目录是对某一单个数据库的描述。它是模式的聚集,每个目录都有一个或多个模式,都包含INFORMATION-SCHEMA(信息模式)特殊模式,该模式包含此目录中所有模式的信息。在目录中建立模式类似于在模式中建立表或视图之类的模式元素。

客户/服务器模型- 2.1.6 -

在数据库的使用中,经常用到的是客户/服务器模型。关系DBMS模型和SQL都非常适合于使用该模型。其工作过程可简单描述如下:

  • 运行在客户端的应用程序接收用户的输入并形成SQL语句,然后将其发送到服务器上的DBMS。

  • DBMS翻译并执行SQL命令,并将结果发送回客户端(工作站)。

  • 运行在客户端的应用程序格式化向用户显示结果。

SQL的客户程序和服务程序与连接、会话、模块这三个概念紧密地联系在一起。

1、连接

在客户端上运行包含SQL的程序,则需要连接服务程序。可用如下的SQL连接语句,在客户程序和服务程序之间建立连接:

CONNECT TO <服务器名>
AS <连接名>

用户可以建立多个连接,但在任何时间只能有一个是活动的。可以采用如下语句切换连接:

Set Connection <连接名>

访问完毕需要断开连接,语法如下:

Disconnect <连接名>

2、会话

当连接激活时,所执行的SQL操作将在客户程序和服务程序之间形成请求-响应式的交往,这种操作序列称为会话(Session)。

会话与建立它的连接处于同一状态,当连接处于待用状态时,会话也处于待用状态;当连接被激活时,会话也被激活。每个会话都有当前目录和该目录中的当前模式。

3、模块

SQL实现至少为客户端用户提供如下3种类型的应用程序(称为模块,Module)之一:

  • 通用SQL接口,如交互式SQL。

  • 嵌入式SQL,如嵌入于宿主语言中。

  • 实际模块,如存储过程等