数据库学习的一天(5)

第九讲

1.关于嵌入式sql:由于交互式sql的局限性而诞生的一种sql形式

2.交互式sql的局限性:

   ①首先就是用户不友好,要掌握交互式SQL,写出繁琐的查找条件,很大程度上必须依靠专业学习

   ②有些复杂的检索难以通过一条交互式sql来完成,此时如果能够引用高级语言的顺序执行,循环,分支则会更好地解决问题

3.嵌入式sql的特性:

4.示范例子:

前缀 exec sql用于提供给编译器,使其识别将要执行的是嵌入式sql

into:则是将检索出来的结果赋值到程序变量中,而在外部的调用则无需“:”,而且这些程序变量都需要提前声明

扫描二维码关注公众号,回复: 9704740 查看本文章

其次,作为程序变量,同时能够注入查询条件。(一部分DBMS能够处理数据类型不一致,有些则不行)

5.程序与数据库的连接与断开:

6.sql语句的提交与撤销:只有通过了提交与撤销才能确定操作的结果。

7.事务:一次存取或改变数据库的行为,或者是一条或者多条的sql语句执行的行为

当确认到提交或撤销是,上面的sql语句才会被视为一个事务去进行。

8.事务的特性:

何为可恢复,即恢复到执行上述的sql语句之前的状态。

9.游标:用于检索多行的数据

游标的使用流程:①定义一个游标 ②open游标 ③fetch(每次的fetch都会使得游标往下一个元组,当碰到EOF即数据读完了),④close游标                 (每次open游标都会重新从第一行开始读取数据)

游标定义公式:

游标的关闭和打开:

游标读取数据:

10.由ODBC支持的可滚动游标:

当声明SCROLL时,就会生成一个具有滚动功能的游标,

NEXT为向后读取,PRIOR为向后读取,FIRST为读取第一个,LAST为读取最后一个,ABSOLUTE为读取绝对位置,RELATIVE为读取相对位置

11.用游标来实现定位删除:

分析:①先定义一个游标,2,3两行则是游标的子查询,游标会在该子查询中遍历,4则是游标的用途,read only或者update

          ②open 游标,开始工作,然后取出元组,然后sql对游标所指的地方进行删除

定位更新也是一致,改变游标声明的where条件,用于检索出相应的元组集进行检索,再进行修改

12.嵌入式sql的插入

13.状态捕获以及处理:

     ①有三部分构成:

    ②sqlCA:

③状态捕获:

④关于异常捕获的作用范围:从自己开始,直到下一个whenever的出现

14.DBMS记录状态的三种方式:

15.有隐式处理和显示处理两种方式:前者不会获取错误的实际状态变量,只需知道是否发生了错误;而后者则需要获取,并根据错误状态变量来决定处理方式。

以此来包裹主需要被监视的语句,从而准确获取的错误信息

第十讲

1.何为动态sql:与静态sql不同,动态sql会预先存入一个字符串中,然后等待执行的时候再传入,然后交由DBMS来处理

 在体现上区分动态sql和静态sql:前者体现为一串字符串,而后者则为sql语句

2.构造字符串,要通过字符串拼接,装在变量,最后形成待执行的sql语句(过程中要通过逻辑判定,从而决定内容)

执行

拼接

3.动态sql的两种执行方式:

前者为直接就执行,而后者需要传入变量再执行

4.数据字典:(由表和视图组成,而且仅向DBA展示部分,不是所有用户都看看见和操作的)

5.数据字典中的模式:

6.ORACLE中的视图:

7.SQLDA:

由于其存放列的详细信息,可用于构建更为复杂的动态sql

区分SQLCA和SQLDA:

8.ODBC&JDBC:

其实就是一系列的标准接口,通过调用这些接口来获取数据库连接,并操作数据库

默认情况下:每条sql指令都会自动提交,但是可以关闭自动提交,并实行事务提交和撤销:

jdbc流程: 

9.思维模式的区分:①嵌入式操作的是游标,odbc操作的是句柄,jdbc操作的是对象  ②三者在什么时候完成高级语言变量与属性的绑定:

发布了24 篇原创文章 · 获赞 3 · 访问量 1904

猜你喜欢

转载自blog.csdn.net/z1261203654/article/details/104529728