posts - 110,  comments - 152,  trackbacks - 0

          第18章 使用視圖

          可以把視圖想象成有以下限制的表來(lái)用:

          1.視圖是虛擬表,它只包含使用時(shí)動(dòng)態(tài)檢索數(shù)據(jù)的查詢。

          2.視圖可以嵌套,可以利用其他的視圖來(lái)構(gòu)建新的視圖。

          3.許多DBMS限制在視圖中使用Order by子句

          4.視圖不能索引,也不能有關(guān)聯(lián)的觸發(fā)器和默認(rèn)值。

          5.有些DBMS規(guī)定視圖是只讀的,只能檢索數(shù)據(jù)不能將數(shù)據(jù)寫回系統(tǒng)。當(dāng)也有一下DBMS是這樣的,它不運(yùn)行執(zhí)行導(dǎo)致行不再屬于這個(gè)視圖的插入和更新。

          最好的用之前查手冊(cè).

          創(chuàng)建語(yǔ)法:CREATE VIEW viewname AS SELECT...

           

          第19章 使用存儲(chǔ)過(guò)程

          存儲(chǔ)過(guò)程可以看成為了以后使用而預(yù)先定義好的一條或多條Sql語(yǔ)句的集合.

          1.存儲(chǔ)過(guò)程的好處:
          簡(jiǎn)單:Sql語(yǔ)句封裝,避免重復(fù)編寫,可重復(fù)調(diào)用,修改方便。
          安全:統(tǒng)一調(diào)用減少訛誤。
          高效:通過(guò)編譯后的形式存儲(chǔ),執(zhí)行效率高。

          2.存儲(chǔ)過(guò)程的不好處:
          不統(tǒng)一:各個(gè)DBMS對(duì)存儲(chǔ)過(guò)程的使用語(yǔ)法和實(shí)現(xiàn)均不統(tǒng)一,破壞了系統(tǒng)的可移植性。復(fù)雜:相對(duì)SQL而言,更復(fù)雜,更需要經(jīng)驗(yàn)。

          具體的還是看手冊(cè)來(lái)的實(shí)際。

           

          第20章 控制事務(wù)處理

          事務(wù)處理(transaction processing)用來(lái)維護(hù)數(shù)據(jù)庫(kù)的完整。這個(gè)日常開發(fā)中遇見(jiàn)的N多。

          1.看看這幾個(gè)詞,transaction 事務(wù),rollback 回滾,commit 提交 ,savepoint 保留點(diǎn)。說(shuō)明一下savepoint,其他的不用多言了。

          2.savapoint:事務(wù)處理過(guò)程中的臨時(shí)占位符(placeholder),你可以對(duì)它發(fā)布回退.

          3.不是所有的都可以回退的,一般而言Insert,update可以回退,但是select(沒(méi)必要),create ,drop不能回退,但是事務(wù)處理中可以使用這些語(yǔ)句,但進(jìn)行回退時(shí),它們不被撤銷.

          4.一般DBMS會(huì)隱含提交(implicit commit),即sql語(yǔ)句執(zhí)行過(guò)程中,提交操作會(huì)自動(dòng)執(zhí)行。所以要顯示的聲明事務(wù)的開始和提交。

          5.MS SQL 里面關(guān)于事務(wù)的例子,可以體會(huì)Savepoint的使用。

          BEGIN TRANSACTION;
          DELETE OrderItems WHERE order_num =12345;
          SAVE TRANSACTION deleteDI;
          DELETE Orders WHERE order_num =12345;
          COMMIT TRANSACTION;
          ROLLBACK TRANSACTION deleteDI;

           

          第21章 使用游標(biāo)

          可以理解游標(biāo)其實(shí)就是操作結(jié)構(gòu)集的一種機(jī)制。

          1.游標(biāo)總是與一條T_SQL 選擇語(yǔ)句相關(guān)聯(lián)因?yàn)橛螛?biāo)由結(jié)果集(可以是零條、一條或由相關(guān)的選擇語(yǔ)句檢索出的多條記錄)和結(jié)果集中指向特定記錄的游標(biāo)位置組成。

          2.游標(biāo)主要用于交換式應(yīng)用,其中用戶需要滾動(dòng)屏幕上的數(shù)據(jù)并對(duì)數(shù)據(jù)瀏覽或操作。游標(biāo)在客戶端和服務(wù)器會(huì)話期間存在,而Web開發(fā)中,應(yīng)用服務(wù)器為數(shù)據(jù)庫(kù)客戶端而不是最終用戶,所以游標(biāo)在web開發(fā)中用的不多,web開發(fā)多使用自己開發(fā)的功能來(lái)實(shí)現(xiàn)相關(guān)操作.

          具體使用不通DBMS寫法不一樣,需要參考手冊(cè)。

           

          第22章 了解高級(jí)SQL特性

          1.約束,常見(jiàn)的約束有這些,主鍵,外鍵,唯一約束等。

          2.唯一約束與主鍵的區(qū)別:一個(gè)表可以有多個(gè)唯一約束,但是表只允許一個(gè)主鍵;唯一約束可以有Null,唯一約束可以修改或更新,唯一約束的值可以重復(fù)使用,唯一約束不能用來(lái)定義外鍵.

          3.檢查約束,用來(lái)限制列中可保存的數(shù)據(jù)的類型。
          一個(gè)例子:

          CREATE TABLE OrderItems (
               ...
               quantity  INTEGER NOT NULL CHECK (quantity > 0),
               ...
          );

          4.索引,老朋友了。有些要注意的地方
          a.索引改善檢索操作的性能,但是會(huì)降低數(shù)據(jù)插入,修改和刪除的性能。
          b.索引數(shù)據(jù)可能占有大量的存儲(chǔ)空間.
          c.選擇索引列的條件:該列的唯一性要求比較好,重復(fù)值比較多的列不適合做索引;如果一個(gè)列經(jīng)常數(shù)據(jù)過(guò)濾或者排序,可以考慮索引來(lái)優(yōu)化性能.
          d.一個(gè)表可以有多個(gè)索引列.

          5.觸發(fā)器,特殊的存儲(chǔ)過(guò)程,它在特定的數(shù)據(jù)庫(kù)活動(dòng)發(fā)生時(shí)自動(dòng)執(zhí)行.但是注意觸發(fā)器的效率不如約束快。

           

          到這里《SQL必知必會(huì)》就完了。內(nèi)容比較簡(jiǎn)單.



          平凡而簡(jiǎn)單的人一個(gè),無(wú)權(quán)無(wú)勢(shì)也無(wú)牽無(wú)掛。一路廝殺,只進(jìn)不退,死而后已,豈不爽哉!
          收起對(duì)“車”日行千里的羨慕;收起對(duì)“馬”左右逢緣的感嘆;目標(biāo)記在心里面,向前進(jìn)。一次一步,一步一腳印,跬步千里。
          這個(gè)角色很適合現(xiàn)在的


          posted on 2007-11-28 18:54 過(guò)河卒 閱讀(1025) 評(píng)論(1)  編輯  收藏 所屬分類: DataBase/Sql
          文章來(lái)自: http://www.blogjava.com/ponzmd/ (彭俊-過(guò)河卒) 轉(zhuǎn)貼請(qǐng)聲明!
          訪問(wèn)統(tǒng)計(jì):
          主站蜘蛛池模板: 贺州市| 平江县| 错那县| 札达县| 正定县| 胶州市| 赣州市| 阜新市| 临汾市| 买车| 精河县| 玉门市| 政和县| 黄骅市| 新化县| 丰城市| 三都| 沙洋县| 紫阳县| 珲春市| 云浮市| 平凉市| 芮城县| 通城县| 长武县| 尼勒克县| 涪陵区| 隆昌县| 陆良县| 堆龙德庆县| 长葛市| 南昌县| 十堰市| 乐安县| 武汉市| 江阴市| 大城县| 简阳市| 安阳县| 红桥区| 天水市|