数据库原理-嵌入式sql

嵌入式SQL是一种将SQL语句直接写入C语言,COBOL,FORTRAN, Ada等编程语言的源代码中的方法。借此方法,可使得应用程序拥有了访问数据以及处理数据的能力。

以下是嵌入式sql基本处理过程:

嵌入式sql语句与主语言之间的通信

sql向主语言传递状态信息,是主语言能控制sql程序流程-sql通信区

主语言向sql提供变量-主变量

sql执行结果交给主语言处理-主变量,游标

sql通信区

SQL语句执行后,系统要反馈给应用程序若干信息,主要包括描述系统当前工作状态和运行环境的各种数据,这些信息将送到SQL通信区SQLCA中。应用程序从SQLCA中取出这些状态信息,据此决定接下来执行的语句。
SQLCA是一个数据结构,在应用程序中用EXEC SQL INCLUDE SQLCA加以定义。

SQLCA中有一个存放每次执行SQL语句后返回代码的变量SQLCODE。

应用程序每执行完一条SQL 语句之后都应该测试一下SQLCODE的值,以了解该SQL语句执行情况并做相应处理。

如果SQLCODE等于预定义的常量SUCCESS,则表示SQL语句成功,否则表示错误代码。

例如在执行删除语句DELETE后,根据不同的执行情况,SQLCA中有下列不同的信息:
·违反数据保护规则,操作拒绝
·没有满足条件的行,一行也没有删除
·成功删除,并有删除的行数(SQLCODE=SUCCESS)
·无条件删除警告信息
·由于各种原因,执行出错

主变量

ESQL语句中可以使用宿主语言的程序变量来输入或输出数据。

把在SQL语句中使用的主语言程序变量简称为宿主变量(Host Variable),或称主变量。主要用于嵌入式SQL与宿主语言之间的数据交流,根据作用的不同可将主变量分为输入变量和输出变量。负责对SQL操作输入参数值的主变量为输入主变量,负责接受SQL操作的返回值的主变量为输出主变量,如果返回值为NULL,将不置入主变量,因为宿主语言一般不能处理空值。 

游标

主语言是面向记录的,一组主变量一次只能存放一条记录,仅使用主变量并不能完全满足SQL语句向应用程序输出数据的要求。利用游标来协调这两种不同的处理方式。在数据库开发过程中,当你检索的数据只是一条记录时,你所编写的事务语句代码往往使用SELECT INSERT 语句,需要用游标从某一结果集中逐一地读取一条记录。

不需要使用游标的情况:

  • 查询结果为单条记录

这类语句不需要使用游标,只需要用INTO 子句指定存放查询结果的主变量

  • 非current形式的增删改语句

在UPDATE的SET子句和WHERE子句中可以使用主变量,SET子句还可以使用指示变量

实例:

[例2] 根据学生号码查询学生信息。假设已经把要查询的学生的学号赋给了主变量givensno。

EXEC SQL SELECT Sno,Sname,Ssex,Sage,Sdept

INTO  :Hsno, : Hname ,:Hsex,:Hage,:Hdept

FROM  Student

WHERE Sno=:givensno;
[例3] 将计算机系全体学生年龄置NULL值。

Sageid=-1;

EXEC SQL UPDATE Student

SET Sage=:Raise :Sageid

WHERE Sdept= ‘CS‘;

将指示变量Sageid赋一个负值后,无论主变量Raise为何值,RDBMS都会将CS系所有学生的年龄置空值 。

等价于:

EXEC SQL UPDATE Student

SET Sage=NULL

WHERE Sdept= ‘CS‘;

使用游标的sql语句

必须使用游标的SQL 语句

  • 查询结果为多条记录的SELECT 语句
  • CURRENT 形式的UPDATE 语句
  • CURRENT 形式的DELETE 语句

CURRENT 形式的UPDATE 语句和DELETE 语句的用途是面向集合的操作,一次操作所有记录。如果只想修改或删除其中某个记录,用带游标的SELECT 语句查出所有满足条件的记录,从中进一步找出要修改或删除的记录,用CURRENT 形式的UPDATE 语句和DELETE 语句修改或删除之 。

注意:当游标定义中的SELECT 语句带有UNION 或ORDER BY 子句时,该SELECT 语句相当于定义了一个不可更新的视图,就不能使用CURRENT 形式的UPDATE 语句和DELETE 语句。

时间: 2024-10-08 00:11:07

数据库原理-嵌入式sql的相关文章

JAVA-Unit01: 数据库原理 、 SQL(DDL、DML)

