E-SQL

随声附和 提交于 2019-11-27 11:01:58

E-SQL

1.学会用嵌入式SQL对数据库进行增、删、改、查操作。

2.多行查询使用游标和STATE

3.SQL事物操作

4. 集群和模式

 

 

1:以SQL嵌入C语言为例说明实现嵌入式SQL的方法

1.1声明:通信的变量就是SQL与C语言进行数据传递

 C语言和SQL语言之间是通过共享变量来进行数据的传送。

     (1)EXEC SQL BEGIN DECLARE SECTION;

            char name[20];

Int   age;

char  sex[4];

        EXEC SQL END DECLARE SECTION;

(2)声明使用共享变量

   嵌入式SQL在执行的时候需要在前面添加EXEC SQL

   插入语句:inset into table_name(,,,)values(:xx,:ss)

插入语句的格式为:

     EXEC SQL INSERT

     INTO Student (id,  name)

     VALUES (:s_id, :s_name);  :后面的变量需要在开始的时候进行声明。

 

1.2、执行SQL

   插入语句:

插入语句的格式为:

     EXEC SQL INSERT

     INTO Student (StudentNo,   StudentName)

     VALUES (:sno, :sname);

 

修改语句:

修改语句的格式为:

update table_name set age = 12 where Id = 12

EXEC SQL UPDATE Student

SET(name=:s_name, age=:s_age)  WHERE id=:s_id;

 

删除语句:

删除语句的格式为:

delete from table_name where id = s_id

EXEC SQL DELETE

FROM student

WHERE id=

( select id FROM Student

           WHERE name=:s_name );

 

查询语句:

           当查询的结果只有一个元组时,

     EXEC SQL

 SELECT status,date INTO :qstatus,:qdate

 FROM Student

        WHERE id=:s_id;

 

2:游标的使用

(1)  查询多个数据的时候需要使用游标进行查询

(2)  经常配合循环使用来获取多个数据

2.1:游标的声明:

EXEC SQL DECLARE <游标名> CURSOR FOR

SELECT …FROM…WHERE…;

示例:ECEX SQL DECLARE RC_QRY  CURSOR FOR SELECT

l  From STUDENT WHERE ID =:s_id

2.2:打开游标

在打开游标时,执行与游标相联系的SQL查询语句。此时游标处于打开状态,游标指向第一个元组之前。

EXEC SQL OPEN <游标名>

2.3移动游标

EXEC SQL FETCH <游标名> INTO <变量表> 移动赋值给共享变量

2.4关闭游标

EXEC SQL CLOSE <游标名>;

 

3:   SQL中的事务

数据库操作的某些组合需要以原子的方式完成,也就是说,它们或者都做,或者都不做。

一个通常的解决方式是让对数据库的所有改变在本地的工作区完成,并且只有当所有的工作完成以后才把这种改变提交给数据库。

   例如:银行转账 A卡转B卡 A卡扣钱后同时要更新B卡的数量当且两个数据都更新成功之后才能提交数据。这就是事务,只是例子实际也许不这么操作。

   EXEC SQL ROLLBACK; //数据失败

   EXEC SQL COMMIT ; //数据提交

4: SQL集群

  模式(Schema):是指数据库模式,而不是关系模式,是表、视图、域等数据库元素的聚集。模式是整个体系结构的基本单位。

  Create table st.trichsuvn //表示在st这个模式下创建trichsuvn这个表.

  创建模式:CREATE SCHEMA StudentSchema

  切换模式:     SET SCHEMA StudentSchema;

  目录(Catalog):是模式的聚集,即每个目录都有一个或多个模式。在一个目录中模式的名字必须是唯一的。

在目录中建立模式类似于在模式中建立表或视图之类的模式元素。可以设想用如下语句建立学生目录:

        CREATE CATALOG StudentCatalog

      SET CATALOG StudentCatalog;

群集(Cluster):是目录的聚集。每个用户都有相关的群集,也就是该用户可以访问的所有目录的集合。群集是数据库可以操作的最大范围,因此,对于特定的用户,群集就是“数据库”。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!