freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

精通sql[經(jīng)典sql語句大全-資料下載頁

2025-08-02 21:39本頁面
  

【正文】 如果不是,再假定它是一個(gè)PLSQL的標(biāo)識(shí)符。所以如果一個(gè)PLSQL的變量名為ID,列中也有個(gè)ID,如:SELECT date_ordered, date_shippedINTO date_ordered, date_shippedFROM s_ordWHERE id = id。 就會(huì)返回TOO MANY ROWS,這是要盡量避免的。 四、SQL CURSOR 游標(biāo)是一個(gè)獨(dú)立SQL工作區(qū),有兩種性質(zhì)的游標(biāo): 隱式游標(biāo): 當(dāng)PARSE 和EXECUTE 時(shí)使用隱式游標(biāo)。 顯式游標(biāo): 是由程序員顯式聲明的。 游標(biāo)的屬性: SQL%ROWCOUNT:一個(gè)整數(shù)值,最近SQL語句影響的行數(shù)。 SQL%FOUND BOOLEAN屬性,如果為TRUE,說明最近的SQL STATEMENT有返回值。 SQL%NOTFOUND 與SQL%FOUND相反 SQL%ISOPEN 在隱式游標(biāo)中經(jīng)常是FALSE,因?yàn)閳?zhí)行后立即自動(dòng)關(guān)閉了。 SQL variable row_de number SQL r 1 declare 2 v_deptno number:=10。 3 begin 4 delete from emp where 5 deptno=v_deptno。 6 :row_de:=sql%rowcount。 7* end。PL/SQL 過程已成功完成。SQL print row_de 這是一個(gè)SQL PLUS變量 ROW_DE 4 這時(shí)其實(shí)并沒有真正的刪除,而是需要 COMMIT或ROLLBACK,來完成事務(wù)。 課程 十二 編寫控制結(jié)構(gòu)語句 本課重點(diǎn): 結(jié)構(gòu)控制的的用途和類型 IF 結(jié)構(gòu) 構(gòu)造和標(biāo)識(shí)不同的循環(huán) 使用邏輯表 控制流和嵌套 注意:以下實(shí)例中標(biāo)點(diǎn)均為英文半角 一、控制執(zhí)行流 可以是分支和循環(huán):IF THEN END IF IF condition THENstatements。[ELSIF condition THENstatements。][ELSEstatements。]END IF。 例子:IF V_ENAME=39。OSBORNE39。 THEN V_MGR:=22。 END IF。 這里我們可以注意,PLSQL和C語言或JAVA在條件上的不同,=代表關(guān)系運(yùn)算,而:=代表賦值。 看一個(gè)函數(shù): create FUNCTION calc_val(v_start IN NUMBER)RETURN NUMBERISBEGINIF v_start 100 THENRETURN (2 * v_start)。ELSIF v_start = 50 THENRETURN (.5 * v_start)。ELSERETURN (.1 * v_start)。END IF。END calc_val。 現(xiàn)在,雖然我們尚未講解CREATE 函數(shù)或過程,但可以看到IF 條件在其中的作用。 二、注意LOGIC TABLE中的邏輯對應(yīng)關(guān)系 NOT、AND、OR 任何表達(dá)式中含有空值結(jié)果都為 NULL 連接字符串中含有空值會(huì)把NULL作為 EMPTY STRING declare v_deptno %type。 v_loc %type。V_FLAG BOOLEAN 。V_REC BOOLEAN :=FALSE。 此值改為TRUE、NULL、FALSE進(jìn)行不同的比較V_AVA BOOLEAN:=NULL。 beginV_FLAG:=V_REC AND V_AVA。IF V_FLAG=TRUE THEN (39。TRUE39。)。ELSIF V_FLAG=FALSE THEN (39。FALSE39。)。ELSE (39。NULL39。)。END IF。 end。/ 值得注意的是:NULL AND FALSE FALSE 這是在實(shí)踐中總結(jié)出來的。 三、基本循環(huán)基礎(chǔ): LOOPstatement1。statement2。. . .EXIT [WHEN condition]。END LOOP。 v_ord_id %TYPE := 101。v_counter NUMBER (2) := 1。BEGIN. . .LOOPINSERT INTO s_item (ord_id, item_id)VALUES (v_ord_id, v_counter)。v_counter := v_counter + 1。EXIT WHEN v_counter 10。END LOOP。 FOR循環(huán): FOR index IN [REVERSE] lower_bound..upper_bound LOOPstatement1。statement2。. . .END LOOP。 實(shí)例:DECLARE V_LOWER NUMBER:=1。 V_UPPER NUMBER:=23。BEGIN(39。39。)。 FOR I IN V_LOWER..V_UPPER LOOP(I)。END LOOP。END。/ WHILE 循環(huán): WHILE condition LOOPstatement1。statement2。. . .END LOOP。 循環(huán)是可以多層嵌套的。可以用LABEL做循環(huán)的標(biāo)簽。...BEGINOuter–loopLOOPv_counter :=v_counter+1。EXIT WHEN v_counter10。Inner–loopLOOP...EXIT Outer_loop WHEN total_done = ’YES’。–– Leave both loopsEXIT WHEN inner_done = ’YES’。–– Leave inner loop only...END LOOP Inner_Loop。...END LOOP Outer_loop。END。 總結(jié):本章內(nèi)容較為繁雜,雖然不是很難,而且多數(shù)與其他高級語言有某種共性,但大家要多多練習(xí),用實(shí)踐來檢驗(yàn)對某些含糊的猜測。課程 十三 使用組合數(shù)據(jù)類型* 游標(biāo)操縱數(shù)據(jù) 本課重點(diǎn): 創(chuàng)建用戶自定義的PLSQL記錄 利用%ROWTYPE屬性來創(chuàng)建記錄 創(chuàng)建PLSQL表 描述記錄、表、記錄的表之間的區(qū)別 注意:以下實(shí)例中標(biāo)點(diǎn)均為英文半角 一、合成數(shù)據(jù)類型 類型分為PLSQL記錄和PLSQL表 包含內(nèi)部組件 可重用 二、PLSQL記錄 與3GL中的記錄結(jié)構(gòu)相似 與數(shù)據(jù)庫表是兩回事 是一個(gè)方便的途徑FETCH一些行FROM一個(gè)表來進(jìn)行相關(guān)處理。 標(biāo)準(zhǔn)語法格式我們暫不介紹,因?yàn)槊勘緯暇小? 看例子: declarevjob varchar(9)。v_count number:=0。vtotal date:=sysdate +7。c_tax constant number(3,2):=。v_valid boolean not null:=true。ttt vtotal%type。type emp_record_type is record (empno number not null:=100, ename %type, job %type)。emp_record emp_record_type。beginselect sysdate into vtotal from dual。體會(huì)有無此句與結(jié)果的影響 (vtotal)。end。/ 主要看TYPE RECORD出現(xiàn)的位置。每一個(gè)例子都是可以成功執(zhí)行的。 我們也可以利用原有的表結(jié)構(gòu): DECLARE EMP_RECORD EMP%ROWTYPE; 游標(biāo)操縱數(shù)據(jù) PLSQL游標(biāo)提供了一種從數(shù)據(jù)庫提取多行數(shù)據(jù),然后對每行數(shù)據(jù)進(jìn)行單獨(dú)處理的方法。 一、兩種游標(biāo): 顯式游標(biāo) 隱式游標(biāo) 二、顯式游標(biāo):操縱步驟如下:聲明游標(biāo)、打開游標(biāo)、從游標(biāo)中取回?cái)?shù)據(jù)、關(guān)閉游標(biāo) 三、聲明游標(biāo): DECLARE CURSOR_NAME IS SELECT STATMENT 能夠控制游標(biāo)的,我原來以為是客戶端最多可以打開多少個(gè)游標(biāo),但有本書上講這是用于管理游標(biāo)的內(nèi)存的數(shù)量。 DECLARE CURSOR C_NAME IS SELECT ENAME FROM EMP WHERE DEPTNO IN (SELECT DEPTNO FROM DEPT WHERE CITY_ID=‘BJ’) 說明游標(biāo)可以用子查詢 四、打開游標(biāo) OPEN CURSOR_NAME; 這時(shí)游標(biāo)將它的指針指向活動(dòng)集的開始,指針指向第一條記錄的前面是因?yàn)樗€沒有執(zhí)行FETCH命令。如果試圖打開一個(gè)已經(jīng)打開的游標(biāo),將出錯(cuò): ORA06511:PL/SQL:CURSOR ALREADY OPEN 我們可以這樣: IF NOT C_NAME%ISOPEN THEN OPEN C_NAME; END IF; 五、從游標(biāo)中取回?cái)?shù)據(jù) FETCH CURSOR_NAME INTO RECORLIST; 關(guān)閉游標(biāo):CLOSE CURSOR_NAME 六、實(shí)例: DECLARE myname varchar2(22)。 CURSOR C_NAME IS SELECT ENAME FROM EMP。beginIF NOT C_NAME%ISOPEN THEN OPEN C_NAME。end if。LOOPFETCH c_name into myname。 (myname)。exit when c_name%notfound。end loop。close c_name。end。/我們將對以上程序進(jìn)行變形,形成復(fù)雜的光標(biāo)利用。DECLARE myname varchar2(22)。 thisdeptno %type。 CURSOR C_NAME IS SELECT ENAME,deptno FROM EMP order by deptno desc。beginIF NOT C_NAME%ISOPEN THEN OPEN C_NAME。end if。LOOPFETCH c_name into myname,thisdeptno。 (myname||39。,39。||thisdeptno || 39。,39。 || to_char(c_name%rowcount))。exit when c_name%notfound。end loop。 (39。the Total record is fetched is 39。 || to_char(c_name%rowcount))。close c_name。end。/ 我們增加變量,進(jìn)行用了排序,使用了光標(biāo)屬性,大家看結(jié)果發(fā)生的變化,想想為什么。 實(shí)例精華!!!: DECLARE myname varchar2(22)。 ii number。 thisdeptno %type。 CURSOR C_NAME IS SELECT * FROM EMP order by deptno desc。 emp_record c_name%rowtype。beginii:=1。 for emp_record in c_name loop (ii)。ii:=ii+1。end loop。end。/這里使用了游標(biāo)FOR循環(huán),在FOR循環(huán)的開始,進(jìn)行、和END LOOP,分別隱式進(jìn)行了游標(biāo)的打開、FETCH和CLOSE。 我們甚至可以不聲明游標(biāo):FOR emp_record in (SELECT * FROM DEPT) loop 這種技術(shù)被稱為顯式游標(biāo)的自動(dòng)化。 在上
點(diǎn)擊復(fù)制文檔內(nèi)容
外語相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1