Unit01: 数据库原理 . SQL(DDL.DML) SQL语句是不区分大小写的,但是行业里习惯将关键字与分关键字用大小写岔开以提高可读性. SELECT SYSDATE FROM dual DDL语句 数据定义语言 用于操作数据库对象 数据库对象有:表,视图,索引,序列 创建表: CREATE TABLE employee( id NUMBER(4), name VARCHAR2(20), gender CHAR(1), birth DATE, salary NUMBER(6,2), jo

数据库原理、SQL DDL、DML

1. 根据上述表信息创建员工表employee 创建employee表的SQL语句如下: CREATE TABLE employee( id INT(4), NAME VARCHAR(20) NOT NULL, gender CHAR(1) DEFAULT 'M', birth DATE, salary DOUBLE(6,2), comm DOUBLE(6,2), job VARCHAR(30), manager INT(4), deptno INT(2) ); 2.  修改员工表 1)修改em

ORACLE---Unit01: 数据库原理 、 SQL(DDL、DML)

--SQL语句是不区分大小写的,但是为了增加可读性,可以将关键字全部大写,非关键子全部小写.SELECT SYSDATE FROM dual; --SQL语句根据功能有不同分类:--DDL语句(数据定义语言)--用于操作数据库对象.数据库对象包括:--表.视图.索引.序列 --->1.创建表:CREATE TABLE employee_RR( id NUMBER(4), name VARCHAR2(20), gender CHAR(1), birth DATE, salary NUMBER(6,

[Sqlite] 移动嵌入式数据库Sqlite日报SQL操作语句汇总

前言:     嵌入式数据库Sqlite基本sql使用摘要.使用测试,与关系数据库mysql在语法上有非常多的类似之处,先准备測试数据: CREATE TABLE COMPANY(ID INT NOT NULL, NAME VARCHAR(20),AGE INT,ADDRESS VARCHAR(20),SALARY DECIMAL(7,2)); INSERT INTO "COMPANY" VALUES(1,'Paul',32,'California',20000); INSERT IN

数据库原理与应用 基于SQL Server 2005pdf

下载地址:网盘下载 <数据库原理与应用 基于SQL Server 2005>介绍数据库基本原理,并以sql server 2005为平台介绍数据库管理系统的应用.全书分为3部分,第l-5章介绍数据库的一般原理,第6-18章介绍sql server 2005的数据管理功能,第19-20章介绍以vb作为前端设计工具.以sql server 2005作为数据库平台开发数据库应用系统的技术.本书最后的附录还给出了一个数据库系统设计过程. 本书由浅入深.循序渐进地介绍各个知识点.书中提供了大量例题,有助

sql数据库原理

数据库原理第一章 关系模型与关系代数1.完整性约束(1)实体完整性规则(主码不为null)(2)参照完整性,用来描述实体之间的联系(3)用户自定义完整性 2.关系代数(1)传统的集合运算并 (t属于r或者s)t = r U s 差(t属于r不属于s) t = r – s 交(t属于r并且属于s)t=r n s 笛卡尔积(t的个数为r*s) t=rxs 3.表达式 连接和笛卡尔积一样 除(在R中具备S的集) 第二章 SQL语言1.sql语言(1)数据查询 select(2)数据定义 create

SQL Server数据库原理及部署

一.使用数据库的必要性 使用数据库可以高效且条理分明地存储数据,使工作人员能够更加迅速.方便地管理数据.数据库具有以下特点: 可以结构化的存储大量的数据信息,方便用户进行有效的检索和访问: 可以有效地保持数据信息的一致性.完整性.降低数据冗余: 可以满足应用的共享和安全方面的要求: 常见的数据库有:SQL Server.MySQL.Oracle等,SQL Server是运行在Windows操作环境中,拥有相对比较友好的图形化界面. 二.数据库的基本概念 1.数据 描述事物的符号记录称为数据,数据

数据库原理

第一章 数据库系统基本概念 要求.目标: 了解和掌握数据管理技术的发展阶段,数据描述的术语,数据抽象的四个级别,数据库管理系统的功能,数据库系统的组成. 一. 数据管理技术的发展 1. 分为四个阶段:人工管理阶段.文件系统阶段.数据库阶段和高级数据库阶段. 2. 数据库阶段数据管理的特点: 1) 采用数据模型表示复杂的数据结构. 2) 有较高的数据独立性. 3) 数据库系统为用户提供了方便的用户接口. 4) 提供四方面的数据控制功能:数据库的恢复.数据库的并发控制.数据的完整性.数据安全性. 5

数据库原理相关知识

数据库原理相关知识 made by @杨领well([email protected]) 一.基础知识 1. 简述数据库系统的特点. 数据结构化 : 这是数据库系统与文件系统的本质区别. 数据的共享性高.冗余度低且易扩充 : 数据共享可以大大减少数据冗余, 节约存储空间.数据共享还能够避免数据之间的不相容性和不一致性. 数据的独立性高 : 数据独立性包括物理独立性和逻辑独立性. 数据由数据库管理系统统一管理和控制 : 数据的安全性保护(保护数据以防止不合法使用造成的数据泄密和破坏).数据的完整性