亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問板塊 發(fā)新帖
查看: 7610 | 回復(fù): 9
打印 上一主題 下一主題

面試問題:PL-SQL與T-SQL的最大差異是什么 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2007-10-30 16:37 |只看該作者 |倒序?yàn)g覽
PL-SQL與T-SQL的最大差異是什么? 謝謝啦。
另外, 能否比較一下他們的 鎖機(jī)制有什么區(qū)別?

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2007-10-31 19:19 |只看該作者
不懂ORACLE,也想了解一下

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2007-11-01 10:41 |只看該作者

是PL和T的差異

面向過程的PL/SQL 和面向事務(wù)處理的T-SQL

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2007-11-06 20:38 |只看該作者
1、外連接   
  ·MS   SQL   SERVER   支持兩種形式表間連接   
  ①?gòu)腟ybase繼承來的形式:   
  字段1   *=   字段2   (左連接)   
  字段1   =*   字段2   (右連接)   
  沒有這種形式的全外連接語(yǔ)法   
  ②標(biāo)準(zhǔn)的外連接語(yǔ)法   
  left   [outer]   join   on   邏輯表達(dá)式   
      right   [outer]   join   on   邏輯表達(dá)式   
  full   [outer]   join   (全外連接)   on   邏輯表達(dá)式   
  這里的邏輯表達(dá)式   可以是很復(fù)雜的表達(dá)式例如   :A.ID=B.ID   AND   (A.Parebt_ID=1   OR   A.Parent_ID=2)   
   
  需要提醒大家的是:你寫的查詢語(yǔ)句報(bào)告過這樣的錯(cuò)誤     
    Joined   tables   cannot   be   specified   in   a   query   containing   outer   join   operators.   Joined   tables   cannot   be   specified   in   a   query   containing   outer   join   operators.   View   or   function   \'dbo.VU_CAF_BILLS\'   contains   joined   tables   
  這句話告訴你,你查詢語(yǔ)句引用的視圖或者子查詢也用到了外連接,但是引用視圖或者子查詢外連接語(yǔ)法與你的外連接語(yǔ)法不一直導(dǎo)致的   
    例如:select   A.[ZONE],A.FLAG,A.FlagDesc,A.CAF_NO   
      from   dbo.VU_CAF_BILLS   A,TU_Flag   
      where   A.CAF_NO*=TU_Flag.ObjNo   
    視圖dbo.VU_CAF_BILLS的外連接語(yǔ)法是標(biāo)準(zhǔn)的SQL語(yǔ)法,而本語(yǔ)句中的外連接語(yǔ)法卻是Sybase式的外連接語(yǔ)法。     
   
   
  ·Oracle不支持標(biāo)準(zhǔn)的外連接語(yǔ)法,也沒有全外連接,這是它的缺陷   
    字段1   =   字段2(+)   (左連接)   
  字段1(+)   =   字段2   (右連接)   
   
  ·使用外連接語(yǔ)句的用處   
  ①不想因?yàn)楸磉B接而使主表數(shù)據(jù)行丟失,這一點(diǎn)毋庸多說   
  ①找某條記錄在A表存在,而在B表不存在,按常規(guī)做法使用not   in   (select   查詢子句)語(yǔ)法,   
  使用not   in   最大的缺點(diǎn)速度慢,原因是每個(gè)數(shù)據(jù)行都去做:select   查詢子句   
  而使用下面的語(yǔ)法:   
    select   TU_COMPANY.*   
    from   TU_COMPANY   left   join   TU_Comp_Agent   on   TU_COMPANY.ID=TU_Comp_Agent.CompCode   
    where   TU_Comp_Agent.Id   is   null   
   
  2、觸發(fā)器   
  ·從我了解到的,MS   SQL   SERVER,僅有表的觸發(fā)器,而且觸發(fā)時(shí)機(jī)不夠豐富   
  如插入觸發(fā)在子,不區(qū)分單條插入還是多條插入,也不區(qū)分插入前觸發(fā)還是插入后觸發(fā)   
  碰到多條數(shù)據(jù)的插入,需要使用游標(biāo)處理每條插入的數(shù)據(jù)   
   
  ·Oracle提供的觸發(fā)器不僅有基于表的觸發(fā)器,而且其他類型的,例如數(shù)據(jù)庫(kù)級(jí)的觸發(fā)器:數(shù)據(jù)庫(kù)啟動(dòng)、數(shù)據(jù)庫(kù)關(guān)閉   
  對(duì)于表級(jí)的觸發(fā)器,區(qū)分單條插入還是多條插入,也區(qū)分插入前觸發(fā)還是插入后觸發(fā)   
      
  3、表數(shù)據(jù)復(fù)制   
  ·庫(kù)內(nèi)數(shù)據(jù)復(fù)制   
    ·MS   SQL   Server     
  Insert   into   復(fù)制表名稱   select   語(yǔ)句   (復(fù)制表已經(jīng)存在)   
      select   字段列表   into   復(fù)制表名稱   from   表   (復(fù)制表不存在)   
    ·Oracle   
      Insert   into   復(fù)制表名稱   select   語(yǔ)句   (復(fù)制表已經(jīng)存在)   
      create   table   復(fù)制表名稱   as   select   語(yǔ)句   (復(fù)制表不存在)   
      
  ·文本文件轉(zhuǎn)入、轉(zhuǎn)出的批量處理   
  ·MS   SQL   Server     
  BCP命令行程序   
  ·Oracle   
      SQLLDR命令行程序   
  4、多表更新、刪除   
  一條更新語(yǔ)句是不能更新多張表的,除非使用觸發(fā)器隱含更新,我這里說的意思是:根據(jù)其他表數(shù)據(jù)更新你要更新的表   
  一般形式:   
  ·MS   SQL   Server     
    update   A   
    SET   字段1=B表字段表達(dá)式,   
      字段2=B表字段表達(dá)式   
  from   B     
  WHERE   邏輯表達(dá)式   
  ·Oracle   
    update   A   
    SET   字段1=(select   字段表達(dá)式   from   B   WHERE   ...),   
      字段2=(select   字段表達(dá)式   from   B   WHERE   ...)   
  WHERE   邏輯表達(dá)式   
      
    從以上來看,感覺oracle沒有ms   sql好,主要原因:假如A需要多個(gè)字段更新,MS_SQL語(yǔ)句更簡(jiǎn)練   
   
  你知道剛學(xué)數(shù)據(jù)庫(kù)的人怎么做上面這件事情嗎,他們使用游標(biāo)一條一條的處理   
   
   
  5、關(guān)于存儲(chǔ)過程或函數(shù)中使用的臨時(shí)表,兩者都提供了這個(gè)功能   
  臨時(shí)表,最主要的好處是,操作不留任何痕跡、不產(chǎn)生日志,   
  所以速度快   
    ·MS   SQL   SERVER   
      CREATE   TABLE   #表名稱(........)   或者   SELECT   字段表達(dá)式列表   INTO   #表名稱   FROM   
      表名稱前加#即可,這些臨時(shí)表都是只在一個(gè)數(shù)據(jù)庫(kù)連接會(huì)話期間有效   
        
  ·Oracle     
      create   [Global]   Temporary   Table   ,加上[Global]就是全局的臨時(shí)表(所有數(shù)據(jù)庫(kù)連接會(huì)話都是可見的),   
      不則為私有的(在一個(gè)數(shù)據(jù)庫(kù)連接會(huì)話期間有效)     
   
   
  6、動(dòng)態(tài)執(zhí)行SQL語(yǔ)句   
    ·MS   SQL   SERVER   7.0好象沒有這個(gè)功能,MS   SQL   SERVER   2000已經(jīng)這個(gè)功能。   
      你是不是想在存儲(chǔ)過程的參數(shù)中傳遞一個(gè)表名或者在過程體里動(dòng)態(tài)   
      生成一個(gè)SQL語(yǔ)句,你會(huì)發(fā)現(xiàn)很難辦到?戳讼旅娴睦樱耗阋郧暗膯栴}全解決了   
      declare   @count   int   
      declare   @SQL   nvarchar(200)   
      set   @SQL   =   N\'select   count(*)   from   sysobjects\'   
      exec   sp_executesql   @SQL,N\'@i   int   output\',@count   output   
      
      
  ·Oracle提供了兩種方法實(shí)現(xiàn)這個(gè)功能   
      ①程序包DBMS_SQL,執(zhí)行一個(gè)語(yǔ)句的過程:   
        打開游標(biāo)(open_cursor,對(duì)于非查詢語(yǔ)句,無此過程)   
        分析語(yǔ)句(Parse)   
        綁定變量(bind_variable)   
        執(zhí)行語(yǔ)句(execute)   
        關(guān)閉游標(biāo)(close_cursor,對(duì)于非查詢語(yǔ)句,無此過程)   
      ②execute   immediate   ls_SQL

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2007-11-07 09:37 |只看該作者
挺好的信息,學(xué)習(xí)了,謝謝

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2010-05-16 21:06 |只看該作者
和                就

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2011-05-30 21:45 |只看該作者
做下記號(hào),以后需要

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2011-06-15 12:09 |只看該作者
學(xué)習(xí)了 記錄下來

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2011-06-17 08:39 |只看該作者
介個(gè)  板凳說的是

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2012-05-23 10:03 |只看該作者
累到我再頂一下
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP