ÍÏÊÎ Ìåêîìï ïðè Ìèí÷åðìåòå      

                                     

                                     

                                     

                                     

        

SQL * Plus   ÑÏÐÀÂÎ×ÍÎÅ ÐÓÊÎÂÎÄÑÒÂÎ.

Âåðñèÿ 2.0

        

        

        

        

        

        

        

        

 

ÑÈÑÒÅÌÀ ÓÏÐÀÂËÅÍÈß ÐÅËßÖÈÎÍÍÎÉ

ÁÀÇÎÉ ÄÀÍÍÛÕ

ORACLE

                         

        

        

                                -1-

                         

                                     

                                     

                                                           

         © Copyright, 1986, 1987   Êîðïîðàöèÿ  Oracle Áåëìîíò,

         Êàëèôîðíèÿ, ÑØÀ.

         Âñå ïðàâà ñîõðàíÿþòñÿ. Îòïå÷àòàíî â ÑØÀ.

         Íîìåð ÷àñòè 3203.V2.0

         Ðåâèçèÿ èþëÿ 1987ã.

        

        

        

        

        

         

                                     

                                      

                                     

        

        

                                     

                                     

                                     

                                     

         Àâòîð :   Äæîíàòàí Ñàêñ

         Ñîàâòîðû: Ëýððè Áàåð, Äýððè Êýáñåíåë, Ëýððè Ñòèâåíñ

        

         Àâòîðñêèå ïðàâà.

        

         Èñïîëüçîâàíèå, êîïèðîâàíèå èëè èçëîæåíèå ïîä÷èíÿþòñÿ  îãðà-

         íè÷åíèÿì  óêàçàííûì â âàøåì êîíòðàêòå ñ Êîðïîðàöèåé ORACLE.

         Èñïîëüçîâàíèå, êîïèðîâàíèå èëè èçëîæåíèå  ñî ñòîðîíû ïðàâè-

         òåëüñòâà ïîä÷èíÿþòñÿ îãðàíè÷åíèÿì, óñòàíîâëåííûì â  ïîäðàç-

         äåëå (b)(3)(ii) ïóíêòà îá àâòîðñêèõ ïðàâàõ  ïî "Òåõíè÷åñêèì

         Äàííûì"  è   "Ïðîãðàììíîìó  îáåñïå÷åíèþ"  â       äîêóìåíòå

         CFR 252.227-7013.

        

         Èíôîðìàöèÿ, ñîäåðæàùàÿñÿ â äàííîì äîêóìåíòå ìîæåò áûòü  èç-

         ìåíåíà áåç ïðåäóïðåæäåíèÿ.

        

         ORACLE-çàðåãåñòðèðîâàííàÿ òîðãîâàÿ ìàðêà Êîðïîðàöèè ORACLE.

         SQL * Plus - òîðãîâàÿ ìàðêà Êîðïîðàöèè ORACLE.

        

 

                               

                                -2-

   

 

ÈÑÒÎÐÈß ÈÇÌÅÍÅÍÈß.

        

        

         Âåðñèÿ     Ñòàòóñ     Èñòîðèÿ èçìåíåíèÿ        Äàòà

         ----------------------------------------------------

        

         2.0        Beta       Ðåäàêöèÿ, ïðèâåäøàÿ      6/86

                               ê âåðñèè 2.0 SQL*Plus

                               è 5.1 ORACLE.

                              

                               Äîáàâëåíî îïèñàíèå

                               SQL*Net (ñåòåâîé

                               âàðèàíò)

                              

                               Ñïðàâî÷íîå ðóêîâîäñòâî

                               ïî SQL*Plus âûäåëåíî èç

                               ðóêîâîäñòâà ïî ïîëüçî-

                               âàíèþ è îïóáëèêîâàíî

                               îòäåëüíî.

                                       

         2.0        Ïðîäóêöèÿ  Ðåäàêöèÿ ñ öåëüþ óòî÷-   10/10/86

                               íåíèÿ è óëó÷øåíèÿ

                               âîñïðèÿòèÿ òåêñòà.

        

                                                

                                     

                                -3-

                                                           

                                  

                                     


ÏÐÅÄÈÑËÎÂÈÅ.

 

    ÖÅËÜ.               Ñïðàâî÷íîå ðóêîâîäñòâî ïî SQL*Plus  ñîäåðæèò

                        äåòàëüíîå îïèñàíèå ÿçûêà çàïðîñîâ  SQL*Plus,

                        êîòîðûé ìîæåò áûòü èñïîëüçîâàí äëÿ ñîçäàíèÿ,

                        õðàíåíèÿ,  ìîäèôèêàöèè,  ïîèñêà,   âûâîäà íà

                        ïå÷àòü  è  óïðàâëåíèÿ  èíôîðìàöèåé  â   áàçå

                        äàííûõ ORACLE.

         

    ÀÓÄÈÒÎÐÈß.          Ýòî  ðóêîâîäñòâî ïðåäíàçíà÷åíî äëÿ áèçíåñìå-

                        íîâ, òåõíè÷åñêèõ ñïåöèàëèñòîâ è  ïðîãðàììèñ-

                        òîâ, æåëàþùèõ ðàáîòàòü ñ SQL*Plus. Îíî ïðåä-

                        ïîëàãàåò îïûò ðàáîòû  ñ  ÿçûêîì    SQL*Plus.

                        ×èòàòåëè íåçíàêîìûå ñ SQL*Plus, äîëæíû îáðà-

                        òèòüñÿ    ê    ðóêîâîäñòâó      ïîëüçîâàòåëÿ

                        SQL*Plus äëÿ îçíàêîìëåíèÿ ñ ÿçûêîì.

                                             

    ÊÀÊ ÈÑÏÎËÜÇÎÂÀÒÜ    Ðóêîâîäñòâî äåëèòñÿ íà òðè ñåêöèè:

    ÐÓÊÎÂÎÄÑÒÂÎ.        * Ãëàâà 1, "Ýëåìåíòû SQL*Plus",  îïèñûâàþùàÿ

                          êîíñòðóêöèè, òèïû äàííûõ, îïåðàòîðû, ôóíê-

                          öèè,ôîðìàòû è ôàéëû, ÷òî è ñîñòàâëÿåò ÿçûê

                          SQL*Plus.

                        * Ãëàâà 2.  "Ñïðàâî÷íèê êîìàíä",  ñîäåðæàùàÿ

                          ñïèñîê  è  îïèñàíèå   âñåõ  êîìàíä   SQL è

                          SQL*Plus â àëôàâèòíîì ïîðÿäêå.

                        * Ñëîâàðü òåðìèíîâ, êîòîðûé îïèñûâàåò òåðìè-

                          íû, ñâÿçàííûå ñ ORACLE è SQL*Plus.

                       

                                     

    ÏÓÁËÈÊÀÖÈÈ,         Ñ äàííûì ðóêîâîäñòâîì ñâÿçàíû ñëåäóþùèå  äî-

    ÑÂßÇÀÍÍÛÅ Ñ         êóìåíòû:

    ÄÀÍÍÛÌ              * SQL*Plus. Çàìå÷àíèÿ ïî ðåàëèçàöèè.

    ÄÎÊÓÌÅÍÒÎÌ            ORACLE ÷àñòü N 3003.

                        * SQL*Plus. Ðóêîâîäñòâî ïîëüçîâàòåëÿ.

                          ORACLE ÷àñòü N 3201.

                        * SQL*Plus. Ñïðàâî÷íîå ðóêîâîäñòâî(äàííîå

                          ðóêîâîäñòâî), ORACLE ÷àñòü N 3203.

                        * SQL*Plus. Ñïðàâî÷íèê ïóáëèêàöèé.

                          ORACLE ÷àñòü N 3703.

                                      

                                     

                        Ê SQL* Graph îòíîñÿòñÿ ñëåäóþùèå äîêóìåíòû:

                        * SQL* Graph. Çàìåòêè ïî ðåàëèçàöèè.

                          ORACLE ÷àñòü N 3006.

                        * SQL* Graph. Ðóêîâîäñòâî ïî ïîëüçîâàíèþ.

                          ORACLE ÷àñòü N 3402.

                        * SQL* Graph. Ñïðàâî÷íèê ïóáëèêàöèé.

                       

        

                                                          

                                -4-

                                     

                                     

                                     

                                     

                        Äîêóìåíòû, îòíîñÿùèåñÿ ê ñèñòåìå óïðàâëåíèÿ

                        ðåëÿöèîííîé áàçîé äàííûõ:

                                     

                        * ORACLE RDBMS.    Çàìå÷àíèÿ ïî ðåàëèçàöèè.

                          ORACLE ÷àñòü N 3001.

                        * ORACLE.   Ðóêîâîäñòâî àäìèíèñòðàòîðà áàçû

                          äàííûõ. ORACLE ÷àñòü N 3601.

                        * ORACLE óòèëèòû.  Ðóêîâîäñòâî ïîëüçîâàòåëÿ.

                          ORACLE ÷àñòü N 3602.

                        * ORACLE.Êîäû îøèáîê è ñîîáùåíèÿ îá îøèáêàõ.

                          ORACLE ÷àñòü N 3605.

                        * SQL*NET.   Ðóêîâîäñòâî   ïîëüçîâàòåëÿ.

                          ORACLE ÷àñòü N 3604.

                        * SQL*NET. Çàìå÷àíèÿ  ïî  ðåàëèçàöèè.

                          ORACLE÷àñòü N 3016.

    

    ÑÎÃËÀØÅÍÈß,         Òàáëèöà 1 îïèñûâàåò ñîãëàøåíèÿ ïî  îáîçíà÷å-

    ÈÑÏÎËÜÇÓÅÌÛÅ        íèÿì,  èñïîëüçóåìûì  â  ýòîì  ðóêîâîäñòâå, ñ

     ÄÀÍÍÎÌ            ïðèìåðàìè ïî êàæäîìó îáîçíà÷åíèþ.

    ÐÓÊÎÂÎÄÑÒÂÅ

    

        

    ÂÀØÈ ÇÀÌÅ×ÀÍÈß      Îòäåëåíèå òåõíè÷åñêèõ ïóáëèêàöèé  êîðïîðàöèè

    ÏÐÈÂÅÒÑÒÂÓÞÒÑß      ORACLE  ïðèâåòñòâóåò âàøè çàìå÷àíèÿ ïî èñïî-

                        ëüçîâàíèþ  ORACLE  è  ñîîòâåòñòâóþùèõ  ðóêî-

                        âîäñòâ. Ïðè  ñîçäàíèè , ïåðåñìîòðå  è îöåíêå

                        íàøèõ ïóáëèêàöèé,âàøå ìíåíèå - ýòî  íàèáîëåå

                        âàæíàÿ  ÷àñòü  èíôîðìàöèè, ïîëó÷àåìîé èçâíå.

                        Â êîíöå ýòîãî ðóêîâîäñòâà ïðèëàãàåòñÿ "Ôîðìà

                        ÷èòàòåëüñêîãî îòçûâà", êîòîðóþ ìû  ïðèçûâàåì

                        âàñ èñïîëüçîâàòü, ÷òîáû ñîîáùèòü íàì,÷òî íåò

                        â ýòîì (èëè äðóãèõ) ðóêîâîäñòâå ïî ORACLE.

                        Åñëè ôîðìà îòñóòñòâóåò  èëè  âû    ïîæåëàåòå

                        âñòóïèòü ñ íàìè â ïðÿìîé êîíòàêò,ïîæàëóéñòà,

                        çâîíèòå ïî òåëåôîíó (415)598-8000 èëè ïèøèòå

                        ïî àäðåñó:

        

                           SQL*Plus Product Manager

                           ORACLE Corporation

                           20 Davis Drive

                           Belmout, CA 94002

                          

        

                                -5-

                                                             

                                     

                                     

     Òàáëèöà 1.

     Ñîãëàøåíèÿ ïî îáîçíà÷åíèÿì,

     èñïîëüçóåìûì â äàííîì ðóêîâîäñòâå.

                                     

                                     

                Ñðåäñòâî     Ïðèìåð            Îáúÿñíåíèå

              ------------------------------------------------------

              Ïîëóæèðíûé 1.  BTITLE       Ââîäèòå  òåêñò  òî÷íî  òàê

              øðèôò                       êàê ïîêàçàíî çäåñü(íå îáÿ-

                                          çàòåëüíî áîëüøèìè áóêâàìè,

                                          îíè âûáðàíû  â    êà÷åñòâå

                                          ïðèìåðà).

                         2.   [COL{1|n}]  Óêàçûâàåò  íà  çíà÷åíèå ïî

                                          óìîë÷àíèþ.  Åñëè âû íè÷åãî

                                          íå  ââîäèòå,  òî    ORACLE

                                          ïðåäïîëàãàåò ýòó  âåëè÷èíó.

              Êàâû÷êè        "ñòîëáåö"    Çíà÷åíèå  ôðàçû (ïðåäëîæå-

                                          íèÿ) èëè ïàðàìåòð.  Ïîäìå-

                                          íÿåòñÿ     ñîîòâåòñòâóþùèì

                                          çíà÷åíèåì.

              Ñëîâà          ñ            Îäèíî÷íûé àëôàâèòíî-öèôðî-

              ñî                          âîé ñèìâîë

              ñïåöèàëüíûì    "ñèìâîë"     Ñèìâîëüíîå  çíà÷åíèå:

              çíà÷åíèÿì                   ëèòåðàë â îäèíî÷íûõ êàâû÷-

                                          êàõ èëè âûðàæåíèå, èìåþùåå

                                          çíà÷åíèå.

                             d èëè e      Âûðàæåíèå, çíà÷åíèå  êîòî-

                                          ðîãî ÿâëÿåòñÿ äàòîé.

                             "âûðàæåíèå"  Âûðàæåíèå  íåîïðåäåëåííîãî

                                          òèïà.

                             m èëè n      Âûðàæåíèå   ñ    ÷èñëåííûì

                                          çíà÷åíèåì.

                             "÷èñëî"      ×èñëåííàÿ êîíñòàíòà.

                             "èñõ_äàíí"   Âûðàæåíèå,  èìåþùåå èñõîä-

                                          íîå, íåîáðàáîòàííîå çíà÷å-

                                          íèå.

                             "èäåíò_ñòð"  Âûðàæåíèå,  èìåþùåå çíà÷å-

                                          íèå èäåíòèôèêàòîðà ñòðîêè.

                             "ñîñò_óñëîâ" Âûðàæåíèå, ñîäåðæàùåå çàï-

                                          ðîñ,íàïð.,JOB IN(SELECT...)

                             "çàïðîñ"     Âûðàæåíèå çàïðîñà â êîìàí-

                                          äå, îòëè÷íîé  îò   SELECT,

                                          íàïð.,   CREATE TABLE...AS

                                          SELECT...

                                          Ìîæåò ñîäåðæàòü ëþáîå ïðåä-

                                          ëîæåíèå SELECT, èñêëþ÷àÿ

                                          ORDER BY èëè FOR UPDATE OF.

                             "òåêñò"      Ñèìâîëüíàÿ    êîíñòàíòà  ñ

                                          îäèíî÷íûìè êàâû÷êàìè  (èëè

                                          áåç)ïåðåä òåêñòîì è ïîñëå.

                             "ïåðåìåííàÿ" Ïåðåìåííàÿ ïîëüçîâàòåëÿ(äî

                                          òåõ, ïîð ïîêà â òåêñòå  íå

                                          âñòðåòèòñÿ äðóãîãî îïðåäå-

                                          ëåíèÿ(òèïà) äëÿ ýòîé ïåðå-

                                          ìåííîé).

                                         

                                     

                                -6-

                                     

                                       

                                     

                                     

                             Äðóãèå òåðìèíû  ORACLE  îáúÿñíÿþòñÿ ïðè

                             èñïîëüçîâàíèè,  åñëè  èõ çíà÷åíèå íåïî-

                             íÿòíî èç êîíòåêñòà.

                                     

              Êâàäðàòíûå     [NOPRINT]    Íåîáÿçàòåëüíûé ýëåìåíò.

              ñêîáêè                      Ñàìè ïî ñåáå ñêîáêè íå

                                          ââîäÿòñÿ.

              Ôèãóðíûå       {ON; OFF}    Âû äîëæíû ââîäèòü îäèí  èç

              ñêîáêè                      ýëåìåíòîâ,ðàçäåëåííûõ çíà-

                                          êîì":".  Íå  ââîäèòå   ïðè

                                          ýòîì  ôèãóðíûå  ñêîáêè èëè

                                          çíàê":".

              Òðè òî÷êè       n,n,...     Ýëåìåíò(û)  ïðåäøåñòâóþùèå

                                          (å) òðåì òî÷êàì ìîãóò ïîâ-

                                          òîðÿòüñÿ ëþáîå ÷èñëî ðàç.

              Êðóãëûå         POWER(n,m)  Ñêîáêè  è  çàïÿòûå  äîëæíû

              ñêîáêè                      ââîäèòñÿ

              òî÷íî,êàê ïîêàçà-

                                          íî.

                 

                              

                                                                  

                                -7-

                                                          

        

             

        

         ÏÐÅÄÈÑËÎÂÈÅ ÏÅÐÅÂÎÄ×ÈÊÎÂ.

     

     

         Ñèñòåìû óïðàâëåíèÿ áàçàìè äàííûõ íà áàçå ïåðñîíàëüíûõ  êîì-

         ïüþòåðîâ è, â ÷àñòíîñòè, ÑÓÁÄ  ORACLE äëÿ ìèêðî- è ìèíè-ÝÂÌ

         óæå äîñòàòî÷íî øèðîêî èçâåñòíû â Ñîâåòñêîì Ñîþçå. Îäíàêî, â

         íàñòîÿùåå  âðåìÿ íå ñóùåñòâóåò óñòîÿâøåéñÿ òåðìèíîëîãèè äëÿ

         îïèñàíèÿ òàêèõ ÑÓÁÄ.Ïîýòîìó ïðè ïåðåâîäå äàííîãî ðóêîâîäñòâà

         òåðìèíîëîãèÿ ïðåäñòàâëÿëà îñîáóþ òðóäíîñòü,â ðåçóëüòàòå ÷å-

         ãî ïîìèìî îáùåèçâåñòíûõ òåðìèíîâ â ðÿäå ñëó÷àåâ  ãðóïïà ïå-

         ðåâîä÷èêîâ ââåëà äîïîëíèòåëüíûå ïîíÿòèÿ äëÿ ñëîâ,íå èìåþùèõ

         ñîîòâåòñâóþùèõ àíàëîãîâ â ðóññêîì ÿçûêå.

        

         Ïðè ðàáîòå ñ îðèãèíàëîì èñïîëüçîâàëèñü:

                                               

         *      Àíãëî-ðóññêèé ñëîâàðü ïî  èíôîðìàòèêå è âû÷èñëèòåëü-

                íîé òåõíèêå ïîä ðåä. Áîðêîâñêîãî (1988);

         *      Áîëüøîé àíãëî-ðóññêèé ñëîâàðü (1987 ã.);

         *      Ðóññêî-àíãëèééñêèé ñëîâàðü (1987 ã.);

         *      Êðàòêèé àíãëî-ðóñêèé è ðóññêî-àíãëèééñêèé ñëîâàðü

                (1985 ã.);

         *      Ïåðåâîäíûå èçäàíèÿ ïî îïåðàöèîííîé ñèñòåìå UNIX,ÑÓÁÄ

                DBASE 3 PLUS, RBASE, ÊÀÐÑ è äð.

               

         Ìû ïðåäïîëàãàåì,÷òî â äàííîì ïåðåâîäå áûëî äîñòèãíóòî ñòðåì-

         ëåíèå íàèáîëåå ïîëíî è äîñòóïíî îòðàçèòü àâòîðñêèé òåêñò. Â

         òî æå âðåìÿ íå ãàðàíòèðóåòñÿ îòñóòñòâèå îøèáîê êàê â èñõîä-

         íîì òåêñòå, òàê è â ïåðåâîäå.           

                                                     

         Ïåðåâîä:       Ñòàðûé Îñêîë, ÎÝÌÊ

                                                

                                       

                       

                       

                                                                    

                                                                        

         

                                     

                                     

                                -8-

                                      

ÑÎÄÅÐÆÀÍÈÅ.

     ===============================================================

                                     

     ÃËÀÂÀ 1:   ÝËÅÌÅÍÒÛ SQL*Plus..........................11

                                     

                   Ââåäåíèå................................12

                   Ïðàâèëà ôîðìèðîâàíèÿ èìåí...............13

                   Èìåíà ôàéëîâ............................13

                   Ðåçåðâèðîâàííûå ñëîâà...................14

                   Òèïû äàííûõ.............................15

                   Ìîäåëè ôîðìàòà..........................19

                   Îïåðàòîðû...............................24

                   Ôóíêöèè.................................30

                   Ïñåâäî-ñòîëáöû..........................37

                   Îáçîð ñëîâàðÿ äàííûõ....................38

                   Âàæíûå ôðàçû è ïîíÿòèÿ..................44

                                     

     ÃËÀÂÀ 2:   ÑÏÐÀÂÎ×ÍÈÊ ÊÎÌÀÍÄ..........................54

                                     

                   Ââåäåíèå................................57

                   SQL* - êîìàíäû,êðàòêîå îïèñàíèå.........58

                   SQL*Plus - êîìàíäû, êðàòêîå îïèñàíèå....60

                   @.......................................63

                   #.......................................64

                   / ......................................66

                   /*...*/.................................67

                   Alter Partition (Èçìåíèòü ðàçäåë).......68

                   Alter Space (Èçìåíèòü ïðîñòðàíñòâî).....69

                   Alter Table (Èçìåíèòü òàáëèöó)..........70

                   Accept (Ïðèíÿòü)........................71

                   Append (Äîáàâèòü).......................72

                   Audit (Ñëåæåíèå)........................73

                   Break (Ïðåðâàòü)........................75

                   BTitle (Çàãîëîâîê âíèçó)................77

                   Change (Èçìåíèòü).......................79

                   Clear (Î÷èñòèòü)........................80

                   Column (Ñòîëáåö)........................81

                   Comment (Êîììåíòàðèé)...................86

                   Commit (Âíåñòè èçìåíåíèÿ)...............87

                   Compute (Âû÷èñëèòü).....................88

                   Connect (Ñîåäèíèòü).....................90

                   Copy (Êîïèðîâàòü).......................91

                  

                                                        

                                     

                                -9-

                                     

                                     

                                     

        

                   Create Cluster (Ñîçäàòü êëàñòåð)........93

                   Create Database Link (Ñîçäàòü ñâÿçü

                   .....................ñ áàçîé äàííûõ)....95

                   Create Index (Ñîçäàòü èíäåêñ)...........97

                   Create Partition (Ñîçäàòü ðàçäåë).......99

                   Create Space (Ñîçäàòü ïðîñòðàíñòâî).....100

                   Create Synonym (Ñîçäàòü ñèíîíèì)........101

                   Create Table (Ñîçäàòü òàáëèöó)..........102

                   Create View (Ñîçäàòü ýêðàííóþ ôîðìó)....104

                   Define (Îïðåäåëèòü).....................106

                   Del (óäàëèòü èç áóôåðà).................108

                   Delete (Óäàëèòü èç òàáëèöû).............109

                   Describe (Îïèñàòü)......................110

                   Disconnect (Ðàçúåäèíèòü)................111

                   Document (Äîêóìåíò).....................112

                   Drop Cluster (Óäàëèòü êëàñòåð)..........113

                   Drop Database Link (Îòìåíèòü ñâÿçü

                   ....................ñ áàçîé äàííûõ).....114

                   Drop Index (Óäàëèòü èíäåêñ).............115

                   Drop Space (Óäàëèòü ïðîñòðàíñòâî).......116

                   Drop Synonym (Óäàëèòü ñèíîíèì)..........117

                   Drop Table (Óäàëèòü òàáëèöó)............118

                   Drop View (Óäàëèòü ýêðàííóþ ôîðìó)......119

                   Edit (Ðåäàêòèðîâàíèå)...................120

                   Exit (Âûõîä)............................121

                   Get (Ïðî÷èòàòü â áóôåð).................122

                   Grant (Ïðåäîñòàâèòü)....................123

                   Help (Ïîëó÷åíèå âñïîìîãàòåëüíîé

                   ......èíôîðìàöèè).......................125

                   Host (Âûïîëíåíèå êîìàíä îïåðàöèîííîé

                   ......ñèñòåìû)..........................127

                   Input (Ââåñòè)..........................128

                   Insert (Âñòàâèòü).......................130

                   List (Âûâåñòè ñïèñîê)...................131

                   Lock Table (Áëîêèðîâàòü òàáëèöó)........132

                   New Page (Íîâàÿ ñòðàíèöà)...............133

                   Noaudit (Îòìåíèòü ñëåæåíèå).............134

                   Pause (Ïàóçà)...........................135

                   Quit (Çàâåðøåíèå ðàáîòû)................136

                  

                               

                                     

                                -10-

                                      

                                     

                                     

                                     

                   Remark (Ïðèìå÷àíèå).....................137

                   Rename (Ïåðåèìåíîâàíèå).................138

                   Revoke (Îòìåíà ïðèâèëåãèé)..............139

                   Rollback (Îòìåíèòü âíåñåíèå èçìåíåíèé)..141

                   Save (Ñîõðàíèòü)........................142

                   Select (Âûáîð)..........................143

                   Set (Óñòàíîâèòü)........................146

                   Show (Ïîêàçàòü).........................155

                   Spool (Áóôåðèçàöèÿ ââîäà/âûâîäà)........157

                   SQLPlus.................................158

                   Start (Çàïóñê êîìàíäíîãî ôàéëà).........160

                   Timing (Õðîíîìåòðàæ)....................161

                   TTile (Çàãîëîâîê â âåðõó)...............162

                   Undefine (Îòìåíèòü îïðåäåëåíèå).........163

                   Update  (Êîððåêòèðîâêà).................164

                   Validate Index (Ïðîâåðèòü èíäåêñ).......166

                  

                                     

                                     

                                -11-

                                     

