數據庫學習的一天(5)

第九講

1.關於嵌入式sql:由於交互式sql的侷限性而誕生的一種sql形式

2.交互式sql的侷限性:

   ①首先就是用戶不友好,要掌握交互式SQL,寫出繁瑣的查找條件,很大程度上必須依靠專業學習

   ②有些複雜的檢索難以通過一條交互式sql來完成,此時如果能夠引用高級語言的順序執行,循環,分支則會更好地解決問題

3.嵌入式sql的特性:

4.示範例子:

前綴 exec sql用於提供給編譯器,使其識別將要執行的是嵌入式sql

into:則是將檢索出來的結果賦值到程序變量中,而在外部的調用則無需“:”,而且這些程序變量都需要提前聲明

其次,作爲程序變量,同時能夠注入查詢條件。(一部分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操作的是對象  ②三者在什麼時候完成高級語言變量與屬性的綁定:

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章