E-SQL

Posted love-life-insist

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了E-SQL相关的知识,希望对你有一定的参考价值。

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

以上是关于E-SQL的主要内容,如果未能解决你的问题,请参考以下文章