ÃËÀÂÀ 1       ÝËÅÌÅÍÒÛ  SQL*PLus 

     ------------------------------------------------------------- 

                                     

     ÑÎÄÅÐÆÀÍÈÅ    ÂÂÅÄÅÍÈÅ................................12

                   ÏÐÀÂÈËÀ ÏÐÈÑÂÎÅÍÈß ÈÌÅÍ.................13

                   ÈÌÅÍÀ ÔÀÉËÎÂ............................13

                   ÐÅÇÅÐÂÈÐÎÂÀÍÍÛÅ ÑËÎÂÀ...................14

                   ÒÈÏÛ ÄÀÍÍÛÕ.............................15

                      Ïðàâèëà ñðàâíåíèÿ....................17

                   ÌÎÄÅËÈ ÔÎÐÌÀÒÎÂ.........................19

                      Ñèìâîëüíûé ôîðìàò....................19

                      ×èñëîâîé ôîðìàò......................19

                      Ôîðìàò äàòû..........................21

                   ÎÏÅÐÀÒÎÐÛ...............................24

                      SQL*Plus-ñèíòàêñè÷åñêèå îïåðàòîðû....24

                      SQL-ñèíòàêñè÷åñêèå îïåðàòîðû.........25

                      SQL-÷èñëîâûå îïåðàòîðû...............26

                      SQL-ëîãè÷åñêèå îïåðàòîðû.............26

                      SQL-îïåðàòîðû âûðàæåíèé çàïðîñà......28

                      Äðóãèå SQL-îïåðàòîðû.................28

                   ÔÓÍÊÖÈÈ.................................30

                      ×èñëîâûå ôóíêöèè.....................30

                      Ñèìâîëüíûå ôóíêöèè...................31

                      Ãðóïïîâûå ôóíêöèè....................33

                      Ôóíêöèè ïðåîáðàçîâàíèé...............34

                      Ôóíêöèè äàò..........................35

                      Äðóãèå ôóíêöèè.......................36

                   ÏÑÅÂÄÎ-ÑÒÎËÁÖÛ..........................37

                   ÎÁÇÎÐÛ ÑËÎÂÀÐß ÄÀÍÍÛÕ...................38

                   ÏÀÐÀÌÅÒÐÛ È ÏÎÄÑÒÀÂËßÅÌÛÅ ÏÅÐÅÌÅÍÍÛÅ....41

                      Ïîäñòàâëÿåìûå ïåðåìåííûå.............41

                      Îäèíî÷íûå è äâîéíûå àìïåðñàíäû(&)....42

                      Îãðàíè÷åíèÿ..........................43

                      SET-ôðàçà, âëèÿþùàÿ íà ïîäñòàâëÿåìûå

                      ïåðåìåííûå...........................43

                   ÂÀÆÍÛÅ ÔÐÀÇÛ È ÏÎÍßÒÈß..................44

                      DUMMY Table (Ïóñòàÿ òàáëèöà).........44

                      FROM-ïðåäëîæåíèå.....................45

                      Ôðàçû GROUP BY è HAVING ("Ñãðóïïè-

                      ðîâàòü è "Íàëîæèòü äîïîëíèòåëüíûå

                      ...............óñëîâèÿ").............46

                      Ñîåäèíåíèÿ â Queries (Ñîåäèíåíèÿ â

                      ......................çàïðîñàõ)......47

                      Îïåðàòîð LIKE (Ñðàâíåíèå)............48

                      NULL-çíà÷åíèÿ (ïóñòûå çíà÷åíèÿ)......49

                      Ôðàçà ORDER BY.......................50

                      Ïîäçàïðîñû è âëîæåííûå çàïðîñû.......51

                      Ôðàçà WHERE ("Ãäå")..................53

        

    

                                                                     

                                -12-

                                     

ÂÂÅÄÅÍÈÅ

    ----------------------------------------------------------------

                                     

         Äàííàÿ ãëàâà ñîäåðæèò ñïðàâî÷íóþ èíôîðìàöèþ îáî âñåõ àñïåê-

         òàõ SQL*PLUS, çà èñêëþ÷åíèåì èíäèâèäóàëüíûõ  êîìàíä.    Îíà

         îõâàòûâàåò:

        

         *      Ïðàâèëà íàèìåíîâàíèÿ

                                     

         *      Èìåíà ôàéëîâ

                                      

         *      Ðåçåðâèðîâàííûå ñëîâà

                                     

         *      Òèïû äàííûõ

                                     

         *      Ìîäåëè ôîðìàòîâ

                                     

         *      Îïåðàòîðû

                                     

         *      Ôóíêöèè

                                     

         *      Ïñåâäî-ñòîëáöû

                                     

         *      Îáçîðû ñëîâàðÿ äàííûõ

                                      

         *      Ïàðàìåòðû è ïîäñòàâëÿåìûå çíà÷åíèÿ

 

         *      Âàæíûå ôðàçû è ñâÿçàííûå ñ íèìè ïîíÿòèÿ.

                                     

         Ñîáñòâåííî êîìàíäû îïèñàíû â ãëàâå 2.

        

 

                                                           

                                -13-

                                                          

ÏÐÀÂÈËÀ ÔÎÐÌÈÐÎÂÀÍÈß ÈÌÅÍ

        

         Èìåíà  ìîãóò  áûòü äàíû  ñëåäóþùèì  îáúåêòàì áàçû  äàííûõ:

         òàáëèöàì, ýêðàííûì ôîðìàì,  ñèíîíèìàì, ñòîëáöàì,  èíäåêñàì,

         è ïåðåìåííûì ïîëüçîâàòåëÿ.

                                     

         Èìÿ îáúåêòà áàçû äàííûõ ìîæåò ñîäåðæàòü îò  1 äî 30  ñèìâî-

         ëîâ è íå ìîæåò ñîäåðæàòü êàâû÷åê.

                                     

         Ïðè  èñïîëüçîâàíèè  â  êîìàíäå âåðõíèé è íèæíèé ðåãèñòðû íå

         ðàçëè÷àþòñÿ.   Èìÿ äîëæíî:

                                     

         *      íà÷èíàòüñÿ ñ áóêâû

                                     

         *      ñîäåðæàòü òîëüêî çíàêè A-Z, 0-9, -, $ è #.

                (Èñïîëüçîâàíèå "$" è "#" íå ðåêîìåíäóåòñÿ)

                                     

         *      íå äóáëèðîâàòü ðåçåðâèðîâàííûå ñëîâà

                ORACLE (ñì. íèæå)

         *      íå äóáëèðîâàòü èìÿ îáúåêòà(áàçû äàííûõ) òîãî æå òèïà

                                     

                                     

ÈÌÅÍÀ ÔÀÉËÎÂ

 

         Ôàéëû  çàïðîñîâ è òåêñòîâûå (ñïóë) ôàéëû  ÿâëÿþòñÿ  ôàéëàìè

         îïåðàöèîííîé ñèñòåìû.  Êàæäûé  ôàéë  èìååò  èìÿ è òèï;  òèï

         îïèñûâàåò  âèä  ñîäåðæèìîãî  ôàéëà.  Ðàçëè÷íûå  ôàéëû ìîãóò

         èìåòü îäèíàêîâûå èìåíà, íî ðàçëè÷íûå òèïû.

                                     

         Èñïîëüçóéòå  êîìàíäû îïåðàöèîííîé  ñèñòåìû  äëÿ  ðàñïå÷àòêè

         èìåí è òèïîâ âàøèõ ôàéëîâ.

                                     

         Òèï ôàéëà óêàçûâàåòñÿ ðàñøèðåíèåì(èìåíè),êîòîðîå ñëåäóåò çà

         òî÷êîé ïîñëå èìåíè. Òèïû ôàéëîâ,êîòîðûå ïðèíÿòû â SQL*Plus,

         ïî óìîë÷àíèþ ñëåäóþùèå:

                            

                                      

         Òèï ôàéëà            Ðàñøèðåíèå          Ïðèìåð

         -----------------------------------------------------------

         Ôàéë çàïðîñà         .SQL                EMPLOYEE.SQL

                                     

         Ñïèñîê(ñïóë)         ñèñòåìíî-çàâèñèìî   REPORT.LST

        

        

        

                                -14-

                                     

ÐÅÇÅÐÂÈÐÎÂÀÍÍÛÅ ÑËÎÂÀ¶

    ----------------------------------------------------------------

 

         Ñëåäóþùèå ñëîâà ðåçåðâèðîâàíû â  SQL*Plus.  Âû íå ìîæåòå èõ

         èñïîëüçîâàòü â êà÷åñòâå èìåí îáúåêòîâ áàçû äàííûõ.

                                                                   

                                     

                                      

                                     

                                     

        

         ACCESS     DELETE      INTEGER      ORDER       TO

         ADD        DESC        INTERSECT    PARTITION   TRIGGER

         ALL        DISTINCT    INTO         PCTFREE     UID

         ALTER      DOES        IS           PRIOR       UNION

         AND        DROP        LEVEL        PRIVILEGES  UNIQUE

         ANY        EACH        LIKE         PUBLIC      UPDATE

         APPEND     ELSE        LIST         RAW         USER

         AS         ERASE       LOCK         RENAME      USING

         ASC        EVALUATE    LONG         REPLACE     VALIDATE

         ASSERT     EXCLUSIVE   MAXEXTENTS   RESOURCE    VALUES

         ASSIGN     EXISTS      MINUS        REVOKE      VARCHAR

         AUDIT      FILE        MODE         ROW         VARGRAPHIC

         BETWEEN    FLOAT       MODIFY       ROWID       VIEW

         BY         FOR         MOVE         ROWNUM      WHENEVER

         CHAR       FORMAT      NEW          ROWS        WHERE

         CLUSTER    FROM        NOAUDIT      RUN         WITH

         COLUMN     GRANT       NOCOMPRESS   SELECT

         COMMENT    GRAPHIC     NOLIST       SESSION

         COMPRESS   GROUP       NOSYSSORT    SET

         CONNECT    HAVING      NOT          SHARE

         CONTAIN    IDENTIFIED  NOWAIT       SIZE

         CONTAINS   IF          NULL         SMALLINT

         CRASH      IMAGE       NUMBER       SPACE

         CREATE     IMMEDIATE   OF           START

         CURRENT    IN          OFFLINE      SUCCESSFUL

         DATAPAGES  INCREMENT   OLD          SYNONYM

         DATE       INDEX       ON           SYSDATE

         DBA        INDEXED     ONLINE       SYSSORT

         DECIMAL    INDEXPAGES  OPTIMIZE     TABLE

         DEFAULT    INITIAL     OPTION       TEMPORARY

         DEFINITION INSERT      OR           THEN

        

 

                                -15-

                                     

                                     

ÒÈÏÛ ÄÀÍÍÛÕ

    ----------------------------------------------------------------

 

         Êîãäà âû ñîçäàåòå òàáëèöó, âû äîëæíû îïðåäåëèòü òèï,  êîòî-

         ðûé ìîæíî ïðèìåíÿòü â êàæäîì ñòîëáöå.  SQL*Plus  ðàñïîçíàåò

         ñëåäóþùèå òèïû äàííûõ:

        

                        Êàê îïðåäåëÿåòñÿ

                        â CREATE TABLE

         Òèï äàííûõ     èëè ALTER TABLE   Ïðèëîæåíèå

         -----------------------------------------------------------

                                     

         Char           CHAR(ðàçìåð)      Ñèìâîëüíûå äàííûå ñ

         (ñèìâîëüíûå                      óêàçàííîé(ðàçìåð)

          äàííûå)                         äëèíîé.

                                          Ìàêñèìàëüíûé ðàçìåð 240

                       

                        VARCHAR(ðàçìåð)   Òî æå, ÷òî è CHAR

        

         Date(äàòà)     DATE              Êîððåêòíàÿ äàòà,   íà÷èíàÿ

                                          ñ  1-ãî  ÿíâàðÿ,  4712 (äî

                                          í.ý.)  äî  31-ãî  äåêàáðÿ,

                                          4712 (í.ý.).

                                                                

         Long           LONG              Ñèìâîëüíûå  äàííûå,  ïåðå-

         ("äëèííûå"                       ìåííîé   äëèíû   äî  65535

         ñèìâîëüíûå                       çíàêîâ.Òîëüêî îäèí ñòîëáåö

         äàííûå)                          òèïà LONG ìîæåò áûòü îïðå-

                                          äåëåí â òàáëèöå.     Òàêèå

                                          ñòîëáöû íå ìîãóò áûòü  èñ-

                                          ïîëüçîâàíû  â ïîäçàïðîñàõ,

                                          ôóíêöèÿõ, âûðàæåíèÿõ, ïðå-

                                          äëîæåíèÿõ WHERE èëè èíäåê-

                                          ñàõ.  Òàáëèöà,  ñîäåðæàùàÿ

                                          ñòîëáåö òèïà  LONG, íå ìî-

                                          æåò áûòü âêëþ÷åíà  â êëàñ-

                                          òåð.

        

                        LONG VARCHAR      Òî æå, ÷òî è LONG.

                                       

         Number(÷èñëî)  NUMBER            Äëÿ ÷èñëîâîé êîëîíêè íà 40

                                          öèôð, èñêëþ÷àÿ  äåñÿòè÷íóþ

                                          òî÷êó è çíàê.  ×èñëà ìîãóò

                                          áûòü çàïèñàíû äâóìÿ ñïîñî-

                                          áàìè:ïåðâûé, öèôðû'0'-'9',

                                          çíàê  è  äåñÿòè÷íàÿ  òî÷êà

                                          ('.'),   âòîðîé, ýêñïîíåí-

                                          öèàëüíûé   ôîðìàò,  íàïð.,

                                          "1.85Å3",÷òî îçíà÷àåò 1850.

        

                         NUMBER(ðàçìåð)   Äëÿ ÷èñëîâûõ êîëîíîê îïðå-

                                          äåëåííîãî ðàçìåðà.

                                          Ìàêñèìàëüíûé   ðàçìåð -105

                                          öèôð.

                                         

                                      

                                     

                                -16-

                                     

                                     

                                     

                                      

                         NUMBER(ðàçìåð,   Äëÿ ÷èñëîâûõ êîëîíîê îïðå-

                         êîëè÷åñòâî)      äåëåííîãî ðàçìåðà ñ   óêà-

                                          çàííûì  êîëè÷åñòâîì   öèôð

                                          ïîñëå  äåñÿòè÷íîé   òî÷êè,

                                          ìàêñèìàëüíîå    êîëè÷åñòâî

                                          ýòèõ öèôð - 42.

        

                          NUMBER(*)       Òî æå, ÷òî è NUMBER.

 

                          DECIMAL         Òî æå, ÷òî è NUMBER.   Áåç

                                          óêàçàíèÿ ðàçìåðà è êîëè÷å-

                                          ñòâà öèôð ïîñëå äåñÿòè÷íîé

                                          òî÷êè.

                                          

                          FLOAT           Òî æå, ÷òî è NUMBER.

                         

                          INTEGER         Òî æå, ÷òî è NUMBER.   Áåç

                                          óêàçàíèÿ  ðàçìåðà è  êîëè-

                                          ÷åñòâà  öèôð ïîñëå   äåñÿ-

                                          òè÷íîé òî÷êè.

                                         

                          SMALLINT        Òî æå, ÷òî è  INTEGER.

                         

         Raw(èñõîäíûå     RAW(ðàçìåð)     Èñõîäíûå  äâîè÷íûå äàííûå,

                                          ñ óêàçàííûì â áàéòàõ  ðàç-

         äàííûå)                          ìåðîì.

                                          Ìàêñèìàëüíûé    ðàçìåð-240

                                          áàéòîâ.

                                         

         Long Raw         LONG RAW        Èñõîäíûå  äâîè÷íûå äàííûå;

         ("äëèííûå"                       â  îñòàëüíîì  òàê  æå  êàê

         èñõîäíûå äàííûå)                 LONG.

        

         RowID (èäåíòèôè- (îòñóòñòâóåò)   Çíà÷åíèå,êîòîðîå îäíîçíà÷-

         êàòîð ñòðîêè)                    íî îïðåäåëÿåò ñòðîêó â òà-

                                          áëèöå. Îíî âîçâðàùàåòñÿ  ñ

                                          ïîìîùüþ ïñåâäîêîëîíêè ROWID

                                          è îáðàáàòûâàåòñÿ  ôóíêöèåé

                                          CHARTOROWID è ROWIDTOCHAR.

                                          Êîëîíêàì òàáëèöû  íàçíà÷åí

                                          ýòîò òèï.

                                         

                                                     

                                     

                                -17-

                                      

                                     

                                     

 

    ÏÐÀÂÈËÀ ÑÐÀÂÍÅÍÈß

    ---------------------------------------------------------------

 

         ×èñëîâûå çíà÷åíèÿ: áîëüøàÿ âåëè÷èíà ðàññìàòðèâàåòñÿ " áîëü-

         øå" ("greater") ìåíüøåé. Âñå îòðèöàòåëüíûå ÷èñëà ìåíüøå,÷åì

         ïîëîæèòåëüíûå. Òàêèì îáðàçîì, -1 ìåíüøå ÷åì 100; -100 ìåíü-

         øå ÷åì -1.

        

         Äàòû: áîëåå ïîçäíÿÿ äàòà ñ÷èòàåòñÿ "áîëüøå"("greater") ðàí-

         íåé.

        

         Ñèìâîëüíûå çíà÷åíèÿ: âåëè÷èíû ñðàâíèâàþòñÿ çíàê  çà  çíàêîì

         äî ïåðâîãî íåñîâïàäàþùåãî.  Âåëè÷èíà  ó  êîòîðîé  ýòîò çíàê

         "áîëüøå" ñ÷èòàåòñÿ áîëüøåé. Åñëè âåëè÷èíû ñîâïàäàþò ïî çíà-

         êàì äî êîíöà áîëåå êîðîòêîé,  òî  áîëåå  äëèííàÿ  ñ÷èòàåòñÿ

         áîëüøåé. Äâå ñîâïàäàþùèå âåëè÷èíû îäèíàêîâîé äëèíû ñ÷èòàþò-

         ñÿ ðàâíûìè.

        

         Ñèìâîëüíûå çíàêè ñðàâíèâàþòñÿ ñîãëàñíî òîìó  îòíîøåíèþ  ïî-

         ðÿäêà, êîòîðûé çàäàí íà âàøåì êîìïüþòåðå.  Îäèí çíàê áîëüøå

         äðóãîãî, åñëè ñîãëàñíî ýòîìó ïîðÿäêó îí íàõîäèòñÿ  â ïîñëå-

         äîâàòåëüíîñòè ïîçäíåå.

        

         Â äåéñòâèòåëüíîñòè   âñå  ñîâðåìåííûå êîìïüþòåðû èñïîëüçóþò

         îäíó èç äâóõ óïîðÿäî÷åííûõ ïîñëåäîâàòåëüíîñòåé:

         ASCII(àìåðèêàíñêèé ñòàíäàðòíûé êîä äëÿ îáúìåíà èíôîðìàöèåé)

         è EBCDIC (ðàñøèðåííûé  äâîè÷íî-äåñÿòè÷íûé  êîä  äëÿ  îáìåíà

         èíôîðìàöèåé).  Ýòè ïîñëåäîâàòåëüíîñòè ïðèâåäåíû íèæå.

             

         Áîëüøèå ÝÂÌ ôèðìû IBM è ñîâìåñòèìûå ñ íèìè îáû÷íî èñïîëüçó-

         þò EBCDIC. Áîëüøèíñòâî äðóãèõ, âêëþ÷àÿ ïåðñîíàëüíûå êîìïüþ-

         òåðû IBM, èñïîëüçóþò ASCII.

        

         Çàìåòèì, ÷òî òàê êàê ïðè óñòàíîâëåííîé óïîðÿäî÷åííîé   ïîñ-

         ëåäîâàòåëüíîñòè èç äâóõ çíàêîâ îäèí âñåãäà áîëüøå, èëè  ìå-

         íüøå äðóãîãî,çàãëàâíàÿ áóêâà è òàêàÿ æå ñòðî÷íàÿ  áóêâà  íå

         ýêâèâàëåíòíû. Â ASCII âñå ìàëåíüêèå áóêâû áîëüøå çàãëàâíûõ.

           EBCDIC íàîáîðîò.

        

                                     

         

                                -18-

                                     

                                     

                                     

        

    Òàáëèöà 1-1

                                     

         Óïîðÿäî÷åííàÿ ïîñëåäîâàòåëüíîñòü ASCII

         -----------------------------------------------------------

                                     

          1. ïðîáåë                  28. ; (òî÷êà ñ çàïÿòîé)

          2. !                       29. < (ëåâàÿ óãëîâàÿ ñêîáêà)

          3. "                       30. =

          4. #                       31. > (ïðàâàÿ óãëîâàÿ ñêîáêà)

          5. $                       32. ?

          6. %                       33. @

          7. &                    34-59. áóêâû íà âåðõíåì ðåãèñòðå

          8. ' (àïîñòðîô)                A-Z

          9. (                       60. [

         10. )                       61. \

         11. *                       62. ]

         12. +                       63. ^ (çíàê ^)

         13. , (çàïÿòàÿ)             64. _ (çíàê ïîä÷åðêèâàíèÿ)

         14. - (äåôèñ)               65. ' (çíàê óäàðåíèÿ)

         15. . (òî÷êà/äåñÿòè÷íàÿ  66-91. áóêâû íà íèæíåì ðåãèñòðå

                òî÷êà)                   a-z

         16. / (êîñàÿ ÷åðòà)         92. {

         17-26 öèôðû, îò 0 äî 9      93. | (âåðòèêàëüíàÿ ÷åðòà)

         27. : (äâîåòî÷èå)           94. }

                                     95. ~ (òèëüäà)

        ------------------------------------------------------------

                                                   

                                        

    Òàáëèöà 1-2

                                     

         Óïîðÿäî÷åííàÿ ïîñëåäîâàòåëüíîñòü EBCDIC

         -----------------------------------------------------------

                                      

          1. Ïðîáåë                 16. / (êîñàÿ ÷åðòà)

          2.                        17. , (çàïÿòàÿ)

          3. . (òî÷êà/äåñÿòè÷íàÿ    18. %

                òî÷êà)              19. _ (çíàê ïîä÷åðêèâàíèÿ)

          4. <                      20. >

          5. (                      21. ?

          6. +                      22. : (äâîåòî÷èå)

          7. |                      23. #

          8. &                      24. @

          9. !                      25. ' (àïîñòðîô)

         10. $                      26. =

         11. *                      27. "

         12. )                   28-53. áóêâû íà íèæíåì ðåãèñòðå

         13. ; (òî÷êà ñ çàïÿòîé)        a-z

         14.   (çíàê îòðèöàíèÿ)  54-79. áóêâû íà âåðõíåì ðåãèñòðå

         15. - (äåôèñ)                  A-Z

                                 80-89. ÷èñëà, 0-9

         -----------------------------------------------------------

                  

                                     

                                -19-

                                      

 

ÌÎÄÅËÈ ÔÎÐÌÀÒÎÂ

    ----------------------------------------------------------------

         Ñèìâîëüíûå è ÷èñëîâûå ìîäåëè ôîðìàòîâ èñïîëüçóþòñÿ â êîìàí-

         äàõ BTITLE,   TTITLE è COLUMN â ïðåäëîæåíèÿõ FORMAT äëÿ óï-

         ðàâëåíèÿ âûñâå÷èâàíèåì äàííûõ.  Ìîäåëè ôîðìàòà äàòû èñïîëü-

         çóþòñÿ â ôóíêöèÿõ TO_CHAR è TO_DATE.

 

    ÑÈÌÂÎËÜÍÛÅ ÔÎÐÌÀÒÛ

    ----------------------------------------------------------------

         Ñèìâîëüíûé ôîðìàò  ñîñòîèò èç áóêâû 'A' è ñëåäóþùåãî çà íåé

         óêàçàíèÿ ùèðèíû ñòîëáöà â ñèìâîëàõ.  Åñëè çíà÷åíèå íå óêëà-

         äûâàåòñÿ â óêàçàííóþ øèðèíó, îíî áóäåò ñäâèíóòî èëè îáðåçà-

         íî â çàâèñèìîñòè  îò  òîãî áûëà ëè âûïîëíåíà óñòàíîâêà  SET

         WRAP èëè SET TRUNC.

 

     ×ÈÑËÎÂÛÅ ÔÎÐÌÀÒÛ

     ---------------------------------------------------------------

         Ýëåìåíòû ìîäåëåé ÷èñëîâîãî ôîðìàòà ñëåäóþùèå:

        

         Ýëåìåíò       Ïðèìåð                 Îïèñàíèå

         -----------------------------------------------------------

         9             9999            Êîëè÷åñòâî öèôð, îïðåäåëÿþùèõ

                                       øèðèíó âûñâå÷èâàíèÿ.

        

         0             0999            Âûñâå÷èâàíèå âåäóùèõ íóëåé.

        

         $             $9999           Ïðåôèêñíîå çíà÷åíèå ñî çíàêîì

                                       äîëëàðà.

        

         B             B9999           Âûñâå÷èâàíèå íóëåâûõ çíà÷åíèé

                                       êàê ïðîáåëîâ, à íå êàê íóëåé.

        

         MI            9999MI          Âûñâå÷èâàíèå çíàêà '-' ïîñëå

                                       îòðèöàòåëüíûõ ÷èñåë.

        

         PR            9999PR          Âûñâå÷èâàíèå    îòðèöàòåëüíûõ

                                       ÷èñåë â <óãëîâûõ ñêîáêàõ>.

        

         Çàïÿòàÿ       9,999           Âûñâå÷èâàíèå çàïÿòîé  â  óêà-

                                       çàííîé ïîçèöèè.

        

         Òî÷êà         99.99           Íàñòðîéêà äåñÿòè÷íîé òî÷êè íà

                                       óêàçàííóþ ïîçèöèþ.

        

         V             999V99          Óìíîæåíèå íà 10 â N-îé ñòåïå-

                                       íè,ãäå N - êîëè÷åñòâî äåâÿòîê

                                       ïîñëå 'V'.

                                                                  

         E             9&999EEEE       Âûñâå÷èâàíèå â ýêñïîíåíöèàëü-

                                       íîé ôîðìå ( ôîðìàò äîëæåí ñî-

                                       äåðæàòü ðîâíî 4 áóêâû 'E').

                                      

         DATE          DATE            Âûñâå÷èâàíèå  â  ôîðìàòå äàòû

                                       'MM/DD/YY'.Äëÿ äàò,õðàíÿùèõñÿ

                                        êàê ÷èñëîâûå âåëè÷èíû(ORACLE

                                        âåðñèÿ 2).

    ----------------------------------------------------------------

                      

                                     

                                     

                                -20-

                                     

                                     

                                     

                                     

         Óêàçàíèå ëþáîãî ÷èñëîâîãî ôîðìàòà ïðèâîäèò   SQL*PLUS ê îê-

         ðóãëåíèþ ÷èñëà äî óêàçàííîãî êîëè÷åñòâà çíà÷àùèõ öèôð.

        

         Åñëè  ôîðìàò íå  óêàçàí  ,  øèðèíà  ýëåìåíòà ïðèíèìàåòñÿ ïî

         óìîë÷àíèþ ðàâíîé NUMWIDTH (ñì. êîìàíäó SET â ãëàâå 2).

        

                                     

                                -21-

                                     

 

    ÔÎÐÌÀÒÛ ÄÀÒ

    ----------------------------------------------------------------

         Ýëåìåíòû ìîäåëåé ôîðìàòà äàò ñëåäóþùèå:

        

         Îáîçíà÷åíèå                       Çíà÷åíèå

         -----------------------------------------------------------

         SCC èëè ÑÑ          Âåê; 'S'- ïðåôèêñ ïåðåä äàòîé (äî í.ý.)

                                       ñ'-'.

         YYYY èëè SYYYY      Ãîä; 'S'- ïðåôèêñ ïåðåä äàòîé (äî í.ý.)

                                       ñ'-'.

         YYY  YY èëè Y       Ïîñëåäíèå òðè, äâå èëè îäíà öèôðû ãîäà.

        

         Y,YYY               Ãîä ñ çàïÿòîé â äàííîé ïîçèöèè.

        

         SYEAR èëè YEAR      Ãîä ïðîïèñüþ.

                             'S'-ïðåôèêñ ïåðåä äàòîé (äî í.ý.) ñ'-'.

                      

         BC èëè AD           BC/AD - (äî í.ý.) / ( í.ý.).

        

         B.C. èëè A.D.       Àíàëîãè÷íî BC/AD.

        

         Q                   ×åòâåðòü ãîäà.

         

         MM                  Ìåñÿö.

        

         MONTH               Èìÿ ìåñÿöà, äîïîëíåííîå  ïðîáåëàìè  äî

                             äåâÿòè ñèìâîëîâ.

        

         MON                 Èìÿ ìåñÿöà;òðåõáóêâåííàÿ àááðåâèàòóðà.

        

         WW èëè W            Íåäåëÿ ãîäà èëè ìåñÿöà.

        

         DDD DD èëè D        Äåíü ãîäà, ìåñÿöà èëè íåäåëè.

        

         DAY                 Íàèìåíîâàíèå äíÿ, äîáàâëåííîå ïðîáåëà-

                             ìè äî äåâÿòè ñèìâîëîâ.

         

         DY                  Íàèìåíîâàíèå äíÿ ; òðåõáóêâåííàÿ àááðå-

                             âèàòóðà.

        

         J                   Äåíü ïî Þëèàíñêîìó êàëåíäàðþ; êîëè÷åñò-

                             âî äíåé  îò  31 äåêàáðÿ, 4713 äî í.ý.

                            

         AM èëè PM           Óêàçàòåëü ÷àñîâîãî ïîÿñà.

        

         A.M. èëè P.M.       Óêàçàòåëü ÷àñîâîãî ïîÿñà.

        

         HH èëè HH12         Âðåìÿ ñóòîê, èíòåðâàë 1-12.

         HH24                Âðåìÿ ñóòîê, èíòåðâàë 0-23.

         MI                  Ìèíóòû.

         SS                  Ñåêóíäû.

         SSSSS               Ñåêóíäû ïîñëå ïîëóíî÷è (0-86399).

         /., è.ò.ä.          Ïóíêòóàöèÿ, êîòîðàÿ  âîñïðîèçâîäèòñÿ  â

                             ðåçóëüòàòå.

         "..."               Ñòðîêà  â êàâû÷êàõ, êîòîðàÿ âîñïðîèçâî-

                             äèòñÿ â ðåçóëüòàòå.

                            

                                     

                                     

                                -22-

                                     

                                     

                                     

                                     

         Ïðåôèêñ , óêàçàííûé íèæå,ìîæåò áûòü äîáàâëåí ê êîäàì  ïåðå-

         ÷èñëåííûì âûøå:

         -----------------------------------------------------------

                                     

         fm                  "Fill mode"(ðåæèì íàïîëíåíèÿ).Óêàçàííûé

                             ïåðåä MONTH èëè  DAY ïîäàâëÿåò ïðîáåëû,

                             îñòàâëÿÿ òîëüêî  ðåçóëüòàò  ôàêòè÷åñêîé

                             äëèíû. Ñ äðóãèìè êîäàìè íåäåéñòâèòåëåí.

        

         Ñóôôèêñû, óêàçàííûå íèæå ìîãóò áûòü äîáàâëåíû ê êîäàì ïåðå-

         -----------------------------------------------------------

         ÷èñëåííûì âûøå:

         ---------------

                                     

         TH                  Ïîðÿäêîâîå ÷èñëî(íàïð.,"DDTH" äëÿ "4TH")

        

         SP                  ×èñëî ïðîïèñüþ (íàïð.,"DDSP" äëÿ "FOUR")

        

         SPTH èëè THSP       Ïîðÿäêîâîå ÷èñëî ïðîïèñüþ(íàïð.,

                             "DDSPTH") äëÿ "FOURTH").

                      

                                      

                                      

                                -23-

                               

                                     

                                     

                                     

                                     

         Íàëè÷èå çàãëàâíûõ áóêâ â àááðåâèàòóðàõ èëè â ñëîâàõ  ïðîïè-

         ñüþ îïðåäåëÿåòñÿ íàëè÷èåì çàãëàâíûõ  áóêâ â  ñîîòâåòñòâóùåì

         ôîðìàòíîì ýëåìåíòå. Íàïðèìåð,  "DAY"  â ìîäåëè ôîðìàòà äàåò

         ñëîâà èç çàãëàâíûõ áóêâ, òàêèå êàê:

                                   "MONDAY";

         "Day" äàåò

                                   "Monday";

         è "day" äàåò

                                   "monday".

             

         Ìîäåëü ôîðìàòà äàòû ìîæåò òàêæå âêëþ÷àòü â ñåáÿ çíàêè ïóíê-

         òóàöèè, òàêèå êàê äåôèñ, êîñóþ ÷åðòó, çàïÿòûå  è ñèìâîëüíûå

         êîíñòàíòû,çàêëþ÷åííûå â äâîéíûå êàâû÷êè ( íå â àïîñòðîôû ).

         Ïóíêòóàöèÿ è êîíñòàíòû ïîÿâëÿþòñÿ ïðè âûâîäå. Íàïðèìåð  ìî-

         äåëü ôîðìàòà:

                             DDth  "of"  Month, YYYY

         äàåò ïðè âûâîäå äàòó ñëåäóþùåãî âèäà:

                             15th  of  February, 1986

                            

                                     

             

                                -24-

                                     

                                      

