• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 40, 文章 - 0, 評論 - 9, 引用 - 0
            數據加載中……

            SQL語言簡介

            1、           SQL

            SQL是一種面向數據庫的通用數據處理語言規范,能完成以下幾類功能:提取查詢數據,插入修改刪除數據,生成修改和刪除數據庫對象,數據庫安全控制,數據庫完整性及數據保護控制。

            數據庫對象包括表、視圖、索引、同義詞、簇、觸發器、函數、過程、包、數據庫鏈、快照等(表空間、回滾段、角色、用戶)。數據庫通過對表的操作來管理存儲在其中的數據。

             

            1)SQL*PLUS界面:

            登錄:輸入SQLPLUS回車;輸入正確的ORACLE用戶名并回車;輸入用戶口令并回車,顯示提示符:SQL>

            退出:輸入EXIT即可。

            2)命令的編輯與運行:

            l      在命令提示符后輸入SQL命令并運行,以分號結束輸入;以斜杠結束輸入;以空行結束輸入;

            l      利用SQL緩沖區進行PL/SQL塊的編輯和運行;

            l      利用命令文件進行PL/SQL塊的編輯和運行。

             

            2、           數據庫查詢

            1)              SELECT語句從表中提取查詢數據。語法為

            SELECT [DISTINCT] {column1,column2,…} FROM tablename WHERE {conditions} GROUP BY {conditions} ORDER BY {expressions} [ASC/DESC];

            說明:SELECT子句用于指定檢索數據庫的中哪些列,FROM子句用于指定從哪一個表或視圖中檢索數據。

            2)              SELECT中的操作符及多表查詢WHERE子句。(LIKE,IS,…)

              WHERE子句中的條件可以是一個包含等號或不等號的條件表達式,也可以是一個含有INNOT INBETWEENLIKEIS NOT NULL等比較運算符的條件式,還可以是由單一的條件表達通過邏輯運算符組合成復合條件。

            3)              ORDER BY   子句

            ORDER BY 子句使得SQL在顯示查詢結果時將各返回行按順序排列,返回行的排列順序由ORDER BY 子句指定的表達式的值確定。

            4)              連接查詢

            利用SELECT語句進行數據庫查詢時,可以把多個表、視圖的數據結合起來,使得查詢結果的每一行中包含來自多個表達式或視圖的數據,這種操作被稱為連接查詢。

            連接查詢的方法是在SELECT命令的FROM子句中指定兩個或多個將被連接查詢的表或視圖,并且在WHERE子句告訴ORACLE如何把多個表的數據進行合并。根據WHERE子句中的條件表達式是等還是不等式,可以把連接查詢分為等式連接和不等式連接。

            5)              子查詢

            如果某一個SELECT命令(查詢1)出現在另一個SQL命令(查詢2)的一個子句中,則稱查詢1是查詢2的子查詢。

             

            3、              基本數據類型(NUMBER,VARCHAR2,DATE  O

             RACEL支持下列內部數據類型:

            l       VARCHAR2 變長字符串,最長為2000字符。

            l       NUMBER   數值型。

            l       LONG      變長字符數據,最長為2G字節。

            l       DATE       日期型。

            l       RAW       二進制數據,最長為255字節。

            l       LONG RAW  變長二進制數據,最長為2G字節。

            l       ROWID      二六進制串,表示表的行的唯一地址。

            l       CHAR       定長字符數據,最長為255

             

            4、              常用函數用法:

                 一個函數類似于一個算符,它操作數據項,返回一個結果。函數在格式上不同于算符,它個具有變元,可操作0個、一個、二個或多個變元,形式為:

            函數名(變元,變元,…)

            函數具有下列一般類形:

            l         單行函數

            l         分組函數

            1)單行函數對查詢的表或視圖的每一行返回一個結果行。它有數值函數,字符函數,日期函數,轉換函數等。

            2)分組函數返回的結果是基于行組而不是單行,所以分組函數不同于單行函數。在許多分組函數中可有下列選項:

            l         DISTRNCT 該選項使分組函數只考慮變元表達式中的不同值。

            l         ALL該選項使分組函數考慮全部值,包含全部重復。

            全部分組函數(除COUNT*)外)忽略空值。如果具有分組函數的查詢,沒有返回行或只有空值(分組函數的變元取值的行),則分組函數返回空值。

             

             

            5  數據操縱語言命令:

            數據庫操縱語言(DML)命令用于查詢和操縱模式對象中的數據,它不隱式地提交當前事務。它包含UPDATEINSERTDELETEEXPLAIN PLANSELECTLOCK TABLE 等命令。下面簡單介紹一下:

            1)  UPDATE tablename SET {column1=expression1,column2=expression2,…} WHERE {conditions};

            例如:S      QL>UPDATE EMP

                  SET JOB =’MANAGER’

                  WHERE ENAME=’MAPTIN’;

                  SQL >SELECT * FROM EMP;

            UPDATE子句指明了要修改的數據庫是EMP,并用WHERE子句限制了只對名字(ENAME)’MARTIN’的職工的數據進行修改,SET子句則說明修改的方式,即把’MARTION’的工作名稱(JOB)改為’MARAGER’.

             

            2) INSERT INTO tablename {column1,column2,…} VALUES {expression1,expression2,…};

            例如:SQL>SELECT INTO DEPTDNAME DEPTNO

                  VALUES (‘ACCOUNTING’,10

             

            3)   DELETE FROM tablename WHERE {conditions};

            例如:SQL>DELETE FROM EMP

                 WHERE EMPNO = 7654;

            DELETE命令刪除一條記錄,而且DELETE命令只能刪除整行,而不能刪除某行中的部分數據.

             

             

            4  事務控制命令

            提交命令(COMMIT):可以使數據庫的修改永久化.設置AUTOCOMMIT為允許狀態:SQL >SET AUTOCOMMIT ON;

            回滾命令(ROLLBACK):消除上一個COMMIT命令后的所做的全部修改,使得數據庫的內容恢復到上一個COMMIT執行后的狀態.使用方法是:

            SQL>ROLLBACK;

             

            5、           創建表、視圖、索引、同義詞、用戶。

            1)、表是存儲用戶數據的基本結構。

            建立表主要指定義下列信息:

            l         列定義

            l         完整性約束

            l         表所在表空間

            l         存儲特性

            l         可選擇的聚集

            l         從一查詢獲得數據

                    語法如下:CREATE TABLE tablename

                         (column1 datatype [DEFAULT expression] [constraint],

                          column1 datatype [DEFAULT expression] [constraint],

                          ……)

                         [STORAGE子句]

                         [其他子句…]

            例如:

            SQL>CREATE TABLE NEW_DEPT

                 (DPTNO NUMBER(2),

                 DNAME CHAR(6),

            LOC CHAR(13);

            更改表作用:

            l         增加列

            l         增加完整性約束

            l         重新定義列(數據類型、長度、缺省值)

            l         修改存儲參數或其它參數

            l         使能、使不能或刪除一完整性約束或觸發器

            l         顯式地分配一個范圍

            2)、視圖

            視圖是一個邏輯表,它允許操作者從其它表或視圖存取數據,視圖本身不包含數據。視圖所基于的表稱為基表。

            引入視圖有下列作用:

            l         提供附加的表安全級,限制存取基表的行或/和列集合。

            l         隱藏數據復雜性。

            l         為數據提供另一種觀點。

            l         促使ORACLE的某些操作在包含視圖的數據庫上執行,而不在另一個數據庫上執行。

             

             

                    3)、索引

             索引是種數據庫對象。對于在表或聚集的索引列上的每一值將包含一項,為行提供直接的快速存取。在下列情況ORACLE可利用索引改進性能:

            l       按指定的索引列的值查找行。

            l       按索引列的順序存取表。

                   建立索引: CREATE [UNIQUE] INDEX indexname ON tablename(column ,。。。)

            例如:SQL>CREAT INDEX IC_EMP

                      ON CLUSTER EMPLOYEE

             

            4)、同義詞

            同義詞:為表、視圖、序列、存儲函數、包、快照或其它同義詞的另一個名字。使用同義詞為了安全和方便。對一對象建立同義詞可有下列好處:

            l         引用對象不需指出對象的持有者。

            l         引用對象不需指出它所位于的數據庫。

            l         為對象提供另一個名字。

            建立同義詞:

            CREATE SYNONYM symnon_name FOR [username.]tablename;

            例如:CREAT PUBLIC SYNONYM EMP

                  FOR SCOTT.EMP @SALES

             

            5)、用戶

            CREATE USER username IDENTIFIED BY password;

            例如:SQL>CREATE USER SIDNEY

                       IDENTIFIED BY CARTON ;

            Oracle擴展PL/SQL簡介

            1、             PL/SQL概述。

            PL/SQLOracleSQL規范的擴展,是一種塊結構語言,即構成一個PL/SQL程序的基本單位(過程、函數和無名塊)是邏輯塊,可包含任何數目的嵌套了快。這種程序結構支持逐步求精方法解決問題。一個塊(或子塊)將邏輯上相關的說明和語句組合在一起,其形式為:

            DECLARE

            ---說明

            BEGIN

            ---語句序列

            EXCEPTION

            ---例外處理程序

            END

            它有以下優點:

            l        支持SQL;

            l        生產率高;

            l        性能好;

            l        可稱植性;

            l        ORACLE集成.

             

            2、             PL/SQL體系結構

            PL/SQL運行系統是種技術,不是一種獨立產品,可認為這種技術是PL/SQL塊和子程序的一種機,它可接收任何有效的PL/SQL塊或子程序。如圖所示:

             

             

            PL/SQL

                          PL/SQL

             

                                 

            PL/SQL

            過程性語句

            執行器

            SQL語句

             

             

             

             

             

             

             

             

             

             

             


            PL/SQL機可執行過程性語句,而將SQL語句發送到ORACLE服務器上的SQL語句執行器。在ORACLE預編譯程序或OCI程序中可嵌入無名的PL/SQL塊。如果ORACLE具有PROCEDURAL選件,有名的PL/SQL塊(子程序)可單獨編譯,永久地存儲在數據庫中,準備執行。

             

             

            3、             PL/SQL基礎:

            PL/SQL有一字符集、保留字、標點、數據類型、嚴密語法等,它與SQL有相同表示,現重點介紹。

            1)、數據類型:如下表所示

             

             

            數據類型

            子類型

            純量類型

            數值

            BINARY_INTEGER

            NATURAL,POSITIVE

            NUMBER

            DEC,DECIMAL,DOUBLE PRECISION,PLOAT,INTEGER,INT,NUMERIC,REAL,SMALLINT

            字符

            CHAR

            CHARACTER,STRING

            VARCHAR2

            VARCHAR

            LONG

             

            LONG RAW

             

            RAW

             

            RAWID

             

            邏輯

            BOOLEAN

             

            日期

            DATE

             

            組合

            類型

            記錄

            RECORD

             

            TABLE

             

             

            2)、變量和常量

            PL/SQL程序中可將值存儲在變量和常量中,當程序執行時,變量的值可以改變,而常量的值不能改變。

             

            3)、程序塊式結構:

            DECLARE

                    變量說明部分;

            BEGIN

                    執行語句部分;

            [EXCEPTION

                    例外處理部分;]

            END;

             

            4、             控制語句:

            分支語句:

            IF condition THEN

                    Sequence_of_statements;

            END IF;

             

            IF condition THEN

                    Sequence_of_statement1;

            ELSE

                    Sequence_of_statement2;

            END IF;

             

            IF condition1 THEN

                    Sequence_of_statement1;

            ELSIF condition2 THEN

                    Sequence_of_statement2;

            ELSIF condition3 THEN

                    Sequence_of_statement3;

            END IF;

             

             

            5、             循環語句:

            LOOP

                    Sequence_of_statements;

                    IF condition THEN

                           EXIT;

                    END IF;

            END LOOP;

                  WHILE condition LOOP

                    Sequence_of_statements;

            END LOOP;

             

            FOR counter IN lower_bound..higher_bound LOOP

                    Sequence_of_statements;

            END LOOP;

             

            6、             子程序:

            存儲過程:

                    CREATE PROCEDURE 過程名 (參數說明1,參數說明2 。。。) IS

                           [局部說明]

                    BEGIN

                           執行語句;

                    END 過程名;

             

            存儲函數:

                    CREATE FUNCTION 函數名 (參數說明1,參數說明2 。。。)

            RETURN 類型 IS

                           [局部說明]

                    BEGIN

                           執行語句;

                                 END 函數名;

            posted on 2007-12-29 17:25 閱讀(260) 評論(0)  編輯 收藏 引用

            亚洲色婷婷综合久久| 超级碰碰碰碰97久久久久| 一本大道久久香蕉成人网| 精品久久久久久中文字幕| 亚洲精品乱码久久久久久蜜桃图片| 久久久久久久久久久免费精品| 久久亚洲国产成人精品性色| 久久久噜噜噜久久中文字幕色伊伊 | 伊人久久大香线焦综合四虎| 久久精品中文騷妇女内射| 人妻精品久久久久中文字幕一冢本| 亚洲综合日韩久久成人AV| 精品多毛少妇人妻AV免费久久| 精品久久人人爽天天玩人人妻 | 久久午夜福利电影| 一本综合久久国产二区| 国内精品综合久久久40p| 亚洲AV无一区二区三区久久 | 久久人人爽人人爽人人片av高请| 成人久久免费网站| 国产精品久久国产精麻豆99网站| 国产精品成人99久久久久91gav| 国内精品久久久久影院网站| 日本精品一区二区久久久| 综合久久一区二区三区 | 精品久久久久久无码中文字幕一区 | 麻豆成人久久精品二区三区免费| 国产精品久久久福利| 理论片午午伦夜理片久久 | 香蕉久久夜色精品国产2020| 老色鬼久久亚洲AV综合| 狠狠色综合久久久久尤物| 久久无码专区国产精品发布| 久久国产乱子伦精品免费强| 久久综合九色综合欧美就去吻| 亚洲中文字幕无码久久精品1| 999久久久国产精品| 亚洲国产精品无码久久一区二区| 久久国产热这里只有精品| 久久99精品久久久久子伦| 日日狠狠久久偷偷色综合96蜜桃 |