ÎÏÅÐÀÒÎÐÛ

    ----------------------------------------------------------------

         Â êàæäîé òàáëèöå îïåðàòîðû ðàñïîëîæåíû â  ïîðÿäêå  óáûâàíèÿ

         ïî ïðèîðèòåòó. Ýêâèâàëåíòíûå ïî ïðèîðèòåòó îïåðàòîðû  îáúå-

         äèíÿþòñÿ â ãðóïû ñ ïîìîùüþ ïóíêòèðíûõ ëèíèé. Ïðè ïîñëåäîâà-

         òåëüíîì âûïîëíåíèè îïåðàòîðîâ îäíîãî ïðèîðèòåòà, îíè âûïîë-

         íÿþòñÿ â ïîðÿäêå íàïèñàíèÿ, ñëåâà íàïðàâî.

 

    SQL*Plus Ñèíòàêñè÷åñêèå îïåðàòîðû

    ----------------------------------------------------------------

                                     

         Ýòè îïåðàòîðû ìîãóò ïîÿâèòüñÿ â ëþáîì ìåñòå êîìàíäû è èìåþò

         áîëåå âûñîêèé ïðèîðèòåò, ÷åì îïåðàòîðû âñåõ äðóãèõ òèïîâ.

        

         Îïåðàòîð      Ôóíêöèÿ                Ïðèìåð

         -----------------------------------------------------------

         -             Ïðîäîëæåíèå êîìàíäû    COLUMN JOB -

                       SQL*PLUS               HEADING 'Job Title';

                                                                

         &             Óêàçûâàåò ïàðàìåòð     SELECT * FROM EMP

                       â êîìàíäíîì ôàéëå,     WHERE JOB='&' AND

                       çàïóñêàåìîì ñ ïî-      SAL=&1;

                       ìîùüþ START. Ôðàçû     . . .

                       ïîäñòàâëÿþòñÿ âìåñ-    START EX 'CLERK' 950;

                       òî çíàêîâ '&'; ïåð-

                       âàÿ âìåñòî '&1',

                       âòîðàÿ âìåñòî '&2',

                       è.ò.ä..

             

         &,&&          Èäåíòèôèöèðóåò ïîäñ-   SELECT * FROM EMP

                       òàâëÿåìóþ ïåðåìåííóþ   WHERE JOB=

                       â SQL êîìàíäå. Òåêó-   '&WHICH_JOB' AND

                       ùåå çíà÷åíèå   ïåðå-   SAL=&SALARY;

                       ìåííîé ïîäñòàâëÿåòñÿ

                       â  èìÿ  ïåðåìåííîé ,

                       êàæäûé ðàç êîãäà êî-

                       ìàíäà âûïîëíÿåòñÿ.

                       SQL*PLUS äàåò ïîä-

                       ñêàçêó íà ââîä çíà-

                       ÷åíèÿ åñëè íàõîäèò

                       íåîïðåäåëåííûå ïåðå-

                       ìåííûå '&' èëè '&&'.

                       '&&' îïðåäåëÿåò ïåðå-

                       ìåííóþ è õðàíèò çíà-

                       íèå; '&' íå âûïîëíÿåò

                       ýòîãî.

    

             

                                -25-

                                     

                                     

                                     

 

    SQL Ñèíòàêñè÷åñêèå îïåðàòîðû

    ----------------------------------------------------------

 

         Îïåðàòîð     Ôóíêöèÿ                 Ïðèìåð

         ----------------------------------------------------------

         

         ()           Âûäåëåíèå ïîäçàïðîñà    SELECT * FROM EMP

                                              WHERE COMP >

                                              (SELECT COMP FROM EMP

                                              WHERE ENAME='JONES');

             

         ,            Âûäåëåíèå ñèìâîëüíûõ    'O''Brien'

                      êîíñòàíò èëè êîíñòàíò   '17-JAN-86'

                      îáîçíà÷àþùèõ äàòû.Äëÿ

                      óêàçàíèÿ àïîñòðîôà â

                      ñèìâîëüíîé êîíñòàíòå

                      íåîáõîäèìî åãî óäâî-

                      èòü.

                                                         

         "            Âûäåëåíèå èìåíè ñòîë-   SELECT NAME "EMP

                      áöà èëè ïñåâäîíèìà,     NAME" EMPNO "EMP NUM"

                      ñîäåðæàùåãî ñïåöèàëü-   FROM EMP;

                      íûå ñèìâîëû.

                      

         "            Âûäåëåíèå ëèòåðàëüíûõ   'dd "of" Month yyyy'

                      äàííûõ â ôîðìàòå äàòû

                                                                  

         @            Îáîçíà÷åíèå òîãî, ÷òî    ...FROM EMP@BOSTON

                      çà ýòèì çíàêîì ñëåäóåò

                      èìÿ ñâÿçè ñ áàçîé äàí-

                      íûõ âî ôðàçå FROM.

         

                                           

                                     

                                -26-

                                     

                                     

 

    SQL ×èñëîâûå îïåðàòîðû

    ----------------------------------------------------------------

         Îïåðàòîð      Ôóíêöèÿ                Ïðèìåð

         -----------------------------------------------------------

             

         ()            Ïåðåîïðåäåëåíèå îáû÷-  SELECT (X+Y)/(X-Y)...;

                       íîãî ïîðÿäêà âûïîëíå-

                       íèÿ îïåðàòîðîâ.

         - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

         + -           Çíàê âûðàæåíèÿ, ñòîÿ-  QTYSOLD = -1

                       ùèé ïåðåä  ÷èñëîâûì    ...WHERE A<-(5*B);

                       âûðàæåíèåì.

         - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

         * /           Äåëåíèå è óìíîæåíèå    SELECT 2*X + 1

                                              ...WHERE X>Y/2;

        

         - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

         + -           Ñëîæåíèå è âû÷èòàíèå   SELECT 2*X - 1

                                              ...WHERE X>Y-Z;

                                                           

         ||            Êîíêàòåíàöèÿ   ñèì-    SELECT 'NAME IS' ||

                       âîëüíûõ âåëè÷èí.       ENAME...

       

        ------------------------------------------------------------

           

                                     

 

    Ëîãè÷åñêèå îïåðàòîðû SQL

    ----------------------------------------------------------------

         Ñâÿçàííàÿ òåìà: îïåðàòîð LIKE

                                     

         Îïåðàòîð      Ôóíêöèÿ                Ïðèìåð

    ----------------------------------------------------------------

   

         ()            Ïåðåîïðåäåëåíèå îáû÷-  ...NOT(A=1 OR B=1);

                       íîãî ïîðÿäêà âûïîëíå-

                       íèÿ îïåðàòîðîâ.

         - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

         =             Ïðîâåðêà íà ðàâåíñòâî   ...WHERE SALARY=1000

        

         !=            Ïðîâåðêà  íà íåðàâåí-   ...WHERE

         èëè <>        ñòâî                    SALARY !=10000

        

         > >=          "Áîëüøå"; "áîëüøå èëè   ...WHERE

                       ðàâíî"                  SALARY >=10000

                                      

        <  <=          "Ìåíüøå"; "ìåíüøå èëè

                       ðàâíî"

                                                      

        IN             "Ðàâåíñòâî îäíîìó èç    ...WHERE JOB IN

                       ÷ëåíîâ..."              ('CLERK','ANALIST')

                      

        IN              Ýêâèâàëåíòíî '=ANY'     ...WHERE SAL IN

                        ò.å., ðàâåíñòâî ëþáî-   (SELECT SAL FROM EM

                        ìó.                     ...WHERE DEPTNO=30)

             

                                     

                                     

                                -27-

                                     

              

         Îïåðàòîð      Ôóíêöèÿ                Ïðèìåð

    ----------------------------------------------------------------

         NOT IN         Ýêâèâàëåíòíî '!=ALL'    ...WHERE SAL NOT IN

                        (íå ðàâíî íè îäíîìó)    (SELECT SAL FROM EMP

                                                WHERE DEPTNO=30)

                                                

         ANY            Ñðàâíèòü çíà÷åíèå ñ     ...WHERE SAL = ANY

                        êàæäûì çíà÷åíèåì,âîç-   (SELECT SAL FROM EMP

                        âðàùàåìûì ñïèñêîì èëè   WHERE DEPTNO=30)

                        ïîäçàïðîñîì

                                            

         ALL            Ñðàâíèòü çíà÷åíèå ñ     ...WHERE SAL > ALL

                        êàæäûì çíà÷åíèåì,âîç-   (SELECT SAL FROM EMP

                        âðàùàåìûì ñïèñêîì èëè   WHERE DEPTNO=30)

                        ïîäçàïðîñîì

                                                             

         [NOT]          "[Íå](áîëüøå èëè ðàâíî  ...WHERE A BETWEEN 1

         BETWEEN        x è ìåíüøå èëè ðàâíî    AND 9

         AND...         y)"

        

         EXISTS         "Èñòèíà", åñëè ïîäçàï-  ...WHERE EXISTS

                        ðîñ âîçâðàùàåò õîòÿ     (SELECT SAL FROM EMP

                        áû îäíó ñòðîêó          WHERE DEPTNO=30)

                                                               

         [NOT] LIKE     "Ñîîòâåòñòâèå [ èëè     ...WHERE COD LIKE

                        íåñîîòâåòñòâèå] ñëåäó-  'T%'

                        þùåìó øàáëîíó".

                        '%'óêàçûâàåò íà ñîîò-

                        âåòñòâèå ëþáîé ñòðîêå

                        çíàêîâ;

                        '_' - ñîîòâåòñòâèå

                        îäèíî÷íîìó ñèìâîëó

                        (ñì. îïèñàíèå LIKE).

                                                 

         IS [NOT]       "Ðàâíî[íå ðàâíî] ïóñ-   ...WHERE JOB IS NULL

         NULL            òîìó çíà÷åíèþ"

         - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

         NOT             Ïðåîáðàçîâàíèå ðåçóëü- ...WHERE  NOT (JOB

                         òàòà ëîãè÷åñêîé îïåðà- IS NULL)

                         öèè â ïðîòèâîïîëîæíûé  ...WHERE  NOT(COD

                                                LIKE'T%')

                                                ...WHERE  NOT(SAL

                                                BETWEEN 500 AND 999)

                                                ...WHERE  NOT(A=1)

         - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

         AND             Êîìáèíàöèÿ 2-õ ëîãè-   ...WHERE  A=1

                         ÷åñêèõ âûðàæåíèé, èñ-        AND B=1

                         òèííàÿ (TRUE)  òîãäà,

                         êîãäà èñòèíû îáà.

        

         OR              Êîìáèíàöèÿ 2-õ ëîãè÷å- ...WHERE  A=1

                         ñêèõ âûðàæåíèé, èñòèí-       OR  B=1

                         íàÿ(TRUE) òîãäà, êîãäà

                         èñòèííî õîòÿ áû îäíî

                         èç íèõ.

        

        

                                     

                                -28-

                                     

                                      

                                     

 

    ÎÏÅÐÀÒÎÐÛ Â ÂÛÐÀÆÅÍÈßÕ ÇÀÏÐÎÑÎÂ SQL.

 

         Îïåðàòîð       Ôóíêöèÿ                   Ïðèìåð

         ----------------------------------------------------------

                                      

         ( )            Ïåðåîïðåäåëåíèå îáû÷íîãî  SELECT...UNION

                        ïîðÿäêà ñëåäîâàíèÿ îïåðà- (SELECT...MINUS

                        òîðîâ.                    SELECT...);

                                     

         -----------------------------------------------------------

                                     

         UNION          Îáúåäèíåíèå çàïðîñîâ äëÿ  ...SELECT...

                        ïîëó÷åíèÿ âñåõ ðàçëè÷íûõ  UNION SELECT...;

                        ñòðîê, êîòîðûå âîçâðàùà-

                        þòñÿ êàæäûì  ïîäçàïðîñîì

                        èíäèâèäóàëüíî.

        

         INTERSECT      Îáúåäèíåíèå çàïðîñîâ äëÿ  ...SELECT...

                        ïîëó÷åíèÿ òåõ ðàçëè÷íûõ   INTERSECT

                        ñòðîê, êîòîðûå âîçâðàùà-  SELECT...;

                        þòñÿ â ðåçóëüòàòå îáîèõ

                        ïîäçàïðîñîâ.

        

         MINUS          Îáúåäèíåíèå çàïðîñîâ òàê, ...SELECT...

                        ÷òîáû ïîëó÷èòü âñå(ðàç-   MINUS SELECT...;

                        ëè÷íûå) ñòðîêè, âîçâðàùà-

                        åìûå ïåðâûì çàïðîñîì è íå

                        âîçâðàùàåìûå âòîðûì.

                                                                

         -----------------------------------------------------------

 

    ÄÐÓÃÈÅ ÎÏÅÐÀÒÎÐÛ SQL

    ----------------------------------------------------------------

 

         Îïåðàòîð       Ôóíêöèÿ                   Ïðèìåð

        

         (+)            Óêàçàíèå òîãî, ÷òî ïðå-  ...WHERE DEPT.

                        äûäóùèé ñòîëáåö ÿâëÿåò-  DEPTNO=EMP.DEPTNO(+)

                        ñÿ âíåøíèì,îáúåäèíÿþùèì

                        ñòîëáöîì â ñîåäèíåíèè.

        

         *              Âûáîð âñåõ ñòîëáöîâ èç    ...SELECT  *...

                        òàáëèö çàïðîñà.    Ìîæåò

                        ïðåäâîðÿòüñÿ èìåíåì òàá-

                        ëèöû  äëÿ  âûáîðà   âñåõ

                        ñòîëáöîâ â ýòîé òàáëèöå.

                        Åñëè  èñïîëüçóåòñÿ âìåñòî

                        èìåíè ñòîëáöà ïðè ïîäñ÷å-

                        òàõ, ïðèâîäèò ê âêëþ÷åíèþ

                        â ïîäñ÷åò ñòðîê ñ ïóñòûìè

                        çíà÷åíèÿìè.

        

         ALL            Ñîõðàíåíèå äóáëèðóþùèõ    ...SELECT ALL*...

                        çíà÷åíèé â çàïðîñàõ è     ...COUNT(ALL

                        â ñîñòàâíûõ âûðàæåíèÿõ.   DEPTNO)

                       

                                     

                                     

                                -29-

                                     

                                     

                                     

                                     

         DISTINCT       Èñêëþ÷åíèå äóáëèðóþùèõ    ...SELECT

                        ñòðîê èç ðåçóëüòàòà çàï-  DISTINCT*...

                        ðîñà èëè ñîñòàâíûõ âûðà-  ...COUNT(DISTINCT

                        æåíèÿé.                   DEPTNO)...

        

         PRIOR          Îïðåäåëåíèå îòíîøåíèé     ...CONNECT BY

                        ðîäèòåëü-ïîòîìîê â çàïðî- PRIOR EMPNO=MGR

                        ñå ñî ñòðóêòóðîé äåðåâà.

                        Âûðàæåíèå ïåðåä PRIOR îï-

                        ðåäåëÿåò ðîäèòåëÿ;äðóãîå

                        âûðàæåíèå ïîòîìêà. Ìîæåò

                        èñïîëüçîâàòüñÿ â ëþáîì âû-

                        ðàæåíèè â çàïðîñå ñ äðåâî-

                        âèäíîé ñòðóêòóðîé (íå òîëü-

                        êî â CONNECT BY).

         -----------------------------------------------------------

         

                                     

                                -30-

                                     

                                     

ÔÓÍÊÖÈÈ  SQL

    ----------------------------------------------------------------

                                      

         Âîîáùå  ãîâîðÿ,  ôóíêöèè ìîãóò áûòü èñïîëüçîâàíû âåçäå, ãäå

         èñïîëüçóþòñÿ ïåðåìåííûå ïîëüçîâàòåëÿ, ñòîëáöû èëè âûðàæåíèÿ

         (ñîîòâåòñòâóþùåãî òèïà).

          ñëåäóþùèõ òàáëèöàõ "Òèï"  óêàçûâàåò òèï çíà÷åíèÿ, âîçâðà-

         ùàåìûé ôóíêöèåé. Ãäå âîçìîæíî, òèï îáîçíà÷àåòñÿ àááðåâèàòó-

         ðîé.

        

         *    'C' îçíà÷àåò "char" (ñèìâîëû)

         *    'D' îçíà÷àåò"date" (äàòà)

         *    'N' îçíà÷àåò"number" (÷èñëà)

         *    'R' îçíà÷àåò"rowID" (èäåíòèôèêàòîð ñòðîêè)

         *    'W' îçíà÷àåò"raw" (èñõîäíûå äàííûå)

         *    '*' îçíà÷àåò òèï äàííûõ, çàâèñÿùèé îò êîíòåêñòà  ôóíê-

              öèè.

         *    n,m óêàçûâàþò íà ÷èñëåííûå âûðàæåíèÿ.

         *    "ñèìâîë" , "ñèìâîë1" , "ñèìâîë2" , "íàáîð"    îçíà÷àþò

               ñèìâîëüíûå  âûðàæåíèÿ.

         *    "âûðàæ" , "ñòðîê", "ðåçóëüò" è  "ïî_óìîë÷"  îáîçíà÷àþò

              âûðàæåíèÿ ëþáîãî òèïà.

         *    d,l îáîçíà÷àåò âûðàæåíèÿ òèïà äàòû

 

    ×ÈÑËÎÂÛÅ ÔÓÍÊÖÈÈ

    ----------------------------------------------------------------

         Òèï      Ôóíêöèè          Âîçâðàùàåìîå çíà÷åíèå

         -----------------------------------------------------------

 

         N       ABS(n)            Àáñîëþòíîå çíà÷åíèå n

 

         N       CEIL(n)           Íàèìåíüøåå öåëîå, íå ìåíüøåå n.

 

         N       FLOOR(n)          Íàèáîëüøåå öåëîå, íå áîëüøå n.

 

         N       MOD(m,n)          Îñòàòîê îò äåëåíèÿ m íà n.

 

         N       POWER(m,n)        m â ñòåïåíè n. Åñëè n íå öåëîå,

                                   òî îíî óñåêàåòñÿ äî öåëîãî.

 

         N       ROUND(n[,m])      n, îêðóãëåííîå äî m-òîãî äåñÿòè÷-

                                   íîãî çíàêà; åñëè m îïóùåíî,òî îíî

                                   ïðèíèìàåòñÿ ðàâíûì 0.m ìîæåò áûòü

                                   îòðèöàòåëüíûì äëÿ îêðóãëåíèÿ öèôð

                                   ëåâåå äåñÿòè÷íîé òî÷êè.

         N       SIGN(n)           Åñëè n<0, òî -1; åñëè n=0, òî 0;

                                   åñëè n>0, òî 1.

         N       SQRT(n)           Êîðåíü êâàäðàòíûé èç n, åñëè n<0,

                                   òî NULL.

         N       TRUNC(n[,m])      n, óñå÷åííîå äî m äåñÿòè÷íûõ çíà-

                                   êîâ;  åñëè m îïóùåíî, òî îíî ïðè-

                                   íèìàåòñÿ ðàâíûì 0.   m ìîæåò áûòü

                                   îòðèöàòåëüíûì äëÿ  óñå÷åíèÿ(îáíó-

                                   ëåíèÿ)  öèôð ñëåâà îò  äåñÿòè÷íîé

                                   òî÷êè.

                                   

        

                                -31-

                                                            

 

    ÑÈÌÂÎËÜÍÛÅ ÔÓÍÊÖÈÈ

    ----------------------------------------------------------------

 

         Òèï    Ôóíêöèÿ            Âîçâðàùàåìîå çíà÷åíèå

         -----------------------------------------------------------

 

         N      ASCII(ñèìâîë)      Êîä  ASCII  ïåðâîãî ñèìâîëà  ñèì-

                                   âîëüíîé ïåðåìåííîé "ñèìâîë".

 

         Ñ      CHR(n)             Ñèìâîë,êîä ASCII êîòîðîãî ðàâåí n

 

         C      INITCAP(ñèìâîë)    Ñèìâîëüíàÿ ïåðåìåííàÿ  ñ  ïåðâûìè

                                   áóêâàìè   ñëîâ,   íà÷èíàþùèõñÿ  ñ

                                   çàãëàâíîé áóêâû.

 

         N      INSTR(ñèìâîë1,

                ñèìâîë2[,n[,m]])   Ïîçèöèÿ m-òîãî âêëþ÷åíèÿ "cèìâîë2"

                                   â "ñèìâîë1" ïðè  íà÷àëå  ïîèñêà ñ

                                   ïîçèöèè n. Åñëè m îïóùåíî,ïî óìîë-

                                   ÷àíèþ ïðåäïîëàãàåòñÿ 1;àíàëîãè÷íî

                                   äëÿ n. Ïîçèöèè äàþòñÿ îòíîñèòåëü-

                                   íî ïåðâîãî  çíàêà "ñèìâîë1", äàæå

                                   åñëè n>1.

 

         N      LENGTH(ñèìâîë)     Äëèíà â çíàêàõ  ñèìâîëüíîé  ïåðå-

                                   ìåííîé "ñèìâîë".

 

         C      LOWER(ñèìâîë)      "ñèìâîë",ãäå âñå áóêâû óñòàíàâëè-

                                   âàþòñÿ  ìàëåíüêèìè.

 

         C      LPAD(ñèìâîë1       ñòðîêà " ñèìâîë1" ,  äîáàâëåííàÿ

                n[,ñèìâîë2])       ñëåâà äî äëèíû  n  ïîñëåäîâàòåëü-

                                   íîñòüþ çíàêîâ èç ñòðîêè "ñèìâîë2"

                                   ñ ïîâòîðåíèåì ýòîé ïîñëåäîâàòåëü-

                                   íîñòè ñòîëüêî ðàç ñêîëüêî íåîáõî-

                                   äèìî.  Åñëè   "ñèìâîë2"  îïóùåíî,

                                   èñïîëüçóþòñÿ ïðîáåëû.

 

         C      LTRIM(ñèìâîë,      ñòðîêà "ñèìâîë", â êîòîðîé âû÷åð-

                íàáîð)             êíóòû  íà÷àëüíûå  çíàêè âïëîòü äî

                                   ïåðâîãî   íå   âñòðå÷àþùåãîñÿ   â

                                   "íàáîð"  çíàêà.

 

         Ñ      RPAD(ñèìâîë1,      ñòðîêà "ñèìâîë1" ,  äîáàâëåííàÿ

                n[,ñèìâîë2])       ñïðàâà ñèìâîëàìè  "ñèìâîë2",ñ ïî-

                                   âòîðåíèåì, åñëè  íåîáõîäèìî; åñëè

                                   "ñèìâîë2" îïóùåíà ,  èñïîëüçóþòñÿ

                                   ïðîáåëû.

 

         C      SOUNDEX(ñèìâîë)    Ñèìâîëüíàÿ ïåðåìåííàÿ,  ïðåäñòàâ-

                                   ëÿþùàÿ çâóêè ñëîâ â "ñèìâîë".

 

         C      SUBSTR(ñèìâîë,     Ïîäñòðîêà, ïîëó÷àåìàÿ èç "ñèìâîë",

                m[,n])             íà÷èíàþùàÿñÿ ñ  ñèìâîëà  m è äëè-

                                   íîé n ñèìâîëîâ  (åñëè  n îïóùåíî,

                                   òî äî êîíöà "ñèìâîë").

                                  

                                     

                                     

                                -32-

                                     

                                     

                                     

                                     

         C      TRANSLATE          ñòðîêà "ñèìâîë1",ñòðàíñëèðîâàííàÿ

                (ñèìâîë1,ñèìâîë2,  èç ìíîæåñòâà ñèìâîëîâ "ñèìâîë2" â

                ñèìâîë3)           ìíîæåñòâî "ñèìâîë3";êàæäûé ñèìâîë

                                   èç "ñèìâîë1" ïåðåâîäèòñÿ â  ñîîò-

                                   âåòñòâóþùèé ñèìâîë èç "ñèìâîë3".

                                  

 

         C      UPPFR(ñèìâîë)      ñòðîêà èç ñèìâîëîâ âåðõíåãî ðå-

                                   ãèñòðà (çàãëàâíûå áóêâû).

 

         C      USERNV(ñèìâîë)     Âîçâðàùàåò èíôîðìàöèþ î ïîëüçîâà-

                                   òåëå, êîòîðàÿ ïîëåçíà äëÿ ñîñòàâ-

                                   ëåíèÿ ïðèêëàäíûõ òàáëèö  ñëåæåíèÿ

                                   çà îêîí÷àíèåì êàêîãî-ëèáî ïðîöåñ-

                                   ñà . Åñëè "ñèìâîë" åñòü'ENTRYID'-

                                   âîçâðàùàåòñÿ  äîñòóïíûé èäåíòèôè-

                                   êàòîð ýëåìåíòà , çà êîòîðûì  èäåò

                                   ñëåæåíèå  ;  åñëè  "ñèìâîë"  åñòü

                                   'SESSIONID'- âîçâðàùàåòñÿ èäåíòè-

                                   ôèêàòîð ïîëüçîâàòåëÿ,íàõîäÿùåãîñÿ

                                   â ñåàíñå  ðàáîòû ñ áàçîé ;  åñëè

                                   "ñèìâîë" åñòü 'TERMINAL'- âîçâðà-

                                   ùàåòñÿ  èäåíòèôèêàòîð   òåðìèíàëà

                                   ïîëüçîâàòåëÿ (â òåðìèíàõ îïåðàöè-

                                   îííîé ñèñòåìû). LANGUAGE  âîçâðà-

                                   ùàåò èñïîëüçóåìûé ÿçûê (íàïðèìåð,

                                   'ENGLISH').

                                  

                                     

                                     

                                -33-

                                     

                                      

                                     

 

    ÃÐÓÏÏÎÂÛÅ ÔÓÍÊÖÈÈ

    ----------------------------------------------------------------

 

         Ãðóïïîâûå  ôóíêöèè  èìåþò çíà÷åíèå òîëüêî â çàïðîñàõ è ïîä-

         çàïðîñàõ.

        

         DISTINCT   ïðèâîäèò  ê  ãðóïïîâîé ôóíêöèè,  ðàññìàòðèâàþùåé

         òîëüêî ðàçëè÷íûå çíà÷åíèÿ âûðàæåíèÿ; ALL ïðèíóæäàåò ðàññìà-

         òðèâàòü âñå çíà÷åíèÿ. Íàïðèìåð, DISTINCT  ïðè íàõîæäåíèè

         ñðåäíåãî çíà÷åíèÿ  èç 1,1,1, è 3 åñòü 2, òîãäà êàê  ALL ïðè

         ýòîé æå îïåðàöèè åñòü  1.5.

        

         Ïî óìîë÷àíèþ âñåãäà áåðåòñÿ ALL.

        

        

         Òèï    Ôóíêöèÿ               Âîçâðàùàåìîå çíà÷åíèå

         -----------------------------------------------------------

         

         N      AVG([DISTINCT|ALL]n)  Ñðåäíåå çíà÷åíèå  n, ñ èãíîðè-

                                      ðîâàíèåì ïóñòûõ çíà÷åíèé.

        

         N      COUNT({[DISTINCT|ALL] Êîëè÷åñòâî ñòðîê,â êîòîðûõ "âû-

                      âûðàæ|*})       ðàæ" íå ÿâëÿåòñÿ ïóñòûì(NULL).

                                      '*'-îáîçíà÷àåò, ÷òî COUNT ïîä-

                                      ñ÷èòûâàåò âñå âûáðàííûå ñòðîêè

        

         N      MAX([DISTINCT|ALL]    Ìàêñèìàëüíîå çíà÷åíèå "âûðàæ"

                    âûðàæ)

        

         N      MIN([DISTINCT|ALL]    Ìèíèìàëüíîå çíà÷åíèå "âûðàæ"

                    âûðàæ)

        

         N      STDDEV([DISTINCT|     Ñðåäíåêâàäðàòè÷íîå (ñòàíäàðò-

                       ALL]n)         íîå) îòêëîíåíèå îò n, ñ èãíî-

                                      ðèðîâàíèåì ïóñòûõ çíà÷åíèé.

        

         N      SUM([DISTINCT|ALL]n)  Cóììà çíà÷åíèé n.

        

         N      VARIANCE([DISTINCT|   Äèñïåðñèÿ  n, ñ èãíîðèðîâàíèåì

                        ALL]n)        ïóñòûõ çíà÷åíèé.

        

                                     

                                -34-

                                     

                                     

 

    ÔÓÍÊÖÈÈ ÏÐÅÎÁÐÀÇÎÂÀÍÈß

    ----------------------------------------------------------------

 

         Òèï    Ôóíêöèÿ             Ðåçóëüòàò(âîçâðàùàåìîå çíà÷åíèå)

         -----------------------------------------------------------

                                               

         C      CHARTOROWID(ñèìâîë)   Ïðåîáðàçîâàíèå ñòðîêè "ñèìâîë"

                                      â èäåíòèôèêàòîð ñòðîêè.

        

         W      HEXTORAW(ñèìâîë)      Ïðåîáðàçîâàíèå ñòðîêè "ñèìâîë",

                                      ñîäåðæàùåé   øåñòíàäöàòèðè÷íûå

                                      çíà÷åíèÿ â  ñòðîêó ñ äâîè÷íûìè

                                      çíà÷åíèÿìè (óäîáíûìè äëÿ âêëþ-

                                      ÷åíèÿ â  RAW-ñòîëáåö(ñòîëáåö ñ

                                      èñõîäíûìè äàííûìè)).

                                              

         C      RAWTOHEX(èñõ_äàíí)    Ïðåîáðàçîâàíèå "èñõ_äàíí"(èñõî-

                                      äíûå äàííûå) â ñòðîêó, ñîäåðæà-

                                      ùóþ  øåñòíàäöàòèðè÷íûå çíà÷åíèÿ.

                                                 

         C      ROWIDTOCHAR(èäåíò_ñòð) Ïðåîáðàçîâàíèå  èäåíòèôèêàòîðà

                                      ñòðîêè  â  ñòðîêó,  äëèíîé  18

                                      ñèìâîëîâ.

                                     

         C      TO_CHAR(n[,ôìò])

        

         C      TO_CHAR(d[,ôìò])      Ïðåîáðàçîâàíèå  n èëè d â ñèì-

                                      âîëüíûé âèä ïî ôîðìàòó,  îïðå-

                                      äåëåííîìó ñ ïîìîùüþ "ôìò"(ñèì-

                                      âîëüíàÿ ïåðåìåííàÿ).

                                      Îá "ôìò" ñìîòðè "Ìîäåëè ôîðìà-

                                      òîâ"  â ýòîé ãëàâå.

                                      Åñëè "ôìò" îïóùåíî n ïðåîáðàçó-

                                      åòñÿ â ñòðîêó òàêîé äëèíû, êî-

                                      òîðàÿ âìåùàåò òîëüêî  çíà÷àùèå

                                      öèôðû; d ïðåîáðàçóåòñÿ â ñòðî-

                                      êó ñîãëàñíî óìîë÷àíèþ   ORACLE

                                      ïî äàòå:  'DD-MON-YY'.

        

         D     TO_DATE("ñèìâîë"       Ïðåîáðàçîâàíèå äàòû â ñèìâîëü-

                       [,ôìò])        íîì  âèäå     â çíà÷åíèå äàòû.

                                      "ôìò"- ýòî ñòðîêà,îïðåäåëÿþùàÿ

                                      ôîðìàò  ñòðîêè   "ñèìâîë" . Îá

                                      "ôìò" ñìîòðè "Ìîäåëè Ôîðìàòîâ"

                                      â ýòîé ãëàâå.

                                      Åñëè "ôìò" îïóùåíà,"ñèìâîë" äî-

                                      ëæíà èìåòü ôîðìàò äàòû ïî óìîë-

                                      ÷àíèþ 'DD-MON-YY'.

        

         D      TO_DATE(n,[ôìò])      Ïðåîáðàçîâàíèå ÷èñëà n â äàòó.

                                      "ôìò" äîëæíà áûòü òàêîé æå êàê

                                      è â TO_CHAR,(íàïð.,'I' èëè 'MM').

        

         N      TO_NUMBER(ñèìâîë)     Ïðåîáðàçîâàíèå ñòðîêè "ñèìâîë",

                                      ïðåäñòàâëÿþùåé ÷èñëî, â  ÷èñëî-

                                      âîå çíà÷åíèå.

        

                                     

                                -35-

                                      

                                     

 

    ÔÓÍÊÖÈÈ ÐÀÁÎÒÛ Ñ ÄÀÒÀÌÈ

    ----------------------------------------------------------------

 

         Òèï     Ôóíêöèè              Ðåçóëüòàò

         -----------------------------------------------------------

        

         D       ADD_MONTHS(d,n)      Äàòà d ïëþñ n ìåñÿöåâ

        

         D       LAST_DAY(d)          Äàòà  ïîñëåäíåãî  äíÿ   ìåñÿöà

                                      ñîäåðæàùåãî d

         N       MONTHS_BETWEEN(d,e)  Êîëè÷åñòâî ìåñÿöåâ ìåæäó d è e.

                                      Eñëè d áîëåå ïîçäíÿÿ äàòà, ÷åì

                                      e, ðåçóëüòàò ïîëîæèòåëåí, èíà-

                                      ÷å  îòðèöàòåëåí.

        

         D       NEW_TIME(d,a,b)      Äàòà è âðåìÿ âî âðåìåííîé çîíå

                                      b ,  åñëè âî  âðåìåííîé çîíå a

                                      îíè ðàâíû d.

                                      a  è  b  ñèìâîëüíûå  âûðàæåíèÿ

                                      ñëåäóþùèõ çíà÷åíèé:

                                      AST , ADT   Âðåìÿ ïî ñòàíäàðòó

                                                Àòëàíòèêè ,  äíåâíîå

                                                âðåìÿ.

                                      BST,BDT   Âðåìÿ  ïî  ñòàíäàðòó

                                                Áåðèíãà ,    äíåâíîå

                                                âðåìÿ.

                                      CST,CDT   Âðåìÿ ïî Öåíòðàëüíî-

                                                ìó ñòàíäàðòó , äíåâ-

                                                íîå âðåìÿ.

                                      EST,EDT   Âðåìÿ ïî  Âîñòî÷íîìó

                                                ñòàíäàðòó  , äíåâíîå

                                                âðåìÿ.

                                      GMT       Ñðåäíåå   âðåìÿ   ïî

                                                Ãðèíâè÷ó.

                                      HST, HDT  Âðåìÿ  ïî  ñòàíäàðòó

                                                Àëÿñêà-Ãàâàéè, äíåâ-

                                                íîå âðåìÿ.

                                      MST,MDT   Âðåìÿ  ïî  ñòàíäàðòó

                                                Mountain  ,  äíåâíîå

                                                âðåìÿ.

                                      NST       Âðåìÿ  ïî  ñòàíäàðòó

                                                Íüþ-Ôàóíëåíäà.

                                      PST,PDT   Òèõîîêåàíñêèé  ñòàí-

                                                äàðò , äíåâíîå âðåìÿ

                                      YST,YDT   Âðåìÿ  ïî  ñòàíäàðòó

                                                Þêîíà, äíåâíîå âðåìÿ

                                     

         D       NEXT_DAY(d,ñèìâîë)   Äàòà ïåðâîãî èç  äíåé  íåäåëè,

                                      îáîçíà÷åííîé "ñèìâîë", êîòîðàÿ

                                      áîëüøå èëè ðàâíà d.

                                     

         N       TRUNC(d)             d  ñ óñå÷åííûì  âðåìåíåì ñóòîê

        

                                     

 

                                -36-

                                     

                                     

 

 

    Äpóãèå ôóíêöèè

    ----------------------------------------------------------------

 

         Òèï   Ôóíêöèÿ   Ðåçóëüòàò (âîçâpàùàåìîå çíà÷åíèå)

         -----------------------------------------------------------

 

          *    DECODE (âûðàæ,ñòðîê1,ðåçóëüò1,ñòðîê2,ðåçóëüò2,

                        ... [ïî_óìîë÷] )

                         Åñëè "âûðàæ" pàâíî ëþáîé èç ñòpîê "ñòðîê1",

                         âîçâpàùàåò ñîîòâåòñòâóþùåå "ðåçóëüò"; åñëè

                         íåò,òî âîçâpàùàåò "ïî_óìîë÷". Åñëè ñîîòâåò-

                         ñòâèÿ  íå  íàéäåíî,à "ïî_óìîë÷" îïóùåí , òî

                         âîçâpàùàåòñÿ NULL (ïóñòîå çíà÷åíèå)."âûðàæ"

                         ìîæåò áûòü ëþáîãî òèïà; "ñòðîê" äîëæåí áûòü

                         òàêîãî æå òèïà.Âîçâpàùàåìîå çíà÷åíèå âñåãäà

                         èìååò òîò æå òèï äàííûõ,÷òî è 1-ûé"ðåçóëüò".

 

          *    DUMP (âûðàæ[,radix[,íà÷_ïîçèöèÿ[,áèòû]]] )

                         Âûñâå÷èâàåò çíà÷åíèå  âûpàæåíèÿ  "âûðàæ" âî

                         âíóòpåííåì ôîpìàòå.

 

          *    GREATEST ( âûðàæ,âûðàæ,... )

                         Âîçâpàùàåò íàèáîëüøåå èç  ñïèñêà  çíà÷åíèé.

                         Ïåpåä ñpàâíåíèåì âñå âûpàæåíèÿ ïpåîápàçóþò-

                         ñÿ ê òèïó ïåpâîãî âûpàæåíèÿ.

          *    LEAST (âûðàæ,âûðàæ,...)

                         Âîçâpàùàåò íàèìåíüøåå èç  ñïèñêà  çíà÷åíèé.

                         Ïåpåä ñpàâíåíèåì âñå âûpàæåíèÿ ïpåîápàçóþò-

                         ñÿ ê òèïó ïåpâîãî âûpàæåíèÿ.

          *    NVL ( x,âûðàæ )

                         Åñëè õ èìååò ïóñòîå çíà÷åíèå (null),  âîçâ-

                         pàùàåò "âûðàæ";åñëè õ èìååò íåïóñòîå çíà÷å-

                         íèå, òî âîçâpàùàåòñÿ õ. x  è  "âûðàæ" ìîãóò

                         áûòü ëþáîãî òèïà. Òèï âîçâpàùàåìîé âåëè÷èíû

                         òàêîé æå êàê äëÿ õ.

 

          N    VSIZE ( âûðàæ )

                         Âîçâpàùàåò êîëè÷åñòâî áàéòîâ, êîòîpîå çàíè-

                         ìàåò "âûðàæ"  âî  âíóòpåííåì  ïpåäñòàâëåíèè

                         ORACLE.

         

         

                                   

                                     

                                -37-

 

                                

ÏÑÅÂÄÎ-ÑÒÎËÁÖÛ

    ----------------------------------------------------------------

 

         Òèï   Ôóíêöèÿ   Ðåçóëüòàò (âîçâpàùàåìîå çíà÷åíèå)

         -----------------------------------------------------------

 

          N    LEVEL     Âîçâpàùàåò 1  äëÿ  êîpíÿ, 2  äëÿ  äî÷åpíåãî

                         ópoâíÿ êîpíÿ, è.ò.ä. Èñïîëüçóåòñÿ â êîìàíäå

                         SELECT ... CONNECT BY

 

          -    NULL      Ïóñòîå çíà÷åíèå.

 

          R    ROWID     Âîçâpàùàåò  èäåíòèôèêàòîp ñòpîêè. Èñïîëüçó-

                         éòå  èäåíòèôèêàòîp ñòpîêè â êîìàíäàõ UPDATE

                         ... WHERE è SELECT ... FOR UPDATE äëÿ  óâå-

                         påííîñòè â òîì, ÷òî êîìàíäà áóäåò êîppåêòè-

                         pîâàòü òpåáóåìóþ ñòpîêó, à íå äpóãèå.

 

          N    ROWNUM    Âîçâpàùàåò ÷èñëî, óêàçûâàþùåå  ïîñëåäîâàòå-

                         ëüíîñòü,  â  êîòîpîé ñòpîêà áûëà âûápàíà èç

                         òàáëèöû  èëè  ìíîæåñòâà  ñâÿçàííûõ  òàáëèö.

                         Ïåpâàÿ  âûápàííàÿ  ñòpîêà  èìååò  ROWNUM 1,

                         âòîpàÿ 2, è  ò. ä.

                         ROWNUM â îñíîâíîì èñïîëüçóåòñÿ äëÿ  îãpàíè-

                         ÷åíèÿ ÷èñëà ñòpîê,âîçâpàùàåìûõ â påçóëüòàòå

                         çàïpîñà ( íàïpèìåp, ... WHERE ROWNUM < 5 ).

                         ROWNUM  òàêæå  ìîæåò  áûòü èñïîëüçîâàíà äëÿ

                         íàçíà÷åíèÿ óíèêàëüíûõ çíà÷åíèé êàæäîé ñòpî-

                         êå â òàáëèöå ( íàïpèìåp,   UPDATE table SET

                         column = ROWNUM ).

 

          D    SYSDATE   Òåêóùàÿ äàòà è âpåìÿ.

 

          N    UID       ×èñëî,èäåíòèôèöèpóþùåå äàííîãî ïîëüçîâàòåëÿ

                         ( íà  êàæäîãî  ïîëüçîâàòåëÿ ïpèõîäèòñÿ îäèí

                         èäåíòèôèêàòîp ).

 

          C    USER      Èìÿ òåêóùåãî ïîëüçîâàòåëÿ.

         

          

                                      

                                -38-

 

ÎÁÇÎÐ ÑËÎÂÀÐß ÄÀÍÍÛÕ

    ----------------------------------------------------------------

 

          Ñëîâàðü äàííûõ ñîäåpæèò èíôîpìàöèþ îá  îïpåäåëåíèÿõ â áàçå

          äàííûõ . Ïîëüçîâàòåëü èìååò äîñòóï ê ýòîé èíôîpìàöèè ñ ïî-

          ìîùüþ pàçëè÷íûõ îáçîpîâ ( ýêpàííûõ  ôîpì ïpîñìîòpà ) ýòîãî

          ñëîâàpÿ. Èñïîëüçóéòå èìåíà ýòèõ îáçîpîâ â êîìàíäå SELECT ,

          åñëè æåëàåòå èìåòü èíôîpìàöèþ î ñîäåpæèìîì ñëîâàpÿ.

 

 

    Îáçîp                  Îïèñàíèå

    ----------------------------------------------------------------

 

    AUDIT_ACTIONS          Êîäû, îïpåäåëÿþùèå äåéñòâèÿ ïpîöåññà ñëå-

                           æåíèÿ è èõ îïèñàíèÿ.

 

    AUDIT_ACCESS           Èíôîpìàöèÿ ïpîöåññà ñëåæåíèÿ ( âûõîä  êî-

                           ìàíäû ORACLE AUDIT ) çà äîñòóïîì ê òàáëè-

                           öå ïîëüçîâàòåëÿ ORACLE.Äëÿ àäìèíèñòpàòîpà

                           áàçû (DBA)  îòíîñèòñÿ  êî  âñåì  òàáëèöàì

                           ïîëüçîâàòåëÿ.

 

    AUDIT_CONNECT          Èíôîpìàöèÿ ïpîöåññà ñëåæåíèÿ, îòíîñÿùàÿñÿ

                           ê ñåàíñàì pàáîòû ïîëüçîâàòåëÿ.

                           Äëÿ àäìèíèñòpàòîpà áàçû (DBA)   îòíîñèòñÿ

                           êî âñåì ïîëüçîâàòåëÿì.

 

    AUDIT_DBA              Èíôîpìàöèÿ ïpîöåññà ñëåæåíèÿ, îòíîñÿùàÿñÿ

                           òîëüêî ê  îïåpàöèÿì  àäìèíèñòpàòîpà  áàçû

                           (DBA).

 

    AUDITXISTS           Èíôîpìàöèÿ ïpîöåññà ñëåæåíèÿ çà äîñòóïàìè

                           ê  òàáëèöå,   êîòîpûå  áûëè  íåóäà÷íû  ïî

                           óñëîâèþ "does not exist" (íå ñóùåñòâóåò).

                           Îòíîñèòñÿ  òîëüêî  ê  àäìèíèñòpàòîpó áàçû

                           (DBA).

 

    AUDIT_TRAIL            Âûõîä  ïpîöåññà  ñëåæåíèÿ, îòíîñÿùåãîñÿ ê

                           ïîëüçîâàòåëþ.   Äëÿ  àäìèíèñòpàòîpà  áàçû

                           (DBA) îòíîñèòñÿ êî âñåì ïîëüçîâàòåëÿì.

 

    CATALOG                Òàáëèöû, îáçîpû (ýêpàííûå ôîpìû)  è êëàñ-

                           òåpû äîñòóïíûå ïîëüçîâàòåëþ,  çà èñêëþ÷å-

                           íèåì ñàìîãî ñëîâàpÿ áàçû äàííûõ.

 

    CLUSTERS               Êëàñòåpû ïîëüçîâàòåëÿ.

 

    CLUSTERCOLUMNS         Ñòîëáöû â êëàñòåpàõ ïîëüçîâàòåëÿ.

 

    COL                    Ñòîëáöû â òàáëèöàõ ïîëüçîâàòåëÿ.

                                     

    

                                     

                                -39-

                                     

                                     

                                      

    DBLINKS                Ñâÿçè ñ áàçîé äàííûõ, äîñòóïíûå ïîëüçîâà-

                           òåëþ.

 

    DEFAULT_AUDIT          Ïàpàìåòpû  ïpîöåññà  ñëåæåíèÿ  äëÿ  âíîâü

                           ñîçäàâàåìûõ òàáëèö.

 

    DTAB                   Òàáëèöû è ýêðàííûå ôîpìû â ñëîâàpå äàííûõ.

 

    EXTENTS                 Ñòpóêòópà äàííûõ ýêñòåíòîâ âíóòpè òàáëèö.

 

    INDEXES                 Èíäåêñàöèÿ  ïîëüçîâàòåëÿ   è  èíäåêñàöèÿ

                            òàáëèö, ñîçäàâàåìûõ ïîëüçîâàòåëåì.

 

    PARTITIONS              Ôàéëîâàÿ ñòpóêòópà ôàéëîâ, íàõîäÿùèõñÿ â

                            pàçäåëå ( òîëüêî äëÿ àäìèíèñòpàòîpà ).

 

    PRIVATESYN              Ñèíîíèìû ïîëüçîâàòåëÿ.

 

    PUBLICSYN               PUBLIC (îáùèå) ñèíîíèìû.

 

    SESSION                 Ïîêàçûâàåò påãèñòàöèþ ïîëüçîâàòåëÿ (åñëè

                            ñëåæåíèå çà påãèñòpàöèåé óñòàíîâëåíî àä-

                            ìèíèñòpàòîpîì áàçû ).

 

    SPACES                  Îïpåäåëåíèå ïpîñòpàíñòâà   äëÿ  ñîçäàíèÿ

                            òàáëèö è êëàñòåpîâ.

 

    STORAGE                 Ðàñïpåäåëåíèå ïàìÿòè äëÿ äàííûõ è èíäåê-

                            ñîâ ïîëüçîâàòåëüñêîé òàáëèöû.

         

    SYNONYMS                Ñèíîíèìû  ïîëüçîâàòåëÿ  è PUBLIC (îáùèå)

                            ñèíîíèìû.

 

    SYSCATALOG              Òàáëèöû, ýêðàííûå ôîpìû è êëàñòåpû, äî-

                            ñòóïíûå ïîëüçîâàòåëþ.

 

    SYSCOLUMNS              Ñòîëáöû â òàáëèöå è ýêðàííûå ôîðìû, äîñ-

                            òóïíûå ïîëüçîâàòåëþ.

 

    SYSDBLINKS              Ñâÿçè â áàçå äàííûõ â ñèñòåìå(òîëüêî äëÿ

                            àäìèíèñòpàòîpà áàçû äàííûõ ).

 

    SYSEXTENTS              Ñòpóêòópà äàííûõ òàáëèö â ñèñòåìå (òîëü-

                            êî äëÿ àäìèíèñòpàòîpà áàçû äàííûõ).

 

    SYSINDEXES              Èíäåêñû, ñîîòâåòñòâóþùèå ñòîëáöû ,îïöèè,

                            ïîëüçîâàòåëü, ñîçäàâøèé òàáëèöó è  ïàpà-

                            ìåòpû.

 

    SYSPROGS                Ñïèñîê  ìîäóëåé  ïîëüçîâàòåëÿ , íå èñïî-

                            ëüçóåìûõ â äàííûé ìîìåíò.

 

    SYSSESSIONS             Âûñâå÷èâàíèå âñåõ påãèñòpàöèé ïîëüçîâàòå-

                            ëÿ ( åñëè êîíòpîëü påãèñòpàöèé çàäàí  àä-

                            ìèíèñòpàòîpîì áàçû ).

     

                                     

                                     

                                -40-

                                     

                                     

                                     

                                      

    SYSSTORAGE              Îáùåå êîëè÷åñòâî ïàìÿòè , çàíèìàåìîå áà-

                            çîé  äàííûõ ( òîëüêî äëÿ  àäìèíèñòpàòîpà

                            áàçû).

 

    SYSTABALLOC             Ðàçìåùåíèå äàííûõ  è  èíäåêñîâ  äëÿ âñåõ

                            òàáëèö (òîëüêî äëÿ àäìèíèñòpàòîpà áàçû).

 

    SYSTABAUTH              Ñïpàâî÷íèê , îïèñûâàþùèé pàçpåøåíèå äîñ-

                            òóïà, ïpåäîñòàâëåííîå ïîëüçîâàòåëåì  èëè

                            ïîëüçîâàòåëþ.

 

    SYSTEM_AUDIT            Èíôîpìàöèÿ  îá  èñïîëüçîâàíèè  ñèñòåìíûõ

                            påñópñîâ, êîòîpóþ ORACLE ôîpìèpóåò ïîñëå

                            èçäàíèÿ  êîìàíäû AUDIT (òîëüêî äëÿ àäìè-

                            íèñòpàòîpà áàçû ).

 

    SYSUSERAUTH             Ñïèñîê ïîëüçîâàòåëåé ORACLE (òîëüêî  äëÿ

                            àäìèíèñòpàòîpà áàçû ).

 

    TAB                     Òàáëèöû, ýêpàííûå ôîpìû è êëàñòåpû, ïpè-

                            íàäëåæàùèå ïîëüçîâàòåëþ.

 

    TABALLOC                Ðàçìåùåíèå äàííûõ  è  èíäåêñîâ  äëÿ âñåõ

                            òàáëèö ïîëüçîâàòåëÿ.

 

    TABLE_AUDIT             Ïàpàìåòpû AUDIT, îòíîñÿùèåñÿ  ê òàáëèöàì

                            ïîëüçîâàòåëÿ .  Äëÿ àäìèíèñòpàòîpà  áàçû

                            äàííûõ ïàpàìåòpû AUDIT îòíîñÿòñÿ êî âñåì

                            òàáëèöàì.

 

    VIEWS                   Òåêñò çàïpîñà â êîìàíäå CREATE VIEW ,êî-

                            òîpàÿ ñîçäàåò  ëþáóþ  ýêpàííóþ  ôîpìó  â

                            áàçå  äàííûõ.

     

                                     

                                -41-

                                   

 

ÏÀÐÀÌÅÒÐÛ È ÏÎÄÑÒÀÂËßÅÌÛÅ ÏÅÐÅÌÅÍÍÛÅ

    ----------------------------------------------------------------

 

         Êîìàíäíûé ôàéë ìîæåò ñîäåðæàòü ïàðàìåòðû, êîòîðûå ïðåäñòàâ-

         ëÿþò ñîáîé îáîçíà÷åíèå âåëè÷èí, ïîäñòàâëÿåìûõ âî âðåìÿ  âû-

         ïîëíåíèÿ ôàéëà. Êàæäûé ïàðàìåòð ñîñòîèò èç àìïåðñàíäà ('&')

         çà êîòîðûì ñëåäóåò ÷èñëî, íàïð., '&1'. Åñëè  ïàðàìåòð ïðåä-

         ñòàâëÿåò  ñîáîé ñèìâîëüíîå  çíà÷åíèå èëè äàòó, òî îí äîëæåí

         áûòü çàêëþ÷åí â àïîñòðîôû, êàê åñëè áû îí áûë êîíñòàíòîé:

        

                  SELECT * FROM EMP WHERE JOB = 'CLERK'; (êîíñòàíòà)

        

                  SELECT * FROM EMP WHERE JOB = '&1';     (ïàðàìåòð)

        

         Ââîäèòå çíà÷åíèÿ ïàðàìåòðîâ êàê àðãóìåíòû êîìàíäû START ïðè

         çàïóñêå êîìàíäíîãî ôàéëà.Ïåðâûé àðãóìåíò ïîñëå èìåíè êîìàí-

         äíîãî ôàéëà ïðåäñòàâëÿåò ñîáîé ïåðâûé ïàðàìåòð,âòîðîé àðãó-

         ìåíò ïðåäñòàâëÿåò ñîáîé âòîðîé ïàðàìåòð è.ò.ä., íàïð.,:

        

                  SQL>START JOBS CLERK;

                                 

 

    ÏÎÄÑÒÀÂËßÅÌÛÅ ÏÅÐÅÌÅÍÍÛÅ

    ----------------------------------------------------------------

 

         Ïîäñòàâëÿåìàÿ ïåðåìåííàÿ îáîçíà÷àåòñÿ  èäåíòèôèêàòîðîì  ïå-

         ðåìåííîé ïîëüçîâàòåëÿ ñ ïðåäøåñòâóþùèìè àìïåðñàíäàìè, îäíèì

         èëè äâóìÿ.Êîãäà SQL*PLUS âñòðå÷àåò ïîäñòàâëÿåìóþ ïåðåìåííóþ

         â êîìàíäå, òî âûïîëíÿåò åå ñ ó÷åòîì çàäàííîãî çíà÷åíèÿ.Íàï-

         ðèìåð, åñëè ïåðåìåííàÿ TABNAME èìååò çíà÷åíèå 'EMP', òî êî-

         ìàíäà:

    

                  SELECT * FROM &TABNAME;

        

         áóäåò âûïîëíåíà êàê:

        

                  SELECT * FROM EMP;

        

         Êîãäà SQL*PLUS âñòðå÷àåò ïîäñòàâëÿåìóþ ïåðåìåííóþ, çíà÷åíèå

         êîòîðîé íå îïðåäåëåíî, îí äàåò ïîäñêàçêó äëÿ ââîäà çíà÷åíèÿ

         ñ êëàâèàòóðû. Ýòî óäîáíûé ñïîñîá ïîëó÷åíèÿ äèíàìè÷åñêîé èí-

         ôîðìàöèè  îò  ïîëüçîâàòåëÿ  âî âðåìÿ  âûïîëíåíèÿ êîìàíäíîãî

         ôàéëà. Íàïðèìåð, åñëè ïåðåìåííàÿ GIVENNAME íå îïðåäåëåíà, è

         â êîìàíäíîì ôàéëå èñïîëüçóåòñÿ ñëåäóþùàÿ êîìàíäà:

        

                  SELECT * FROM EMP WHERE ENAME = '&GIVENNAME';

        

         òî SQL*PLUS âûâåäåò ïîäñêàçêó:

        

                  Enter value for given name: .

        

         Ïàðàìåòðû è  ïîäñòàâëÿåìûå  ïåðåìåííûå ìîãóò èñïîëüçîâàòüñÿ

         âåçäå â êîìàíäàõ SQL*PLUS è SQL.  Çàìåòèì,  ÷òî äðóãèå ïðî-

         äóêòû ORACLE ìîãóò èñïîëüçîâàòü äðóãèå ñîãëàøåíèÿ äëÿ ïîäñ-

         òàíîâîê â SQL êîìàíäàõ.

        

        

                                -42-

        

                                   

                                      

                                     

         SQL*Plus  îòîáðàæàåò ïîäñêàçêó íà ýêðàíå âàøåãî òåðìèíàëà è

         ÷èòàåò âàø îòâåò ñ êëàâèàòóðû , äàæå åñëè òåðìèíàëüíûé ââîä

         èëè âûâîä ïåðåíàçíà÷åí ê ôàéëó .  Åñëè òåðìèíàë íå äîñòóïåí

         (íàïðèìåð, åñëè êîìàíäíûé ôàéë âûïîëíÿåòñÿ â ïàêåòíîì ðåæè-

          ìå), èñïîëüçóåòñÿ ôàéë ïåðåíàçíà÷åíèÿ.

         Åñëè óêàçàòåëü íà ïåðåìåííóþ ïîäñòàíîâêè äîëæåí ïðîäîëæàòü-

         ñÿ ñèìâîëîì , êîòîðûé  äîëæåí èíòåðïðåòèðîâàòüñÿ  êàê ÷àñòü

         èìåíè ïåðåìåííîé , íåîáõîäèìî èñïîëüçîâàòü òî÷êó(.) äëÿ îò-

         äåëåíèÿ ïåðåìåííîé îò ïîñëåäóþùåãî ñèìâîëà:

        

                  DEFINE E=123

                  SELECT * FROM EMP WHERE EMPNO='&E.0';

                                      

         áóäåò èíòåðïðåòèðîâàíî êàê:

                                     

                  SELECT * FROM EMP WHERE EMPNO='1230';

                                     

         Åñëè ñèìâîë, ñëåäóþùèé çà èìåíåì ïîäñòàâëÿåìîé ïåðåìåííîé ,

         ÿâëÿåòñÿ òî÷êîé òî, íåîáõîäèìî íàïèñàòü äâå òî÷êè .  Ïåðâàÿ

         çàâåðøàåò èìÿ ïåðåìåííîé ,  à  âòîðàÿ èíòåðïðåòèðóåòñÿ  êàê

         îáû÷íûé ñèìâîë.

                                  

                  DEFINE P =94805

                  SELECT * FROM INVENTORY WHERE PARTNO='&P..0C';

        

         áóäåò èíòåðïðåòèðîâàíî êàê:

        

                  SELECT * FROM INVENTORY WHERE PARTNO='94805.0C';

 

    Îäèíî÷íûé è Äâîéíîé Àìïåðñàíäû : & è &&

    ----------------------------------------------------------------

 

         Åñëè âû èñïîëüçóåòå ïîäñòàâëÿåìóþ ïåðåìåííóþ ñ îäíèì àìïåð-

         ñàíäîì, SQL*Plus íå îïðåäåëÿåò ïåðåìåííóþ ïîñëå çàïðîñà âà-

         øåãî çíà÷åíèÿ.Òî åñòü, åñëè SQL*Plus âïîñëåäñòâèè âûïîëíÿåò

         òàêóþ æå êîìàíäó ( èëè ïîäîáíóþ åé , ñîäåðæàùóþ òó æå ñàìóþ

         ïåðåìåííóþ  äëÿ ïîäñòàíîâêè ) , îí áóäåò ñíîâà  çàïðàøèâàòü

         çíà÷åíèÿ ïåðåìåííûõ.

        

         Åñëè âû èñïîëüçóåòå  ïîäñòàâëÿåìóþ  ïåðåìåííóþ  ñ äâóìÿ àì-

         ïåðñàíäàìè, SQL*Plus   âûïîëíÿåò îïðåäåëåíèå ïåðåìåííîé ïðè

         âûäà÷å ïðèãëàøåíèÿ äëÿ  ââîäà çíà÷åíèÿ . Òàê , åñëè ïîçäíåå

         SQL*Plus âûïîëíÿåò òàêóþ  æå êîìàíäó , îí íå áóäåò çàïðàøè-

         âàòü âàñ î ââîäå íîâîãî çíà÷åíèÿ.

        

         Íàïðèìåð, êîìàíäíûé ôàéë STATS äëÿ ïîäñ÷åòà  ñòàòèñòè÷åñêèõ

         äàííûõ  ïîäãðóïï  â  ÷èñëîâûõ  ñòîëáöàõ  ìîã  áû  ñîäåðæàòü

         ñëåäóþùåå:

               

                  SELECT    &&GROUP_COL, MAX(&&NUMBER_COL) MAXIMUM,

                          MIN(&&NUMBER_COL) MINIMUM,

                          SUM(&&NUMBER_COL) TOTAL,

                          AVG(&&NUMBER_COL) AVERAGE

                  FROM      &TABLE

                  GROUP BY  &&GROUP_COL;

        

        

        

                                -43-

        

        

        

        

         Êîãäà   âû  çàïóñêàåòå  ýòîò  êîìàíäíûé  ôàéë ( äî òîãî êàê

         SQL*Plus âûïîëíèò îïèñàííóþ äàííûì ôàéëîì ïðîöåäóðó)âàì áó-

         äåò äàíî ïðèãëàøåíèå íà ââîä çíà÷åíèÿ ïî èìåíè:

        

                  Enter value for GROUP_COL: PROJNO

                  Enter value for NUMBER_COL: SAL

                  Enter value for TABLE: EMP

        

                  PROJNO MAXIMUM MINIMUM  TOTAL  AVERAGE

                  ------ ------- ------- ------- -------

                   101    3910      920  28813.8 2881.38

                   102    5500      800   13050  1864.29

                   103    1600    1312.5   4225  1408.33

        

         Åñëè âû  âíîâü äåëàåòå çàïðîñ âî âðåìÿ òåêóùåãî ñåàíñà, âàì

         áóäåò äàíî ïðèãëàøåíèå äëÿ TABLE (ò.ê. åå èìÿ èìååò îäèíî÷-

         íûé àìïåðñàíä),íî íå äëÿ GROUP_COL èëè NUMBER_COL (ò. ê. èõ

         èìåíà ñîääåðæàò äâîéíûå àìïåðñàíäû).

 

 

    Îãðàíè÷åíèÿ

    ----------------------------------------------------------------

 

         Ïîäñòàíîâî÷íûå ïåðåìåííûå íå ìîãóò áûòü èñïîëüçîâàíû â ñëå-

         äóþùèõ êîíòåêñòàõ:

        

         *      Âûðàæåíèÿ

        

         *      Êîìàíäû ðåäàêòèðîâàíèÿ áóôåðà: APPEND, CHANGE, DEL ,

                INPUT, LIST.

        

         *      Íåêîòîðûå äðóãèå êîìàíäû, ãäå ïîäñòàíîâêà  íå  èìååò

                ñìûñëà, òàêèå êàê HELP,REMARK è TIMING.

        

 

    SET - ôðàçû äëÿ óïðàâëåíèÿ ïîäñòàíîâêîé

    ----------------------------------------------------------------

 

         *      SET SCAN ðàçðåøàåò èëè çàïðåùàåò çàìåíó.

        

         *      SET DEFINE  îïðåäåëÿåò   èäåíòèôèêàòîð   ïîäñòàíîâêè

                (îáû÷íî '&').

        

         *      SET VERIFY ON çàñòàâëÿåò  SQL*Plus îòîáðàçèòü êàæäóþ

                ñòðîêó êîìàíäíîãî ôàéëà äî è ïîñëå ïîäñòàíîâêè.

        

         *      SET DCLSEP çàäàåò ñèìâîë , êîòîðûé îòäåëÿåò èìÿ ïîä-

                ñòàíîâî÷íîé ïåðåìåííîé  îò ñèìâîëîâ, êîòîðûå ñëåäóþò

                íåïîñðåäñòâåííî çà ïåðåìåííîé.

        

         

                           

                                -44-

        

ÍÀÈÁÎËÅÅ ÂÀÆÍÛÅ ÔÐÀÇÛ È ÏÎÍßÒÈß

    ----------------------------------------------------------------

 

    DUMMY Table ( ïóñòàÿ òàáëèöà )

    ----------------------------------------------------------------

 

         Îïèñàíèå: Íåîáõîäèìîé  äëÿ êîìàíäû  SELECT  ôðàçîé ÿâëÿåòñÿ

         FROM . Îäíàêî , èíîãäà  îíà ïîëåçíà  äëÿ îáðàùåíèÿ  êîìàíäû

         SELECT, ê ïñåâäî-ñòîëáöó èëè âûðàæåíèþ , íå ñâÿçàííûì ñ êà-

         êîé-ëèáî òàáëèöåé .  ýòîì ñëó÷àå äëÿ óäîâëåòâîðåíèÿ òðåáî-

         âàíèé ôðàçû  FROM  îáû÷íî  èñïîëüçóåòñÿ  ôðàçà  FROM DUMMY.

         D U M M Y  ä î ë æ í à  á û ò ü  ô à ê ò è ÷ å ñ ê è  ñ ó -

         ù å ñ ò â ó þ ù å é  ò à á ë è ö å é . Îáû÷íî îíà  çàäàåòñÿ

         ñ îäíèì ñòîëáöîì è îäíîé ñòðîêîé  .  Èìÿ è îïèñàíèå ñòîëáöà

         íå èìåþò çíà÷åíèÿ.

        

         Ïðèìåðû: ×òîáû îòîáðàçèòü òåêóùóþ äàòó, ââåäèòå:

        

                  SQL> SELECT SYSDATE FROM DUMMY;

        

        

                                -45-

        

        

        

 

    Ôðàçà FROM

    ----------------------------------------------------------------

 

         DELETE FROM[èä_ïîëüç.]òàáëèöà...;

         SELECT ...

         FROM[èä_ïîëüç.]òàáë.[ïñåâäîíèì],[èä_ïîëüç.]

             òàáë[@ñâÿçü][ïñåâäîíèì],............;

         -----------------------------------------------------------

        

         Îïèñàíèå: FROM - íåîáõîäèìàÿ  ôðàçà êîìàíä DELETE è SELECT.

         Îíà èäåíòèôèöèðóåò òàáëèöó, èç êîòîðîé óäàëÿþòñÿ ñòðîêè,èëè

         òàáëèöû, èç êîòîðûõ âûáèðàþòñÿ ñòðîêè.

        

         Åñëè òàáëèöåé âëàäååò äðóãîé ïîëüçîâàòåëü, èìÿ òàáëèöû äîë-

         æíî áûòü  óòî÷íåíî ñ  ïîìîùüþ  èäåíòèôèêàòîðà  ïîëüçîâàòåëÿ

         ïðèíàäëåæàùåãî âëàäåëüöó. Èäåíòèôèêàòîð  ïîëüçîâàòåëÿ è èìÿ

         òàáëèöû ðàçäåëÿþòñÿ ñ ïîìîùüþ òî÷êè(.) .

        

         Ïñåâäîíèì èñïîëüçóåòñÿ äëÿ äîñòóïà ê îäíîé è òîé æå òàáëèöå,

         óïîìèíàåìîé áîëåå îäíîãî ðàçà âî ôðàçå FROM èëè â ïîäçàïðî-

         ñå.

        

         Åñëè òàáëèöà íàõîäèòñÿ â óäàëåííîé áàçå äàííûõ, äîëæåí áûòü

         îïèñàí óêàçàòåëü áàçû äàííûõ ê ýòîé áàçå. " @ñâÿçü"  îïèñû-

         âàåò ëèíèþ ñâÿçè. Åñëè ââîäèòñÿ "ñâÿçü" è íå çàäàåòñÿ ïîëü-

         çîâàòåëü, çàïðîñ ïðîâåðÿåòñÿ äëÿ òàáëèöû, ïðèíàäëåæàùåé ïî-

         ëüçîâàòåëþ, óêàçàííîìó â îïèñàíèè êàíàëà ñâÿçè áàçû  äàííûõ

        

         Êîìàíäû COPY è REVOKE òàêæå èìåþò ôðàçû FROM , ñëóæàùèå äëÿ

         äðóãèõ ôóíêöèé. Ýòî îïèñàíèå ê íèì íå îòíîñèòñÿ.

        

         Ïðèìåðû: ×òîáû  óäàëèòü  ñòðîêó  ñî  çíà÷åíèåì 50 â ñòîëáöå

         DEPTNO èç òàáëèöû ñ èìåíåì EMP, ââåäèòå:

        

                  SQL> DELETE FROM EMP WHERE DEPTNO=50;

        

         ×òîáû âûáðàòü  ñòðîêè ñî çíà÷åíèåì  40  â ñòîëáöå DEPTNO èç

         òàáëèöû ñ èìåíåì EMP, ââåäèòå:

        

                  SQL> SELECT * FROM EMP WHERE DEPTNO=40;

        

         Äëÿ âûäåëåíèÿ òàêèõ ñòðîê èç äâóõ òàáëèö , íàçâàííûõ  EMP è

         EMP2, ââåäèòå:

                

                  SQL> SELECT * FROM EMP, EMP2

                  WHERE EMP.EMPNO=EMP2.EMPNO

                  AND DEPTNO=40;

        

         Åñëè  EMP2 ïðèíàäëåæèò äðóãîìó ïîëüçîâàòåëþ ñ èäåíòèôèêàòî-

         ðîì BEN, ââåäèòå:

        

                  SQL> SELECT * FROM EMP, BEN.EMP2

                  WHERE EMP.EMPNO=EMP2.EMPNO

                  WHERE DEPTNO=40;

        

        

        

                                -46-

        

                                   

        

 

    Ôðàçû GROUP BY è HAVING

    ----------------------------------------------------------------

 

         SELECT ...

          GROUP BY âûð,âûð,âûð ... HAVING óñëîâèå

          ...;

         -----------------------------------------------------------

        

         Ñâÿçàííûå òåìû: SELECT, Ãðóïïîâûå Ôóíêöèè.

        

         Îïèñàíèå: Èñïîëüçîâàíèå GROUP BY çàñòàâëÿåò SELECT  îòîáðà-

         çèòü îäíó ñòðîêó äëÿ êàæäîé ãðóïïû âûáðàííûõ ñòðîê ñ îäèíà-

         êîâûìè çíà÷åíèÿìè.Âûáîð òàêèõ ãðóïï ñòðîê ìîæåò âûïîëíÿòüñÿ

         èç  îäíîãî èëè áîëåå óêàçàííûõ ñòîëáöîâ èëè âûðàæåíèé.

 

         Êàæäîå "â û ð" â ïðåäëîæåíèè SELECT äîëæíî èìåòü îäèíàêîâîå

         çíà÷åíèå äëÿ êàæäîãî ýëåìåíòà ãðóïïû. Ò.å., îíî äîëæíî áûòü

         èëè êîíñòàíòîé,èëè ãðóïïîâîé ôóíêöèåé,òàêîé êàê MAX,èëè îä-

         íèì èç ñòîëáöîâ GROUP BY, èëè âûðàæåíèåì, ñîñòàâëåííûì èñê-

         ëþ÷èòåëüíî èç òàêèõ ýëåìåíòîâ.

        

         Âûðàæåíèÿ  GROUP BY ìîãóò óêàçûâàòü íà ëþáîé ñòîëáåö â òàá-

         ëèöàõ ôðàçû  FROM  â íå çàâèñèìîñòè îò òîãî, óïîìèíàþòñÿ ëè

         îíè â ñïèñêå SELECT èëè íåò.

        

         ×òîáû óêàçàòü, êàêèå ãðóïïû GROUP BY ðàñïå÷àòûâàòü, èñïîëü-

         çóåòñÿ HAVING.Íåîáõîäèìî îòëè÷àòü åå  îò WHERE, êîòîðàÿ èñ-

         ïîëüçóåòñÿ äëÿ óêàçàíèÿ ñòðîê òàáëèöû  âêëþ÷àåìûõ â ãðóïïû.

        

         GROUP BY è HAVING íóæíî óêàçûâàòü ïîñëå  WHERE è CONNECT BY

         ... START WITH. Åñëè ñïåöèôèöèðóþòñÿ è GROUP BY, è HAVING ,

         òî îíè ìîãóò áûòü çàäàíû â ëþáîì ïîðÿäêå.

        

         Ïðèìåðû: ×òîáû  îòîáðàçèòü  íà  ýêðàíå ìèíèìàëüíûé è ìàêñè-

         ìàëüíûé îêëàä (salary) äëÿ êàæäîãî îòäåëà (departament)  èç

         EMP, ââåäèòå:

        

                  SQL> SELECT DEPTNO, MIN(SAL), MAX(SAL) FROM EMP

                    2  GROUP BY DEPTNO;

        

         ×òîáû èñïîëüçîâàòü ýòîò çàïðîñ òîëüêî äëÿ êîììèâîÿæåðîâ(sa-

         lesman), ââåäèòå:

        

                  SQL> SELECT DEPTNO, MIN(SAL), MAX(SAL) FROM EMP

                    2  WHERE JOB='SALESMAN'

                    3  GROUP BY DEPTNO;

        

         ×òîáû ÷åðåç çàïðîñ îòîáðàçèòü òîëüêî òå îòäåëû, äëÿ êîòîðûõ

         MIN(SAL) (ìèíèìàëüíûé îêëàä) íèæå 750$, ââåäèòå:

        

                  SQL> SELECT DEPTNO, MIN(SAL), MAX(SAL) FROM EMP

                    2  GROUP BY DEPTNO HAVING MIN(SAL)<750;

        

        

        

                                -47-

                                   

        

 

    Ñîåäèíåíèÿ â Çàïðîñàõ

    ---------------------------------------------------------------

 

         SELECT ... FROM òàáë,òàáë,...

          WHERE óñëîâèå...;

         ----------------------------------------------------------

         Ñâÿçàííàÿ òåìà: SELECT.

        

         Îïèñàíèå: Êîãäà ñòðîêè âûáèðàþòñÿ èç äâóõ èëè áîëåå òàáëèö,

         äëÿ èõ ñîåäèíåíèÿ  â  ðàçíûõ  òàáëèöàõ ìîæåò  èñïîëüçîâàòü-

         ñÿ ôðàçà WHERE. Ëþáîå ëîãè÷åñêîå âûðàæåíèå  âî ôðàçå WHERE,

         ñðàâíèâàþùåå ïîëÿ â ðàçëè÷íûõ òàáëèöàõ,îïðåäåëÿåò  ñîåäèíå-

         íèå ; ñîåäèíÿþòñÿ ñòðîêè, äëÿ êîòîðûõ âûðàæåíèå èñòèííî.

        

         Îïåðàòîð  '(+)' ìîæíî èñïîëüçîâàòü ñ ëþáîé ñòîðîíû ëîãè÷åñ-

         êîãî âûðàæåíèÿ äëÿ óêàçàíèÿ âíåøíåãî ñîåäèíåíèÿ, ïðè êîòîð-

         îì êàæäàÿ ñòðîêà îäíîé òàáëèöû ñîåäèíÿåòñÿ ïî  ìåíüøåé ìåðå

         ñ îäíîé ñòðîêîé äðóãîé  òàáëèöû  (óêàçàííîé ñ '(+)').  Åñëè

         îòñóòñòâóåò ñòðîêà äëÿ ñîåäèíåíèÿ, òî, ïî ïðàâèëàì ñîåäèíå-

         íèÿ , îïðåäåëåííûì ñ ïîìîùüþ ëîãè÷åñêîãî âûðàæåíèÿ , ñòðîêà

         ñîåäèíÿåòñÿ ñ ìíèìîé ñòðîêîé , â  êîòîðîé âñå ïîëÿ ñîäåðæàò

         ïóñòûå çíà÷åíèÿ.

        

         Ïðèìåðû: Ï ð î ñ ò î å ñ î å ä è í å í è å: ×òîáû  äëÿ êàæ-

         äîãî ñëóæàùåãî îòîáðàçèòü åãî èìÿ,îêëàä(SAL),äîëæíîñòü(JOB),

         è íàçâàíèå îòäåëà(DNAME), ãäå íîìåð îòäåëà íå áîëüøå 30,

         ââåäèòå:

        

                  SQL> SELECT     ENAME, SAL, JOB, DNAME

                    2  FROM       EMP, DEPT

                    3  WHERE      EMP, DEPTNO<=30 AND EMP.DEPTNO=

                    4             DEPT.DEPTNO;

        

         Òàê  êàê èíôîðìàöèÿ äëÿ îòîáðàæåíèÿ õðàíèòñÿ â äâóõ ðàçëè÷-

         íûõ òàáëèöàõ , òðåáóåòñÿ ñîåäèíåíèå . Ñòðîêè èç äâóõ òàáëèö

         ñîåäèíÿþòñÿ ñîãëàñíî ïðàâèëó EMP.DEPTNO=DEPT.DEPTNO.

        

         Çàìåòèì , ÷òî DEPTNO íå  îáÿçàòåëüíî  äîëæåí áûòü âûáðàí èç

          òàáëèöû . Êðîìå òîãî ôðàçà WHERE ( ñ ëîãè÷åñêèì âûðàæåíèåì

         DEPTNO<=30 )  èñïîëüçóåòñÿ äëÿ âûäåëåíèÿ ñòðîê òî÷íî òàêæå,

         êàê è äëÿ îïèñàíèÿ ñîåäèíåíèÿ.

        

         Â í å ø í å å  ñ î å ä è í å í è å: ×òîáû  îòîáðàçèòü òó æå

         ñàìóþ èíôîðìàöèþ, íî îáåñïå÷èòü âûâîä  íà ýêðàí êàæäîé âûá-

         ðàííîé èç EMP ñòðîêè, äàæå , åñëè  DEPT íå ñîäåðæèò  ñòðîêè

         äëÿ  ñîîòâåòñòâåííîãî  íîìåðà  îòäåëà , íóæíî  èñïîëüçîâàòü

         îïåðàòîð  âíåøíåãî  ñîåäèíåíèÿ  â  DEPT.DEPTNO. Òîãäà, åñëè

         ñòðîêà èç EMP íå  ñîåäèíèòñÿ ñ  êàêîé ëèáî ñòðîêîé èç DEPT,

         îíà áóäåò ñëèâàòüñÿ ñ ìíèìîé ñòðîêîé èç NULL-òàáëèö:

        

                  SQL> SELECT     ENAME, SAL, JOB, DNAME

                    2   FROM       EMP, DEPT

                    3   WHERE      EMP, DEPTNO<=30 AND EMP.DEPTNO=

                    4              DEPT.DEPTNO(+);

        

        

        

                                -48-

        

                                   

        

 

    Îïåðàòîð LIKE

    ----------------------------------------------------------------

  

         SELECT ...

          WHERE ñèìâ LIKE ñèìâ ...;

         -----------------------------------------------------------

        

         Ñâÿçàííàÿ òåìà: Ëîãè÷åñêèå îïåðàòîðû.

 

         Îïèñàíèå: Êîãäà  ôðàçà  WHERE  ïðèìåíÿåòñÿ  äëÿ ñèìâîëüíîãî

         ñòîëáöà , îïåðàòîð  LIKE  ïðåäïî÷òèòåëüíåå èñïîëüçîâàòü äëÿ

         ñðàâíåíèÿ ñèìâîëüíîãî ñòîëáöà ñ øàáëîíîì, íåæåëè ñ ôèêñèðî-

         âàííîé âåëè÷èíîé.

         

         Ñèìâîëüíûé øàáëîí  ìîæåò âêëþ÷àòü  äâà ñïåöèàëüíûõ ñèìâîëà,

         êîòîðûå ìîãóò îòîæäåñòâëÿòü ðàçëè÷íûå  ñèìâîëû  â  ñòîëáöå.

         Ñïåöèàëüíûé ñèìâîë '_'(ñèìâîë ïîä÷åðêèâàíèÿ) ñîïîñòàâëÿåòñÿ

         ñ êàêèì-ëèáî îäèíî÷íûì ñèìâîëîì.Ñïåöèàëüíûé ñèìâîë '%'ñîîò-

         âåòñòâóåò ëþáîé ïîñëåäîâàòåëüíîñòè ñèìâîëîâ,âêëþ÷àÿ íóëåâûå

         ñèìâîëû.

        

         LIKE ìîæåò áûòü èñïîëüçîâàí  â ëþáîì ëîãè÷åñêîì  âûðàæåíèè,

         ñîäåðæàùåì ñèìâîëüíûå çíà÷åíèÿ, à íå òîëüêî äëÿ ôðàçû WHERE

         êîìàíäû SELECT.

        

         Êîãäà îïåðàòîð LIKE  èñïîëüçóåòñÿ äëÿ ïîèñêà ïî øàáëîíó èí-

         äåêñèðîâàííîãî ñòîëáöà, ñêîðîñòíîå  ïðåèìóùåñòâî èíäåêñèðî-

         âàíèÿ  ïîíèæàåòñÿ, åñëè ïåðâûì  ñèìâîëîì â øàáëîíå ÿâëÿåòñÿ

         '_' èëè '%'.Åñëè ïåðâûì ñèìâîëîì â øàáëîíå ÿâëÿåòñÿ îáû÷íûé

         ñèìâîë , ñêîðîñòíîå  ïðåèìóùåñòâî  ðåàëèçóåòñÿ â íàèáîëüøåé

         ñòåïåíè,ò.ê., ORACLE ìîæåò îãðàíè÷èâàòü ñðàâíåíèå ñòðîê,êî-

         òîðûå íà÷èíàþòñÿ çàäàííûì ïåðâûì ñèìâîëîì.

         

         Ïðèìåðû: Ôðàçà  "WHERE ENAME='SMITH%'"  èñòèííà  äëÿ  òàêèõ

         çíà÷åíèé, êàê SMITH,SMITHE,SMITHERS è ò.ä.

        

         Ïðåäëîæåíèå  "...WHERE ENAME='SMITH_'"  èñòèííî  äëÿ  òàêèõ

         çíà÷åíèé, êàê SMITHE,SMITHY,SMITHS è ò.ä., íî íå äëÿ SMITH,

         òàê êàê ñïåöèàëüíûé ñèìâîë  '_'  äîëæåí îòîæäåñòâëÿòüñÿ ïðè

         ñðàâíåíèè ñ îäíèì è òîëüêî îäíèì ñèìâîëîì.


 

                                     

                                     

                                -49-

        

        

         

 

    Ïóñòûå Âåëè÷èíû ( Null Values )

    ----------------------------------------------------------------

 

         Ïîëå â ñòîëáöå ëþáîãî òèïà ìîæåò èìåòü ïóñòîå çíà÷åíèå. Òà-

         êèå  çíà÷åíèÿ  ïðèñâàèâàþòñÿ, êîãäà äåéñòâèòåëüíàÿ âåëè÷èíà

         íåèçâåñòíà èëè, íå èìååò çíà÷åíèÿ. Ïóñòîå çíà÷åíèå â ÷èñëî-

         âîì ñòîëáöå íå ýêâèâàëåíòíî íóëåâîìó.

        

         Ôóíêöèÿ  NVL ïðåîáðàçóåò ïóñòîå çíà÷åíèå ê âåëè÷èíå äðóãîãî

         òèïà. Íàïðèìåð, NVL(COMM,0) âîçâðàùàåò 0,åñëè ÑÎÌÌ ÿâëÿåòñÿ

         ïóñòûì è çíà÷åíèå COMM, åñëè COMM - íå ïóñòàÿ âåëè÷èíà.

        

         Ãðóïïîâûå ôóíêöèè èãíîðèðóþò ïóñòûå çíà÷åíèÿ .  Íàïðèìåð, â

         çàïðîñå, êîòîðûé âûáèðàåò çíà÷åíèÿ 1000, NULL, NULL, NULL è

         2000 äëÿ COMM ,  âåëè÷èíà  AVG(COMM) ðàâíà 1500, ïîòîìó ÷òî

         (1000+2000)/2=1500

        

         Îñòàëüíûå ôóíêöèè  è  âûðàæåíèÿ âîçâðàùàþò ïóñòîå çíà÷åíèå ,

         åñëè  àðãóìåíò  èìååò  ïóñòîå çíà÷åíèå . Íàïðèìåð , çíà÷åíèå

         NULL+1000 ðàâíî NULL,âåëè÷èíà GREATES(NULL,1000) ðàâíà òàê-

         æå NULL.

        

          ëîãè÷åñêèõ ôðàçàõ òåñòèðîâàòü íà  NULL íåîáõîäèìî ñ èñïî-

         çîâàíèåì  âûðàæåíèé  ïîäîáíûõ  COMM IS NULL èëè COMM IS NOT

         NULL. Âûðàæåíèÿ, ïîäîáíûå COMM=NULL, COMM!=NULL, COMM!=1000

         íå áóäóò âîçâðàùàòü ïóñòûå çíà÷åíèÿ.

        

         Ñèìâîëüíûå âåëè÷èíû íóëåâîé äëèíû èíòåðïðåòèðóþòñÿ êàê ïóñ-

         òàÿ âåëè÷èíà.

        

        

        

                                -50-

                                   

        

        

 

    Ôðàçà ORDER BY

    ----------------------------------------------------------------

 

         SELECT ...

          ORDER BY {âûðàæ|N_ïîçèöèè} [ASC]|DESC],.......;

         -----------------------------------------------------------

 

         Ñâÿçàííàÿ òåìà: êîìàíäà SELECT

        

         Îïèñàíèå: îïåðàòîð  ORDER  BY  èñïîëüçóåòñÿ äëÿ îïðåäåëåíèÿ

         ïîðÿäêà, â êîòîðîì ðåçóëüòàòû çàïðîñà áóäóò îòîáðàæàòüñÿ íà

         äèñïëåå.

         

         Êàæäîå "âûðàæ" ÿâëÿåòñÿ âûðàæåíèåì ,  áàçèðóþùåìñÿ íà îäíîì

         èëè áîëåå ñòîëáöàõ â îïåðàòîðå SELECT.  Êàæäûé  "N_ïîçèöèè"

         ÿâëÿåòñÿ ÷èñëîì, èäåíòèôèöèðóþùèì ïîçèöèþ ýëåìåíòà äàííûõ â

         îïåðàòîðå SELECT. Åñëè èñïîëüçóþòñÿ îïåðàòîðû UNION, MINUS,

         INTERSECT, ïîëüçîâàòåëü äîëæåí  óêàçûâàòü  ýëåìåíòû  äàííûõ

         ORDER BY ñ ïîìîùüþ "N_ïîçèöèè".

        

         Ñòðîêè  óïîðÿäî÷èâàþòñÿ  ñ ïîìîùüþ çíà÷åíèÿ èç ïåðâîãî "âû-

         ðàæ" èëè "N_ïîçèöèè" . Ñòðîêè ñ îäíèìè è òåìè æå çíà÷åíèÿìè

         óïîðÿäî÷èâàþòñÿ ñ ïîìîùüþ çíà÷åíèÿ ñëåäóþùåãî ýëåìåíòà (åñ-

         ëè îí óêàçàí) è ò.ä..

        

         ASC èëè DESC çàäàåò ïîðÿäîê âîçðàñòàíèÿ èëè óáûâàíèÿ . Ïóñ-

         òûå çíà÷åíèÿ ïðåäøåñòâóþò âñåì îñòàëüíûì è  â ïîðÿäêå  âîç-

         ðàñòàíèÿ, è â ïîðÿäêå óáûâàíèÿ.

        

         ORDER BY äîëæåí áûòü  óêàçàí  ïîñëå  âñåõ  îñòàëüíûõ  ôðàç,

         èñêëþ÷àÿ FOR UPDATE OF.

        

         Åñëè îïðåäåëåíû è ORDER BY, è DISTINCT , òî ORDER BY íå ìî-

         æåò ññûëàòüñÿ íà ñòîëáöû , êîòîðûå íå óïîìèíàþòñÿ â êîìàíäå

         SELECT.

        

         Åñëè ORDER BY íå óêàçàí, ïîðÿäîê , â êîòîðîì ñòðîêè âûáèðà-

         þòñÿ èç òàáëèöû, íå  îïðåäåëÿåòñÿ  è ìîæåò âàðüèðîâàòüñÿ îò

         îäíîãî çàïðîñà ê äðóãîìó.

        

         Ïðèìåð:  ×òîáû âûáðàòü âñå çàïèñè  î êîììèâîÿæåðàõ èç EMP è

         ñïèñîê èõ ïîðó÷åíèé â íèñõîäÿùåì ïîðÿäêå, ââåäèòå:

        

                  SQL> SELECT * FROM EMP WHERE JOB='SALESMAN'

                    2   ORDER BY COMM DESC;

        

        

        

                                -51-

        

        

                                   

 

    Ïîäçàïðîñû è Âëîæåííûå Çàïðîñû

    ----------------------------------------------------------------

 

         COPY ... USING çàïðîñ;

         CREATE ... AS çàïðîñ;

         DELETE ... WHERE ñòîëáåö=(ïîäçàïðîñ)...;

         INSERT ... çàïðîñ;

         SELECT ... çàïðîñ;

         UPDATE ...

                SET (ñòîëáåö,ñòîëáåö,...)=(ïîäçàïðîñ)

                [WHERE óñëîâèå];

         ... WHERE ñòîëáåö=(ïîäçàïðîñ)...;

         Ñâÿçàííûå òåìû: Êîìàíäà COPY; êîìàíäà CREATE ... AS; êîìàí-

         äà CREATE TABLE;CREAT VIEW; êîìàíäà DELETE; êîìàíäà INSERT;

         êîìàíäà SELECT; êîìàíäà UPDATE.

         

         Îïèñàíèå:  Çàïðîñ  ìîæåò áûòü  èñïîëüçîâàí âî ôðàçå  äðóãîé

         êîìàíäû, òàêîé êàê SELECT èëè UPDATE. Òàêàÿ êîìàíäà  SELECT

         íàçûâàåòñÿ  "ïîäçàïðîñîì" ,  êîãäà îíà çàêëþ÷åíà  â êðóãëûå

         ñêîáêè (íàïðèìåð,â SELECT), è "çàïðîñîì", êîãäà ýòî íå òðå-

         áóåòñÿ ïî ñèíòàêñèñó (íàïðèìåð , â CREATE TABLE èëè INSERT,

         èëè â ñîåäèíåíèè ñ îïåðàòîðîì çàïðîñà). Çäåñü è äàëåå òàêèå

         êîìàíäû áóäóò íàçûâàòüñÿ ïîäçàïðîñîì .  Ñòðîêè , âûáèðàåìûå

         ñ ïîìîùüþ ïîäçàïðîñà, íå îòîáðàæàþòñÿ íà ýêðàíå;âìåñòî ýòî-

         ãî îíè ïîäàþòñÿ â êîìàíäó SQL, âêëþ÷àþùóþ  ïîäçàïðîñ  îäíèì

         èç ñëåäóþùèõ ñïîñîáîâ:

        

         *      Åñëè ïîäçàïðîñ èñïîëüçóåòñÿ ñ ïðàâîé ñòîðîíû  ëîãè÷.

                âûðàæåíèé èëè ñîñòàâíûõ âûðàæåíèé, îí áóäåò  âîçâðà-

                ùàòü îäèíî÷íîå çíà÷åíèå èëè êîëîíêó çíà÷åíèé. Ýòî(è)

                çíà÷åíèå(èÿ)  ñðàâíèâàþòñÿ  ñî  çíà÷åíèåì(ÿìè) ëåâîé

                ñòîðîíû âûðàæåíèÿ ñïîñîáîì, óêàçàííûì ñ ïîìîùüþ îïå-

                ðàòîðà, ñâÿçûâàþùåãî äâå ñòîðîíû.

        

         *      Åñëè ïîäçàïðîñ èñïîëüçóåòñÿ , ÷òîáû óêàçàòü çíà÷åíèÿ

                â  CREATE TABLE, INSERT èëè UPDATE, îí áóäåò âîçâðà-

                ùàòü îäíî çíà÷åíèå äëÿ êàæäîãî ââåäåííîãî èëè îáíîâ-

                ëåííîãî  ñòîëáöà . Ýòî(è)  çíà÷åíèå(èÿ) èñïîëüçóþòñÿ

                äëÿ âñòàâêè èëè îáíîâëåíèÿ çàäàííûõ ñòðîê.

        

         Ôðàçû  ORDER BY è  FOR UPDATE OF  íå  ìîãóò èñïîëüçîâàòñÿ â

         ïîäçàïðîñå

        

         Ê î ð ð å ë ÿ ò è â í û é   ï î ä ç à ï ð î ñ  èñïîëüçóåòñÿ

         òîëüêî â ïðåäëîæåíèè WHERE êîìàíäû SELECT UPDATE èëè êîìàí-

         äû DELETE. Îí óêàçûâàåò íà èìÿ ïñåâäîíèìà äëÿ òàáëèöû , èñ-

         ïîëüçóåìîé êîìàíäîé SELECT,è îïðåäåëÿåòñÿ îäèí ðàç äëÿ êàæ-

         äîé ñòðîêè, ïðîñìàòðèâàåìîé êîìàíäîé SELECT äëÿ âûáîðà.

         

        

        

                                -52-

        

                                   

        

        

         Âíóòðåííèé çàïðîñ ìîæåò óêàçûâàòü íà ñòðîêó èç âíåøíåãî çà-

         ïðîñà. Òàêîå óêàçàíèå ìîæåò ïîÿâëÿòüñÿ è â ïåðå÷íå SELECT è

         /èëè ôðàçå WHERE. Ñòîëáöû äëÿ ÿñíîñòè ìîãóò áûòü  ïðåôèêñè-

         ðîâàíû èìåíåì òàáëèöû. Åñëè òàáëèöû âî âíóòðåííåì   çàïðîñå

         ñîäåðæàò ñòðîêè  ñ  îäèíàêîâûìè èìåíàìè , òî óêàçàòåëü âíå-

         øíåãî  çàïðîñà  äîëæåí  áûòü ïðåôèêñèðîâàí èìåíåì  òàáëèöû.

         Íåîïðåäåëåííûå ñòîëáöû â ïîäçàïðîñå èùóòñÿ â òàáëèöàõ ýòîãî

         çàïðîñà, çàòåì â òàáëèöàõ ñëåäóþùåãî âíåøíåãî çàïðîñà è ò.ä.

        

         Ïðèìåðû: Äëÿ ïîèñêà ñëóæàùèõ, íàõîäÿùèõñÿ â ×èêàãî, êîòîðûå

         èìåþò òàêóþ æå ðàáîòó , êàê Àëëåí , íåîáõîäèìî èñïîëüçîâàòü

         ïîäçàïðîñ , âûáèðàþùèé JOB ( ðàáîòà ) èç ñòðîêè , â êîòîðîé

         ENAME ,  èñïîëüçóåìîå âî ôðàçå WHERE ,  âûäåëÿþùåé ñòðîêè ñ

         îäèíàêîâûì ïàðàìåòðîì JOB, çàäàåòñÿ êàê ALLEN.

                 

                  SQL> SELECT     ENAME, LOC, SAL, JOB

                    2  FROM       EMP, DEPT

                    3  WHERE      LOC='CHICAGO'

                    4             AND JOB IN

                    5                  (SELECT JOB

                    6                   FROM EMP

                    7                   WHERE ENAME ='ALLEN')

                    8  ORDER BY DEPTNO;

        

         Çàìåòèì ,  ÷òî  óñëîâèåì  WHERE ÿâëÿåòñÿ JOB IN... ,  à  íå

         JOB=... , òàê êàê  ïîäçàïðîñ âîçâðàùàåò íå  çíà÷åíèå  ïîëÿ,

         à òàáëèöó ,  õîòÿ ýòîò çàïðîñ  âîçâðàùàåò  òàáëèöó òîëüêî ñ

         îäíèì ñòîëáöîì è  ( åñëè âñå èäåò óñïåøíî )  òîëüêî ñ îäíîé

         ñòðîêîé.

        

         Äëÿ  îòîáðàæåíèÿ èíôîðìàöèè î ñëóæàùèõ, ÷åé îêëàä ïðåâûøàåò

         ñðåäíèé îêëàä èõ îòäåëà, âû äîëæíû èñïîëüçîâàòü êîððåëÿòèâ-

         íûé ïîäçàïðîñ. Ýòî äåëàåòñÿ ïðè ïîìîùè ïðèñâàèâàíèÿ ïñåâäî-

         íèìà äëÿ EMP òàáëèöû, êîòîðàÿ ñîäåðæèò èíôîðìàöèþ îá îêëà-

         äàõ è ññûëêè ê ýòîìó ïñåâäîíèìó â ïîäçàïðîñå:

        

                  SQL> SELECT     DEPTNO, ENAME, SAL

                    2  FROM       EMP X

                    3  WHERE      SAL > (SELECT AVG(SAL)

                    4                    FROM EMP

                    5                    WHERE X.DEPTNO=DEPTNO)

                    6  ORDER BY DEPTNO;

        

         Âíåøíèé  çàïðîñ äëÿ êàæäîé ñòðîêè èç EMP èñïîëüçóåò âíóòðå-

         ííèé(êîððåëÿòèâíûé) ïîäçàïðîñ äëÿ âû÷èñëåíèÿ ñðåäíåãî îêëà-

         äà ñëóæàùèõ îäíîãî  è  òîãî  æå  îòäåëà ( DEPTNO ýòî DEPTNO

         ñòðîêè, ïðîñìàòðèâàåìîé äëÿ âûáîðà  ïîñðåäñòâîì êîððåëÿòèâ-

         íîãî ïîäçàïðîñà, ýêâèâàëåíòíî X.DEPTNO - çíà÷åíèþ  â ñòðîêå

         âûáèðàåìîé ñ ïîìîùüþ âíåøíåãî çàïðîñà ).

        

         Ïðèìå÷àíèå: ïðèìåðû ïîäçàïðîñîâ äëÿ CREATE TABLE, INSERT  è

         UPDATE ïðåäñòàâëåíû â îïèñàíèè êàæäîé êîìàíäû â  îòäåëüíîñ-

         òè.

        

        

                                -53-

        

        

 

    Ôðàçà WHERE

    ----------------------------------------------------------------

 

         DELETE FROM [èä_ïîëüç.]òàáë ...

          WHERE óñëîâèå;

        

         SELECT ...

          WHERE óñëîâèå...;

        

         UPDATE òàáë [ïñåâäîíèì] ...

          [WHERE óñëîâèå];

         -----------------------------------------------------------

         Ñâÿçàííûå òåìû: Ëîãè÷åñêèå Îïåðàòîðû ; êîìàíäà DELETE ; êî-

         ìàíäà SELECT; êîìàíäà UPDATE.

        

         Îïèñàíèå: Çàäàåò óñëîâèå. Êîìàíäà, ñîäåðæàùàÿ  ôðàçó  WHERE

         áóäåò äåéñòâèòåëüíà òîëüêî â ñòðîêàõ, êîòîðûå óäîâëåòâîðÿþò

         "óñëîâèþ".

        

         Óñëîâèå îïðåäåëÿåòñÿ ñ ïîìîùüþ ëîãè÷åñêîãî âûðàæåíèÿ.Íàïðè-

         ìåð, 'DEPTNO=30' ÿâëÿåòñÿ ëîãè÷åñêèì âûðàæåíèåì,êîòîðîå èñ-

         òèííî,åñëè âåëè÷èíà DEPTNO ðàâíà 30,â ïðîòèâíîì ñëó÷àå çíà-

         ÷åíèå âûðàæåíèÿ áóäåò ëîæíûì.

        

         AND èëè OR  ìîãóò  áûòü  èñïîëüçîâàíû äëÿ ôîðìèðîâàíèÿ ñîñ-

         òàâíûõ ëîãè÷åñêèõ âûðàæåíèé. Íàïðèìåð, âûðàæåíèå 'DEPTNO=30

         AND JOB='SALESMAN' èñòèííî ,  êîãäà èñòèííû  îáà êîìïîíåíòà

         âûðàæåíèÿ.

        

         NOT ìîæåò èñïîëüçîâàòüñÿ äëÿ ëîãè÷åñêîãî îòðèöàíèÿ çíà÷åíèÿ

         âûðàæåíèÿ. Íàïðèìåð,'NOT(DEPTNO=30 AND JOB='SALESMAN')' ÿâ-

         ëÿåòñÿ èñòèííûì, åñëè "DEPTNO=30 AND JOB='SALESMAN'" ,áóäåò

         ëîæíûì, è íàîáîðîò.

        

         "Óñëîâèå" ìîæåò ñîäåðæàòü îïåðàòîðû âêëþ÷åíèÿ , òàêèå , êàê

         IN èëè EXISTS , çà êîòîðûìè ñëåäóåò (ïîä)çàïðîñ . Îíî áóäåò

         èñòèííûì,åñëè ïîäçàïðîñ óäîâëåòâîðÿåò îïåðàòîðó âêëþ÷åíèÿ.

        

         Ïðèìåðû:Ñëåäóþùàÿ  êîìàíäà  âûäåëÿåò âñå ñòðîêè , â êîòîðûõ

         çíà÷åíèå DEPTNO íå ðàâíî 30:

        

                  SQL> SELECT * FROM EMP WHERE DEPTNO!=30;

        

         Ñëåäóùàÿ êîìàíäà îáíîâëÿåò âñå  ñòðîêè , â êîòîðûõ çíà÷åíèå

         COMM áóäåò ïóñòûì(NULL):

        

                  SQL> UPDATE EMP SET (SAL)=(1.1*SAL) WHERE COMM IS

                    2                                    NULL;

 

         Ñëåäóþùàÿ  êîìàíäà óäàëÿåò èç EMP âñå ñòðîêè, êîòîðûå èìåþò

         çíà÷åíèå DEPTNO, íå íàéäåííîå â òàáëèöå DEPT:

        

                  SQL> DELETE FROM EMP WHERE NOT EXISTS

                    2  (SELECT * FROM DEPT WHERE DEPT.DEPTNO=

                    3   EMP.DEPTNO);

        

         

       

                                -54-

                                     

Ã Ë À  À   2

 

                              ÑÏÐÀÂÎ×ÍÈÊ ÊÎÌÀÍÄ

 ------------------------------------------------------------------------

 

 

                                 ÑÎÄÅÐÆÀÍÈÅ

 

                   ÂÂÅÄÅÍÈÅ................................57

 

                   Êîìàíäû SQL , êðàòêîå îïèñàíèå..........58

 

                   Êîìàíäû SQL*Plus , êðàòêîå îïèñàíèå.....60

 

                   @.......................................63

 

                   #.......................................64

 

                   / ......................................66

 

                   /*...*/.................................67

 

                   ALTER PARTITION (Èçìåíèòü ðàçäåë).......68

 

                   ALTER SPACE (Èçìåíèòü ïðîñòðàíñòâî).....69

 

                   ALTER TABLE (Èçìåíèòü òàáëèöó)..........70

 

                   ACCEPT (Ïðèíÿòü)........................71

 

                   APPEND (Äîáàâèòü).......................72

 

                   AUDIT (Ñëåæåíèå)........................73

 

                   BREAK (Ïðåðâàòü)........................75

 

                   BTITLE (Çàãîëîâîê âíèçó)................77

 

                   CHANGE (Èçìåíèòü).......................79

 

                   CLEAR (Î÷èñòèòü)........................80

 

                   COLUMN (Ñòîëáåö)........................81

 

                   COMMENT (Êîììåíòàðèé)...................86

 

                   COMMIT (Âíåñòè èçìåíåíèÿ)...............87

 

                   COMPUTE (Âû÷èñëèòü).....................88

 

                   CONNECT (Ñîåäèíèòü).....................90

 

                   COPY (Êîïèðîâàòü).......................91

        

 

 

                                -55-

                                     

                                     

                                      

                   CREATE CLUSTER (Ñîçäàòü êëàñòåð)........93

 

                   CREATE DATABASE lINK (Ñîçäàòü ñâÿçü

                   ......................ñ áàçîé äàííûõ)...95

 

                   CREATE INDEX (Ñîçäàòü èíäåêñ)...........97

 

                   CREATE PARTITION (Ñîçäàòü ðàçäåë).......99

 

                   CREATE SPACE (Ñîçäàòü ïðîñòðàíñòâî).....100

 

                   CREATE SYNONYM (Ñîçäàòü ñèíîíèì)........101

 

                   CREATE TABLE (Ñîçäàòü òàáëèöó)..........102

 

                   CREATE VIEW (Ñîçäàíèå ýêðàííîé ôîðìû)...104

 

                   DEFINE (Îïðåäåëèòü).....................106

 

                   DEL (Óäàëèòü èç áóôåðà).................108

 

                   DELETE (Óäàëèòü èç òàáëèöû).............109

 

                   DESCRIBE (Îïèñàòü)......................110

 

                   DISCONNECT (Ðàçúåäèíèòü)................111

 

                   DOCUMENT (Äîêóìåíò).....................112

 

                   DROP CLUSTER (Óäàëèòü êëàñòåð)..........113

 

                   DROP DATABASE LINK (Îòìåíèòü ñâÿçü

                   ....................ñ áàçîé äàííûõ).....114

 

                   DROP INDEX (Óäàëèòü èíäåêñ).............115

 

                   DROP SPACE (Óäàëèòü ïðîñòðàíñòâî).......116

                

                   DROP SYNONYM (Óäàëèòü ñèíîíèì)..........117

 

                   DROP TABLE (Óäàëèòü òàáëèöó)............118

 

                   DROP VIEW (Óäàëèòü ýêðàííóþ ôîðìó)......119

 

                   EDIT (Ðåäàêòèðîâàíèå)...................120

 

                   EXIT (Âûõîä)............................121

 

                   GET (Ïðî÷èòàòü â áóôåð).................122

 

                   GRANT (Ïðåäîñòàâèòü)....................123

 

                   HELP (Ïîëó÷åíèå âñïîìîãàòåëüíîé

                   ........èíôîðìàöèè).....................125

                       

 

 

                                -56-

 

                                   

                                     

 

                   HOST (Âûïîëíåíèå êîìàíä îïåðàöèîííîé

                   ......ñèñòåìû)..........................127

                                     

                   INPUT (Ââåñòè)..........................128

 

                   INSERT (Âñòàâèòü).......................130

 

                   LIST (Âûâåñòè ñïèñîê)...................131

 

                   LOCK TABLE (Áëîêèðîâàòü òàáëèöó)........132

 

                   NEWPAGE (Íîâàÿ ñòðàíèöà)................133

 

                   NOAUDIT (Îòìåíèòü ñëåæåíèå).............134

 

                   PAUSE (Ïàóçà)...........................135

 

                   QUIT (Çàâåðøåíèå ðàáîòû)................136

 

                   REMARK (Ïðèìå÷àíèå).....................137

 

                   RENAME (Ïåðåèìåíîâàíèå).................138

 

                   REVOKE (Îòìåíà ïðèâèëåãèé)..............139

 

                   ROLLBACK (Îòìåíèòü âíåñåíèå èçìåíåíèé)..141

 

                   SAVE (Ñîõðàíèòü)........................142

 

                   SELECT (Âûáîð)..........................143

 

                   SET (Óñòàíîâèòü)........................146

 

                   SHOW (Ïîêàçàòü).........................155

 

                   SPOOL (Áóôåðèçàöèÿ ââîäà/âûâîäà)........157

 

                   SQLPLUS.................................158

 

                   START (Çàïóñê êîìàíäíîãî ôàéëà).........160

 

                   TIMING (Õðîíîìåòðàæ)....................161

 

                   TTILE (Çàãîëîâîê âíèçó).................162

 

                   UNDEFINE (Îòìåíèòü îïðåäåëåíèå).........163

 

                   UPDATE (Êîððåêòèðîâêà)..................164

 

                   VALIDATE INDEX (Ïðîâåðèòü èíäåêñ).......166

                                                   

                                                     

        

                                -57-

                                     

                                     

ÂÂÅÄÅÍÈÅ

    ----------------------------------------------------------------

 

         Ýòà ãëàâà ñîäåðæèò äåòàëüíîå îïèñàíèå âñåõ êîìàíä SQL è SQL

         *PLUS. Êîìàíäû  ïðåäñòàâëåíû  â  àëôàâèòíîì ïîðÿäêå. Êàæäîå

         îïèñàíèå ñîäåðæèò ñëåäóþùèå ÷àñòè:

        

         *    Ôîðìàò  : ïîêàçûâàåò ôîðìàò ââîäà êîìàíäû.Óñëîâíûå îáî-

                        çíà÷åíèÿ, èñïîëüçóåìûå â ýòîé ãëàâå, îáüÿñíÿ-

                        þòñÿ íèæå.

        

         *    Òèï     : ïîêàçûâàåò, ÿâëÿåòñÿ ëè êîìàíäà êîìàíäîé SQL,

                        êîìàíäîé SQL*PLUS, èëè êîìàíäîé  äðóãîãî òèïà

                        (íàïðèìåð, êîìàíäîé îïåðàöèîííîé ñèñòåìû ).

        

         *    Îïèñàíèå: ïîêàçûâàåò, êàê è ãäå èñïîëüçîâàòü êîìàíäó.

        

         *    Ïðèìåðû : ïîêàçûâàþò ïðèìåðû èñïîëüçîâàíèÿ êîìàíä.

        

         Äâå ñïðàâî÷íûå  òàáëèöû  ñîäåðæàò  ñïèñîê  êîìàíä   SQL   è

         SQL*PLUS. Êàæäàÿ êîìàíäà ñîäåðæèò êðàòêîå îïèñàíèå.

        

         Ïðèìå÷àíèå: â Pro*ORACLE (êîìàíäíûå ôàéëû ORACLE) ìîãóò èñ-

                     ïîëüçîâàòüñÿ òîëüêî êîìàíäû SQL(íî íå SQL*PLUS).

        

         

        

                                -58-

                                     

                                     

Êîìàíäû SQL, êðàòêîå îïèñàíèå

    ----------------------------------------------------------------

 

         Êîìàíäà                    Îïèñàíèå

         -----------------------------------------------------------

   

         /*...*/                  Êîììåíòàðèé âíóòðè èëè äî êîìàíäû.

 

         ALTER PARTITION          Äîáàâëÿåò ôàéë ê ðàçäåëó áàçû äàí-

                                  íûõ.

 

         ALTER SPACE              Èçìåíÿåò îïðåäåëåíèå ïðîñòðàíñòâà.

 

         ALTER TABLE              Äîáàâëÿåò èëè ïåðåîïðåäåëÿåò ñòîë-

                                  áåö â ñóùåñòâóþùåé òàáëèöå.

        

         AUDIT                    Çàñòàâëÿåò  ORACLE  ñëåäèòü çà èñ-

                                  ïîëüçîâàíèåì òàáëèö,ýêðàííûõ ôîðì,

                                  ñèíîíèìîâ  èëè  äðóãèõ   ñèñòåìíûõ

                                  ñðåäñòâ.

                       

         COMMENT                  Âêëþ÷àåò êîììåíòàðèé  îòíîñèòåëüíî

                                  ò à á ë è ö û  èëè   ñ ò î ë á ö à

                                  â ñëîâàðü äàííûõ.

                       

         CREATE CLUSTER           Ñîçäàåò êëàñòåð, êîòîðûé ìîæåò ñî-

                                  äåðæàòü äâå èëè áîëåå òàáëèö.

        

         CREATE DATABASE LINK     Ñîçäàåò ñâÿçü ñ èìåíåì ïîëüçîâàòå-

                                  ëÿ â óäàëåííîé áàçå äàííûõ.

                       

         CREATE INDEX             Ñîçäàåò èíäåêñ äëÿ òàáëèöû.

        

         CREATE PARTITION         Ñîçäàåò íîâûé ðàçäåë â áàçå äàííûõ.

                       

         CREATE SPACE             Ñîçäàåò îïèñàíèå ïðîñòðàíñòâà, êî-

                                  òîðîå çàòåì ìîæåò áûòü èñïîëüçîâà-

                                  íî äëÿ îïèñàíèÿ êîíôèãóðàöèè  òàá-

                                  ëèöû.

 

         CREATE SYNONYM           Ñîçäàåò  ñèíîíèì  äëÿ èìåíè òàáëè-

                                  öû  èëè ýêðàííîé ôîðìû.

 

         CREATE TABLE             Ñîçäàåò  òàáëèöó  è  îïðåäåëÿåò åå

                                  ñòîëáöû è äðóãèå ñâîéñòâà.

                                 

         CREATE VIEW              Îïðåäåëÿåò ýêðàííóþ ôîðìó äëÿ  îä-

                                  íîé èëè áîëåå òàáëèö è/èëè  äðóãèõ

                                  ýêðàííûõ ôîðì.

                                 

         DELETE                   Óäàëÿåò ñòðîêè èç òàáëèöû.

                                 

         

                                 

                                -59-

                                 

                                 

                                 

                                 

         Êîìàíäà                    Îïèñàíèå

         -----------------------------------------------------------

        

         DROP                     Óäàëÿåò êëàñòåð,ñâÿçü ñ áàçîé äàí-

                                  íûõ è ò.ä. èç áàçû äàííûõ.

                                 

         GRANT                    Ñîçäàåò èäåíòèôèêàòîðû ïîëüçîâàòå-

                                  ëåé, íàçíà÷àåò ïàðîëè,ïðåäîñòàâëÿ-

                                  åò ïîëüçîâàòåëÿì ïðèâèëåãèè ORACLE

                                  è ïðèâèëåãèè ïðè ðàáîòå ñ òàáëèöà-

                                  ìè è ýêðàííûìè ôîðìàìè

 

         INSERT                   Äîáàâëÿåò  íîâóþ  ñòðîêó ê òàáëèöå

                                  èëè ýêðàííîé ôîðìå.

 

         LOCK TABLE               Áëîêèðóåò òàáëèöó,ðàçðåøàÿ ïîëüçî-

                                  âàòåëþ  ðàçäåëÿòü  äîñòóï  ê íåé ñ

                                  äðóãèìè ïîëüçîâàòåëÿìè,  â  òî  æå

                                  âðåìÿ ñîõðàíÿÿ åå öåëîñòíîñòü.

                                          

         NOAUDIT                  ×àñòè÷íî  èëè  ïîëíîñòüþ  îòìåíÿåò

                                  ýôôåêò  ïðåäûäóùåé  êîìàíäû  AUDIT

                                  èëè  îïöèè   ñëåæåíèÿ  â   òàáëèöå

                                  DEFAULT ; çàñòàâëÿåò  ORACLE  ïðå-

                                  êðàòèòü ñëåæåíèå çà èñïîëüçîâàíèåì

                                  òàáëèöû, ýêðàííîé ôîðìû,  ñèíîíèìà

                                  èëè ñèñòåìíîãî ñðåäñòâà.

 

         RENAME                   Èçìåíÿåò èìÿ òàáëèöû,ýêðàííîé ôîð-

                                  ìû èëè ñèíîíèìà.

                                 

         REVOKE                   Îòìåíÿåò  ïðèâèëåãèè  áàçû  äàííûõ

                                  èëè ïðèâèëåãèè äîñòóïà ïîëüçîâàòå-

                                  ëåé ê òàáëèöå.

                                 

         SELECT                   Âûïîëíÿåò çàïðîñ ; âûáèðàåò ñòðîêè

                                  è  ñòîëáöû  èç  îäíîé  èëè   áîëåå

                                  òàáëèö.

 

 

         UPDATE                   Èçìåíÿåò çíà÷åíèÿ ïîëåé òàáëèöû.

 

 

         VALIDATE INDEX           Êîíòðîëèðóåò  êîððåêòíîñòü èíäåêñà

                                  òàáëèöû.


 

         

        

                                -60-

                              

 Êîìàíäû SQL*Plus,êðàòêîå îïèñàíèå

    ----------------------------------------------------------------

 

         Êîìàíäà                    Îïèñàíèå

         -----------------------------------------------------------

 

         @                        Âûïîëíÿåò êîìàíäíûé ôàéë.

 

         #                        Çàêàí÷èâàåò     ïîñëåäîâàòåëüíîñòü

                                  ñòðîê êîììåíòàðèåâ, íà÷àòûõ ñ  ïî-

                                  ìîùüþ êîìàíäû DOCUMENT.

 

         $                        Âûïîëíÿåò êîìàíäû áàçîâîé îïåðàöè-

                                  îííîé ñèñòåìû,íå ïîêèäàÿ SQL*Plus.

                                  Ýêâèâàëåíòíî HOST.

 

         /                        Çàïóñêàåò êîìàíäó â áóôåðå SQL.

 

         ACCEPT                   Ïðèãëàøàåò ïîëüçîâàòåëÿ äëÿ  ââîäà

                                  è íàçíà÷àåò îòâåò â êà÷åñòâå  çíà-

                                  ÷åíèÿ ïîëüçîâàòåëüñêîé ïåðåìåííîé.

 

         APPEND                   Äîáàâëÿåò òåêñò  ê  êîíöó  òåêóùåé

                                  ñòðîêè â òåêóùåì áóôåðå.

 

         BREAK                    Óêàçûâàåò, ÷òî ïðîèçîéäåò â ñëó÷àå

                                  ïðåðûâàíèÿ è êàêèå äåéñòâèÿ âûïîë-

                                  íÿþòñÿ ïðè ïðåðûâàíèè.

 

         BTITLE                   Çàñòàâëÿåò SQL îòîáðàçèòü  çàãîëî-

                                  âîê âíèçó êàæäîé ñòðàíèöû îò÷åòà.

 

         CHANGE                   Èçìåíÿåò ñîäåðæèìîå òåêóùåé ñòðîêè

                                  òåêóùåãî áóôåðà.

 

         CLEAR                    Î÷èùàåò îïèñàíèÿ ïðåðûâàíèé, òåêñò

                                  òåêóùåãî áóôåðà, îïèñàíèÿ ñòîëáöîâ

                                  è ò.ä.

 

         COLUMN                   Îïðåäåëÿåò, êàê äîëæíû áóäóò  ôîð-

                                  ìàòèðîâàòüñÿ â  îò÷åòå  ñòîëáöû  è

                                  çàãîëîâêè ñòîëáöîâ.

 

         COMMIT                   Âíîñèò èçìåíåíèÿ  äëÿ áàçó äàííûõ,

                                  ïðîèçâåäåííûå   ïîñëå    ïîñëåäíåé

                                  COMMIT.

 

         COMPUTE                  Âûïîëíÿåò âû÷èñëåíèÿ â ãðóïïàõ âû-

                                  áðàííûõ ñòðîê.

 

         CONNECT                  Ïðåêðàùàåò ðåãèñòðàöèþ  ñ  òåêóùèì

                                  èìåíåì  ïîëüçîâàòåëÿ  è  âûïîëíÿåò

                                  ðåãèñòðàöèþ âíîâü ñ  óêàçàííûì(íî-

                                  âûì) èìåíåì ïîëüçîâàòåëÿ.

                                 

                                  

                                 

                                 

                                -61-

                                 

                                 

                                 

                                  

 

         COPY                     Êîïèðóåò äàííûå èç îäíîé  SQL*Net-

                                  áàçû äàííûõ â äðóãóþ.

 

         DEFINE                   Ââîäèò  ïåðåìåííóþ ïîëüçîâàòåëÿ  è

                                  ïðèñâàèâàåò åé ñèìâîëüíîå çíà÷åíèå.

 

         DEL                      Óäàëÿåò òåêóùóþ ñòðîêó èç òåêóùåãî

                                  áóôåðà.

 

         DESCRIBE                 Âûâîäèò  íà ýêðàí êðàòêîå îïèñàíèå

                                  òàáëèöû.

 

         DISCONNECT               Âíîñèò òåêóùèå  èçìåíåíèÿ  â  áàçó

                                  äàííûõ  è  çàêàí÷èâàåò ñåàíñ âàøåé

                                  ðàáîòû ñ  ORACLE, íî  íå çàâåðøàåò

                                  SQL*Plus.

 

         DOCUMENT                 Íà÷èíàåò áëîê äîêóìåíòàöèè â   êî-

                                  ìàíäíîì ôàéëå.

 

         EDIT                     Àêòèâèçèðóåò ñòàíäàðòíûé òåêñòîâûé

                                  ðåäàêòîð áàçîâîé îïåðàöèîííîé ñèñ-

                                  òåìû ñ  ñîäåðæèìûì òåêóùåãî áóôåðà

                                  èëè ôàéëà.

 

         EXIT                     Çàâåðøàåò ðàáîòó ñ SQL*Plus è âîç-

                                  âðàùàåò   óïðàâëåíèå  îïåðàöèîííîé

                                  ñèñòåìå.

 

         GET                      Çàãðóæàåò ôàéë â òåêóùèé áóôåð.

 

         HELP                     Âûâîäèò íà ýêðàí èíôîðìàöèþ î  êî-

                                  ìàíäàõ SQL è SQL*Plus.

 

         HOST                     Âûïîëíÿåò   êîìàíäû   îïåðàöèîííîé

                                  ñèñòåìû, íå ïîêèäàÿ  SQL.  Ýêâèâà-

                                  ëåíòíà '$'.

 

         INPUT                    Äîáàâëÿåò íîâûå ñòðîêè ïîñëå òåêó-

                                  ùåé ñòðîêè â òåêóùåì áóôåðå.

 

         LIST                     Ðàñïå÷àòûâàåò  ñòðîêè òåêóùåãî áó-

                                  ôåðà.

 

         NEWPAGE                  Ïðîäîëæàåò áóôåðèçîâàííûé âûâîä  ñ

                                  íà÷àëà ñëåäóþùåé  ñòðàíèöû. Êîìàí-

                                  äà ñòàðîé âåðñèè.

 

         PAUSE                    Âûâîäèò íà ýêðàí ñîîáùåíèå , çàòåì

                                  îæèäàåò íàæàòèÿ êëàâèøè RETURN.

                                  

                                 

                                 

                                -62-

                                 

                                 

                                 

 

         QUIT                     Çàâåðøàåò ðàáîòó ñ SQL*Plus è âîç-

                                  âðàùàåò   óïðàâëåíèå  îïåðàöèîííîé

                                  ñèñòåìå. Ñèíîíèì  EXIT.

                                 

         REMARK                   Íà÷èíàåò  êîììåíòàðèé  â êîìàíäíîì

                                  ôàéëå.

 

         ROLLBACK                 Îòìåíÿåò èçìåíåíèÿ â áàçå  äàííûõ,

                                  ïðîèçâåäåííûå ñ ìîìåíòà ïîñëåäíåãî

                                  ñîõðàíåíèÿ.

 

         RUN                      Âûâîäèò íà  ýêðàí  è çàïóñêàåò êî-

                                  ìàíäó â áóôåðå SQL.

 

         SAVE                     Ñîõðàíÿåò ñîäåðæèìîå  òåêóùåãî áó-

                                  ôåðà (îäíó èëè áîëåå êîìàíä) â áà-

                                  çå äàííûõ èëè â ôàéëå îïåðàöèîííîé

                                  ñèñòåìû.

 

         SET                      Óñòàíàâëèâàåò  óêàçàííûå  çíà÷åíèÿ

                                  äëÿ ïàðàìåòðîâ SQL.

 

         SHOW                     Îòîáðàæàåò óñòàíîâëåííûå ïàðàìåòðû

                                  SQL  èëè õàðàêòåðèñòèêè  SQL*Plus,

                                  íàïðèìåð ,  íîìåð  òåêóùåé  âåðñèè

                                  SQL*Plus.

 

         SPOOL                    Óïðàâëÿåò ñïóëëèíãîì(êîïèðîâàíèåì)

                                  âûñâå÷èâàíèÿ  âûâîäà  â  ñèñòåìíûé

                                  ôàéë è íà ñèñòåìíûé ïðèíòåð.

 

         SQLPLUS                  Ñ è ñ ò å ì í à ÿ  ê î ì à í ä à .

                                  Ñòàðòóåò SQL*Plus.

 

         START                    Âûïîëíÿåò  ïðîöåäóðó , îïèñàííóþ â

                                  êîìàíäíîì ôàéëå.

 

         TIMING                   Ïðîèçâîäèò   àíàëèç  ýôôåêòèâíîñòè

                                  ( ïî âðåìåíè )  êîìàíäíûõ ôàéëîâ è

                                  êîìàíä SQL.

 

         TTITLE                    Ïîáóæäàåò SQL îòîáðàæàòü çàãîëîâîê

                                  â íà÷àëå êàæäîé âûâîäèìîé ñòðàíèöû.

 

         UNDEFINE                 Óäàëÿåò   îïðåäåëåíèå   ïåðåìåííîé

                                  ïîëüçîâàòåëÿ

              

                                    

                                -63-

                                 

                                 

@¶( çíàê"at")

    ----------------------------------------------------------------

 

         @èìÿ ôàéëà;

         -----------------------------------------------------------

        

         Òèï: Êîìàíäà SQL*Plus.

        

         Îïèñàíèå: Âûïîëíÿåò  óêàçàííûé  êîìàíäíûé  ôàéë . Êîìàíäíûé

         ôàéë ìîæåò ñîäåðæàòü ëþáóþ êîìàíäó SQL è ëþáóþ êîìàíäó SQL*

         Plus, êîòîðàÿ ìîæåò ââîäèòñÿ â èíòåðàêòèâíîì ðåæèìå.

        

         @ ÿâëÿåòñÿ ýêâèâàëåíòîì êîìàíäû  START, íî íå äîïóñêàåò èñ-

         ïîëüçîâàíèÿ àðãóìåíòîâ êîìàíäíîé ñòðîêè.

        

         Ïðèìåð:  Äëÿ   âûïîëíåíèÿ   êîìàíäíîãî   ôàéëà   ñ   èìåíåì

         PRINTREPORT, ââåäèòå:

        

                  SQL> @PRINTREPORT;

        

 

 

                                -64-

                                  

                                 

 

#( çíàê"pound");

    ----------------------------------------------------------------

 

         #

         -----------------------------------------------------------

        

         Òèï: Êîìàíäà SQL*Plus.

        

         Îïèñàíèå: Çàêàí÷èâàåò ïîñëåäîâàòåëüíîñòü ñòðîê êîììåíòàðèÿ,

         íà÷àòûõ ñ ïîìîùüþ êîìàíäû DOCUMENT.

        

         Ïðèìåð:

                DOCUMENT

                Written by J.  Smith,  8/15/85.

                Variable headings by R. Jones, 11/5/85.

                Adapted to planning dept. needs by T. Grey,11/29/85.

        

                #

        

         

        

                                -65-

                                 

          

                                  

         ýòà ñòðàíèöà ñïåöèàëüíî îñòàâëåííà ïóñòîé

        

        

         

        

                                -66-

     

/(slach)

    ----------------------------------------------------------------

 

         /

         -----------------------------------------------------------

        

         Òèï: Êîìàíäà SQL*Plus.

        

         Îïèñàíèå: Âûïîëíÿåò êîìàíäó â áóôåðå SQL.

        

         / ÿâëÿåòñÿ ýêâèâàëåíòîì RUN, íî íå îòîáðàæàåò áóôåðíóþ  êî-

         ìàíäó.

        

         

        

                                -67-

   

   

 /*...*/(SQL-êîììåíòàðèé)

    ----------------------------------------------------------------

         /*ëþáîé òåêñò*/

         -----------------------------------------------------------

                                 

         Òèï: Ýëåìåíò ñèíòàêñèñà SQL(íî íå êîìàíäà SQL èëè SQL*Plus).

        

         Îïèñàíèå: SQL-êîììåíòàðèè èñïîëüçóþòñÿ äëÿ ïîÿñíåíèÿ îïåðà-

         öèè èç íàáîðà êîìàíä SQL. Îíè ìîãóò îòîáðàæàòüñÿ  íà ýêðàíå

         è ðåäàêòèðîâàòüñÿ ñîâìåñòíî ñ òàêèìè êîìàíäàìè, êàê LIST  è

         CHANGE,íî â òî æå âðåìÿ îíè íå âëèÿþò íà âûïîëíåíèå êîìàíä.

        

         Êîììåíòàðèè ìîãóò ïîÿâëÿòüñÿ âíóòðè ëþáîé SQL-êîìàíäû("Âíó-

         òðè" - çíà÷èò ìåæäó ñëîâàìè èëè ìåæäó ñëîâîì  è çàâåðùàþùèì

         ñèìâîëîì ';'). Èõ íåëüçÿ ïðèìåíÿòü ïåðåä   SQL-êîìàíäîé èëè

         âíóòðè åå. Êîìàíäû  SQL*Plus  äîëæíû êîììåíòèðîâàòüñÿ ñ èñ-

         ïîëüçîâàíèåì SQL*Plus-êîìàíäû REMARK.

        

         /* íà÷èíàåò êîììåíòàðèé. */ çàêàí÷èâàåò åãî.Êîììåíòàðèé ìî-

         æåò ñîäåðæàòü ëþáîå êîëè÷åñòâî ñòðîê è ìîæåò íà÷èíàòüñÿ èëè

         çàêàí÷èâàòüñÿ â ñåðåäèíå ñòðîêè. Çíàêè '/*' è '*/' íå  îáÿ-

         çàòåëüíî îòäåëÿòü îò íåïîñðåäñòâåííî êîììåíòàðèÿ ïðè ïîìîùè

         ïðîáåëîâ èëè ïåðåâîäîì ñòðîêè.

        

         Ïðèìåð: Ñëåäóþùàÿ êîìàíäà SELECT ñîäåðæèò íåñêîëüêî êîììåí-

         òàðèåâ.  Îáðàòèòå  âíèìàíèå,  êàê òî÷êà-ñ-çàïÿòîé çàâåðøàåò

         ïîñëåäíèé  êîììåíòàðèé äëÿ  óäîâëåòâîðåíèÿ ïðàâèë ðàìåùåíèÿ

         êîììåíòàðèÿ  â í ó ò ð è  êîìàíäû SQL.

        

               SQL> SELECT     ENAME, SAL+COMM COMP, JOB, LOC

                 2   /* Select all employees whose compensantion is

                 3   greater than that of Jones. */

                 4   FROM       EMP, DEPT

                 5   /* DEPT is used to get departament name. */

                 6   WHERE      EMP.DEPTNO = DEPT.DEPTNO

                 7   AND        COMP >               /* Subquery: */

                 8              (SELECT COMP        /* COMP > */

                 9              FROM    EMP         /* Jones's */

                10               WHERE  ENAME = 'JONES') /*COMP.*/ ;

        

         

        

                                -68-

                                 

                                 

ALTER PARTITION¶

    ----------------------------------------------------------------

 

         ALTER PARTITION ðàçäåë ADD FILE òåêñò;

         -----------------------------------------------------------

                                 

         Òèï:  Êîìàíäà SQL.

        

         Îïèñàíèå: Ïðèñîåäèíÿåò ôàéë, èìåíîâàííûé ñ ïîìîùüþ çíà÷åíèÿ

         "òåêñò" ê óêàçàííîìó "ðàçäåëó". Êðîìå òîãî ,  âíîñèò â áàçó

         äàííûõ òåêóùèå èçìåíåíèÿ.

        

         Áàçà  äàííûõ  ORACLE  ñîñòîèò èç ðàçäåëà  SYSTEM  è  äðóãèõ

         ðàçäåëîâ, ñîçäàííûõ êîìàíäîé CREATE PARTITION. Äàííûå, õðà-

         íèìûå â ðàçäåëå,  â  äåéñòâèòåëüíîñòè  õðàíÿòñÿ â îäíîì èëè

         áîëåå ôàéëîâ, ñâÿçàííûõ ñ ýòèì ðàçäåëîì. Òàêèì îáðàçîì, ïå-

         ðåä ñîõðàíåíèåì äàííûõ â ðàçäåëå, â íåì äîëæåí áûòü îïðåäå-

         ëåí õîòÿ áû îäèí ôàéë.

        

         Ïåðåä ïðèñîåäèíåíèåì ôàéëà ê ðàçäåëó, îí äîëæåí áûòü ñîçäàí

         óòèëèòîé CCF.  Äëÿ èíôîðìàöèè îòíîñèòåëüíî óòèëèòû  CCF ñì.

         "Ðóêîâîäñòâî Àäìèíèñòðàòîðîâ Áàçû äàííûõ ORACLE".

        

         ALTER PARTITION  ìîãóò  èñïîëüçîâàòü òîëüêî  ïîëüçîâàòåëè ñ

         ïðèâèëåãèÿìè DBA (àäìèíèñòðàòîð áàçû äàííûõ).

        

         ALTER  PARTITION  èñïîëüçóåòñÿ äëÿ  óâåëè÷åíèÿ  îáúåìà áàçû

         äàííûõ ïîñðåäñòâîì äîáàâëåíèÿ ôàéëîâ ê ñóùåñòâóþùåìó ðàçäå-

         ëó, äàæå åñëè ýòîò ðàçäåë óæå ñîäåðæèò äàííûå.

        

         Ïðèìåð: Äëÿ äîáàâëåíèÿ ôàéëà ñ èìåíåì  ORA005.DBS ê ðàçäåëó

         SYSTEM ñîçäàéòå ôàéë ñ ïîìîùüþ CCF è çàòåì ââåäèòå:

        

                  SQL> ALTER PARTITION SYSTEM

                    2        ADD FILE 'ORA005.DBS';

        

         

        

                                -69-

     

ALTER SPACE¶

    ----------------------------------------------------------------

 

         ALTER SPACE[DEFINITION] sname

           [ DATAPAGES(

           [INITIAL{5|n}][INCREMENT{25|n}]

             [MAXEXTENTS{9999|n}][PCTFREE{20|n}]   )]

           [ INDEXPAGES(

             [INITIAL {5|n}][INCREMENT{25|n}]

             [MAXESTENTS{9999|n}]    )]

           [ PARTITION {SYSTEM|pname} ];

         -----------------------------------------------------------

        

         Òèï: Êîìàíäà SQL.

        

         Îïèñàíèå: Èçìåíÿåò îïèñàíèå ïðîñòðàíñòâà , ñîçäàííîå ñ  ïî-

         ìîùüþ CREATE SPACE . Òàêæå  âíîñèò  òåêóùèå èçìåíåíèÿ â áà-

         çó äàííûõ.

        

         ALTER SPACE èçìåíÿåò îïèñàíèå êàæäîãî óêàçàííîãî  ïàðàìåòðà

         ðàñïðåäåëåíèÿ ïðîñòðàíñòâà è îñòàâëÿåò íåèçìåííûìè âñå  îñ-

         òàëüíûå  ïàðàìåòðû . Äëÿ  èíôîðìàöèè  î ïàðàìåòðàõ ñìîòðèòå

         CREATE SPACE.

        

         Ïðèìåð: ÷òîáû äîáàâèòü  DATAPAGES  è INDEXPAGES ê îïèñàòåëþ

         ïðîñòðàíñòâà ñ èìåíåì FRUGAL, âàì íóæíî ââåñòè:

        

                  SQL>    ALTER SPACE FRUGAL

                                 

                    2      DATAPAGES       (INCREMENT 4)

                                 

                    3      INDEXPAGES      (INCREMENT 4);

        

         

        

                                -70-

                                 

ALTER TABLE

      --------------------------------------------------------------

         ALTER TABLE òàáëèöà ADD( ñòîëáåö ñïåö[NULL|NOT NULL],...);

         ALTER TABLE òàáëèöà MODIFY( ñòîëáåö[ñïåö][NULL|

             NOT NULL],,...);

         -----------------------------------------------------------

        

         Òèï: Êîìàíäà SQL.

        

         Îïèñàíèå: ADD äîáàâëÿåò íîâûé  "ñòîëáåö"  ê  êîíöó îïèñàíèÿ

         "òàáëèöû" (êàæäîå ïîëå â ñòîëáöå èíèöèèðóåòñÿ     çíà÷åíèåì

         NULL). Òàêæå âíîñèò â áàçó äàííûõ òåêóùèå èçìåíåíèÿ.

        

         MODIFY èçìåíÿåò îïèñàíèå ñóùåñòâóþùåãî "ñòîëáöà" è âíîñèò â

         áàçó äàííûõ òåêóùèå èçìåíåíèÿ.

        

         "ñïåö"(ñïåöèôèêàöèÿ)  çàäàåò (íîâûé)òèï è äëèíó  "ñòîëáöà".

         Èñïîëüçóåòñÿ ïî àíàëîãèè ñ CREATE TABLE. MODIFY ìîæåò èçìå-

         íÿòü òèï "ñòîëáöà" èëè óìåíüøàòü åãî äëèíó,òîëüêî åñëè êàæ-

         äîå ïîëå â "ñòîëáöå" ñîäåðæèò çíà÷åíèå NULL.

        

         NULL  óêàçûâàåò, ÷òî çíà÷åíèÿ â ýòîì  ñòîëáöå   ìîãóò  áûòü

         ïóñòûìè.  NOT  NULL  èìååò  îáðàòíûé  ñìûñë .   NOT  NULL -

         ñòîëáåö ìîæåò äîáàâëÿòüñÿ òîëüêî ê òàêîé  òàáëèöå,  êîòîðàÿ

         íå ñîäåðæèò  ñòðîê;   ñóùåñòâóþùèé   ñòîëáåö   ìîæíî äåëàòü

         NOT NULL,òîëüêî åñëè îí ñîäåðæèò íåïóñòûå çíà÷åíèÿ. Äëÿ ADD

         óìîë÷àíèåì ÿâëÿåòñÿ NULL; äëÿ MODIFY - "íå èçìåíÿòü".

                   

         Çàìåòèì, ÷òî, åñëè ñòîëáöû äîáàâëÿþòñÿ ê òàáëèöå èñïîëüçóå-

         ìîé â ýêðàííîé ôîðìå,  îïðåäåëåííîé çàïðîñîì, êîòîðûé âûáè-

         ðàåò âñå ñòîëáöû ("SELECT * FROM..."), òî â äàëüíåéøåì  ýê-

         ðàííàÿ ôîðìà íå áóäåò ðàáîòàòü êîððåêòíî.  Ýòî ìîæíî èñïðà-

         âèòü ñ ïîìîùüþ óäàëåíèÿ ñòàðîé è  ñîçäàíèÿ  íîâîé  ýêðàííîé

         ôîðìû.

        

         Ïðèìåð:Äëÿ äîáàâëåíèÿ öèôðîâîãî ñòîëáöà ñ èìåíåì THRIFTPLAN

         ñ ìàêñèìóì ñåìüþ öèôðàìè è äâóìÿ äåñÿòè÷íûìè ïîëÿìè ê òàáë.

         ñ èìåíåì EMP , à òàêæå îäíîñèìâîëüíîãî   ñòîëáöà  ñ  èìåíåì

         LOADCODE, ââåäèòå:

        

                  SQL> ALTER TABLE EMP ADD

                    2     (THRIFTPLAN NUMBER(7,2), LOADCODE CHAR(1));

        

         ×òîáû óâåëè÷èòü äëèíó THRIFTPLAN äî äåâÿòè ñèìâîëîâ, ââåäè-

         òå:

        

                  SQL> ALTER TABLE EMP MODIFY

                    2        (THRIFTPLAN NUMBER(9,2));

        

         Èçìåíåíèå òàáëèöû ïðè ìîäèôèêàöèè äëèíû ñòîëáöà,  çàäàííîãî

         êàê NOT NULL, áóäåò îòìåíÿòü àòðèáóò  NOT NULL , åñëè îí íå

         íå óêàçàí ñïåöèàëüíî.

        

                             

        

                                -71-

 

 

ACCEPT

    ----------------------------------------------------------------

 

         ACC[EPT]ïåðåì[NUM[BER]|CHAR][PROMPT òåêñò

         NOPR[OMPT]][HIDE];

         -----------------------------------------------------------

        

         Òèï: Êîìàíäà SQL*Plus.

        

         Îïèñàíèå: ×èòàåò ñòðîêó ñ êëàâèàòóðû è ñîõðàíÿåò åå â ïåðå-

         ïîëüçîâàòåëÿ "ïåðåì".  Åñëè ïåðåìåííàÿ "ïåðåì"  íå  ñóùåñò-

         âóåò, îíà ñîçäàåòñÿ.

        

         NUMBER  è  CHAR  îïðåäåëÿþò  òèï  "ïåðåì";  åñëè  ââåäåííîå

         çíà÷åíèå ïîäõîäèò äëÿ ýòîãî òèïà, ACCEPT  äàåò ñîîáùåíèå îá

         îøèáêå.

        

         Ñèìâîëû PROMPT "òåêñò" çàñòàâëÿþò ACCEPT îòîáðàçèòü "òåêñò"

         äî ÷òåíèÿ îòâåòà. NOPROMPT çàñòàâëÿåò ACCEPT ïåðåéòè íà íî-

         âóþ ñòðîêó è îæèäàòü ââîäà áåç îòîáðàæåíèÿ ïîäñêàçêè.

        

         HIDE ïîäàâëÿåò îòîáðàæåíèå íà ýêðàíå ââîäèìîãî îòâåòà.

        

         Ïðèìåðû: Äëÿ  îòîáðàæåíèÿ ïîäñêàçêè  "Salary:"  è ïîìåùåíèÿ

         îòâåòà â ïåðåìåííóþ ñ èìåíåì SALARY, ââåäèòå:

        

                  SQL> ACCEPT salary NUMBER PROMPT 'Salary:  ';

        

         ×òîáû îòîáðàçèòü íà ýêðàíå ïðèãëàøåíèå "Password:" è ïîìåñ-

         òèòü îòâåò â ñèìâîëüíóþ ïåðåìåííóþ PSWD, ïîäàâëÿÿ îòîáðàæå-

         íèå îòâåòà, ââåäèòå:

        

                  SQL> ACCEPT pswd CHAR PROMPT 'Password:    ' HIDE;

        

        

           

                                -72-

 

APPEND

    ----------------------------------------------------------------

 

         A[PPEND] òåêñò

         -----------------------------------------------------------

        

         Òèï: Êîìàíäà SQL*Plus.

        

         Îïèñàíèå: Äîáàâëÿåò "òåêñò" ê êîíöó òåêóùåé ñòðîêè â  òåêó-

         ùåì áóôåðå.

        

         ×òîáû îòäåëèòü "òåêñò" îò ïðåäøåñòâóþùèõ ñèìâîëîâ ïðîáåëîì,

         íåîáõîäèìî ðàçäåëèòü APPEND è "òåêñò" ä â ó ì ÿ  ïðîáåëàìè,

         èëè çàêëþ÷èòü  "òåêñò"  â îäèíî÷íûå êàâû÷êè è  íà÷àòü åãî ñ

         ïðîáåëà.

        

         Äëÿ äîáàâëåíèÿ òåêñòà, çàêàí÷èâàþùåãîñÿ ñèìâîëîì ';', íåîá-

         õîäèìî çàêîí÷èòü ââîä êîìàíäû äâóìÿ ñèìâîëàìè ';',  òàê êàê

         îäèí èç íèõ èíòåðïðåòèðóåòñÿ â êà÷åñòâå îãðàíè÷èòåëÿ êîìàí-

         äû.

        

         Ïðèìåð: Äëÿ äîáàâëåíèÿ ôðàçû FORMAT 9999 ê ïÿòîé ñòðîêå òå-

         êóùåãî  áóôåðà âû äîëæíû ñíà÷àëà ñäåëàòü ýòó ñòðîêó òåêóùåé

         ñòðîêîé. Îäèí èç ñïîñîáîâ ñäåëàòü ýòî - ðàñïå÷àòàòü ñòðîêó:

        

                  SQL> LIST 5

                    5* COLUMN SAL ALIAS "SALARY"

        

         Òåïåðü ââåäèòå APPEND:

        

                  SQL> APPEND  FORMAT 9999

                  SQL> LIST 5

                    5* COLUMN SAL ALIAS "SALARY" FORMAT 9999

        

         Îáðàòèòå  âíèìàíèå  íà  äâîéíîé  ïðîáåë  ìåæäó  'APPEND'  è

         'FORMAT'. Ïåðâûé ïðîáåë îòäåëÿåò APPEND îò äîáàâëÿåìûõ ñèì-

         âîëîâ; ñëåäóþùèé ïðîáåë ñòàíîâèòñÿ  ïåðâûì äîáàâëÿåìûì ñèì-

         âîëîì.

        

         ×òîáû äîáàâèòü ê ñòðîêå ñèìâîë ';', âàì íóæíî ââåñòè:

        

                  SQL>APPEND ;;

        

         Ïåðâûé ñèìâîë ';' äîáàâëÿåòñÿ ê ñòðîêå; ñëåäóþùèé  çàêàí÷è-

         âàåò êîìàíäó APPEND.

        

         

        

                                -73-

    

    AUDIT

    ----------------------------------------------------------------

         AUDIT {îïöèÿ,îïöèÿ,...|ALL}

         ON {òàáë|DEFAULT}

         [BY {ACCESS|SESSION}]

           [WHENEVER[NOT]SUCCESSFUL];

        

         AUDIT {s_îïöèÿ, s_îïöèÿ,...|ALL}

           [WHENEVER[NOT]SUCCESSFUL ];

         -----------------------------------------------------------

         

         Òèï: Êîìàíäà SQL.

        

         Îïèñàíèå: Ïåðâàÿ ôîðìà çàñòàâëÿåò ORACLE ñëåäèòü çà èñïîëü-

         çîâàíèåì òàáëèö, ýêðàííûõ ôîðì èëè ñèíîíèìîâ. ×òîáû ñëåäèòü

         çà èñïîëüçîâàíèåì îáúåêòà, âû äîëæíû âëàäåòü ýòèì  îáúåêòîì

         èëè èìåòü ïðèâèëåãèè DBA.

        

         "îïöèÿ" óêàçûâàåò íà òî, ÷òî îáðàùåíèÿ êîìàíä ê òàáëèöå äî-

         ëæíû ðåãèñòðèðîâàòüñÿ. Ýòî ìîãóò áûòü êîìàíäû ALTER, AUDIT,

         COMMENT,  DELETE ,  GRANT , INDEX , INSERT , LOCK , RENAME,

         SELECT èëè UPDATE. GRANT îòñëåæèâàåò è êîìàíäó GRANT, è êî-

         ìàíäó REVOKE. ALL ïðîèçâîäèò ñëåæåíèå çà âñåìè ýòèìè êîìàí-

         äàìè.

        

         ON "òàáë"  óêàçûâàåò îáúåêò  ñëåæåíèÿ.   ON DEFAULT  çàäàåò

         èçìåíåíèÿ  äëÿ  DEFAULT-òàáëèöû, êîòîðàÿ êîíòðîëèðóåò îïöèè

         ñëåæåíèÿ , óêàçàííûå äëÿ âíîâü ñîçäàííîé òàáëèöû. ×òîáû èñ-

         ïîëüçîâàòü ON DEFAULT, âû äîëæíû èìåòü ïðèâèëåãèè DBA.

        

         Ñëåäóþùàÿ ôîðìà óñòàíàâëèâàåò  ñëåæåíèå  çà  èñïîëüçîâàíèåì

         ñèñòåìíûõ ñðåäñòâ.  Äëÿ ïðèìåíåíèÿ ýòîé ôîðìû  AUDIT  íåîá-

         õîäèìî îáëàäàòü ïðèâèëåãèÿìè DBA. "s_îïöèÿ" çàäàåò ñðåäñòâà

         çà êîòîðûìè èäåò ñëåæåíèå. Ýòî ìîæåò áûòü  CONNECT (ðåãèñò-

         ðàöèÿ âõîäîâ è âûõîäîâ èç ORACLE), DBA (ðåãèñòðàöèÿ êîìàíä,

         çàïðàøèâàþùèõ ïðèâèëåãèè DBA), NOT EXISTS (ðåãèñòðàöèÿ âñåõ

         êîìàíä, âûðàáàòûâàþùèõ îøèáêó "does not exist") èëè RESOURCE

         ( ðåãèñòðàöèÿ   CREATE/DROP TABLE/CLUSTER/VIEW/INDEX/SPACE/

         SYNONYM ). ALL ïðîèçâîäèò ñëåæåíèå çà âñåìè  ïåðå÷èñëåííûìè

         ñðåäñòâàìè.

        

         BY ACCESS  èëè  BY SESSION çàñòàâëÿåò  ORACLE  çàïèñûâàòü â

         òàáëèöó ñëåæåíèÿ ñòðîêó äëÿ êàæäîé êîìàíäû èëè ñåàíñà ïîëü-

         çîâàòåëÿ, èñïîëüçóþùèõ îáðàùåíèå ê îòñëåæèâàåìîé òàáëèöå.

        

         WHENEVER[NOT]SUCCESSFUL ïîáóæäàåò  ORACLE çàïèñûâàòü ñòðîêó

         â òàáëèöó ñëåæåíèÿ òîëüêî òîãäà, êîãäà îáðàùåíèå ê îòñëåæè-

         âàåìîé òàáëèöå èëè ñèñòåìíûì ñðåäñòâàì îêàçàëîñü(íå) óñïåø-

         íûì. Åñëè ýòà ôðàçà îïóùåíà, ñòðîêà çàïèñûâàåòñÿ íåçàâèñèìî

         îò òîãî, ÿâëÿåòñÿ ëè îáðàùåíèå óñïåøíûì.

        

         Èñïîëüçîâàíèå NOAUDIT èìååò ýôôåêò îáðàòíûé ýôôåêòó AUDIT.

        

        

        

                                -74-

        

        

        

        

         Îáå ôîðìû âíîñÿò òåêóùèå èçìåíåíèÿ â áàçó äàííûõ,  çàäàííóþ

         ïî óìîë÷àíèþ.

        

         Êîãäà äîñòóï ê òàáëèöàì  îñóùåñòâëÿåòñÿ ÷åðåç ñâÿçü ñ áàçîé

         äàííûõ ( ñì. îáñóæäåíèå CREATE DATABASE LINK ) , ñëåæåíèå â

         â óäàëåííîé  ñèñòåìå âûïîëíÿåòñÿ ñîãëàñíî óñòàíîâëåííûì äëÿ

         óäàëåííîé ñèñòåìû îïöèÿì ñëåæåíèÿ.

        

         Ïðèìåðû: Äëÿ ñëåæåíèÿ çà âñåìè îáðàùåíèÿìè INSERT èëè UPDATE

         ê òàáëèöå ñ èìåíåì EMP, ââåäèòå:

         

                  SQL> AUDIT INSERT, UPDATE ON EMP BY ACCESS;

        

         Äëÿ ñëåæåíèÿ çà âñåìè ñåàíñàìè, â êîòîðûõ ïðîèñõîäèëè  íåó-

         äà÷íûå îáðàùåíèÿ ê EMP, âåäèòå:

        

                  SQL> AUDIT ALL ON EMP WHENEVER NOT SUCCESSFUL;

        

         Äëÿ ðåãèñòðàöèè âñåõ óñïåøíûõ çàïðîñîâ íà ðåñóðñû, ââåäèòå:

        

                  SQL> AUDIT RESOURCE WHENEVER SUCCESSFUL;

        

             

    

                                -75-

 

  BREAK

    ----------------------------------------------------------------

         BRE[AK]  ON{âûð|ROW|PAG[E]|REPORT}...

            [SKI[P]n|[SKIP]PAGE]

            [NODUP[LICATES]|DUP[LICATES]];

        

         BRE[AK];

         -----------------------------------------------------------

        

         Òèï: Êîìàíäà SQL*Plus.

        

         Îïèñàíèå: break(ïðåðûâàíèå) - ýòî  ñîáûòèå , êîòîðîå  èìååò

         ìåñòî ïîêà SQL îáðàáàòûâàåò SELECT-êîìàíäó, òàêîå êàê êîíåö

         ñòðàíèöû èëè  èçìåíåíèå  çíà÷åíèÿ  âûðàæåíèÿ.    Ïðåðûâàíèå

         çàñòàâëÿåò SQL âûïîëíèòü íåêîòîðûå äåéñòâèÿ, íàïðèìåð, ïîë-

         íóþ ðàñïå÷àòêó.

        

         Êîìàíäà  BREAK óêàçûâàåò, êàêèå ñîáûòèÿ áóäóò âûçûâàòü ïðå-

         ðûâàíèå è êàêèå äåéñòâèÿ âûïîëíÿåò SQL ïðè ïðåðûâàíèè.

        

         Â êàæäûé  äàííûé  ìîìåíò  âðåìåíè  ìîæåò áûòü äåéñòâèòåëüíà

         òîëüêî îäíà êîìàíäà  BREAK.  Êîãäà âû ââîäèòå íîâóþ êîìàíäó

         BREAK, îíà ïîëíîñòüþ çàìåíÿåò ïðåäøåñòâóþùóþ êîìàíäó.

        

         Êîìàíäà BREAK ìîæåò óêàçûâàòü íåñêîëüêî ñîáûòèé, âûçûâàþùèõ

         ïðåðûâàíèÿ.  ýòîì ñëó÷àå ñîáûòèÿ ïðîâåðÿþòñÿ â  îïðåäåëåí-