Oracle入門

一、Oracle初識
    1、oracle監聽配置                        ---->        作用:類似於Mysql的連接
        a、"開始" --> "所有程序" --> "Oracle..." --> "配置和移植工具" --> "Net manager"

        b、Oracle Net配置" --> "本地" --> "服務命名" --> "+"
            選項卡表單:網絡服務名:  連接時顯示的數據庫名    --->    類似於別名
                    通常是tcp/Ip協議
                    主機名和端口            --->    主機名爲Ip地址,端口默認1521
                    服務名                --->    要連接的數據庫(一個oracle可以配置多個實例,擁有多個數據庫)    

        c、Oracle Net配置" --> "本地" --> "監聽程序" --> "+" --> "添加地址" -->
           填寫地址表單(主機和端口)            --->    等價於Mysql連接表單 中的 主機和阜
            端口    --->    mysql:3306
                --->    oracle:1521
                --->    sqlserver:1433

        d、工具欄 ---> "文件" ---> "保存網絡設置"

        注:一個orcale實例分一個oracleserviceorcl 和 一個監聽 oracleoradb10g_home......listener;

            所以配置時,需要先配置一個oracle服務和一個監聽  第二步配置服務 第三部配置監聽

    2、Oracle數據庫結構
        a、所有的數據庫都有實例   --->    Sqlserver  我們使用的是默認實例
                        Mysql       使用的也是默認實例(就是mysql安裝完後  後面那些配置:比如日本語,classpath,賬戶密碼)

           數據庫的實例 我當前的理解是一個工作空間配置信息的集合。
           就像Myeclipse的配置一樣,每個工作空間有自己的配置, 並且可擁有多個工作空間(我們平常使用的默認工作空間); 數據庫也是一樣可以擁有多個實例.

        b、Oracle 每個實例只有一個數據庫    默認數據庫爲orcl

        c、表空間 --->    Oracle獨立提出概念,即多個表的集合    ====>    其他數據庫的 數據庫概念

        d、Object --->    跟其他數據庫一樣,就是表空間組成的對象,比如:表,視圖,索引,存儲工程,函數.......
        
        注:oracle認爲以數據庫爲單位,浪費資源.所以將數據庫分成多個表空間,在按角色-權限分配給用戶使用
                
    3、Oracle角色-權限-用戶                        ---->    三者關係參考bug系統,一樣
        a、角色:一些權限的集合                                --->    職位

        b、權限:功能的映射(可以是多個功能映射一個權限)                    --->    職位權力
            權限分等級:角色權限
                   系統權限
                   對象權限
    
        c、用戶:具體使用的賬戶(映射操作人)                        --->    工作人員
        
        d、系統自帶角色
            sysdba  系統管理員身份    --->    幾乎所有的權限                --->    董事長    

            sysoper 系統操作員身份    --->    比肩於系統管理員            --->    總裁(總經理,除了不能利用公司的資金給自己開公司外...)
                            不能創建刪除數據庫
                            不能更改字符集                    (類似總裁不能更改公司的經營範圍)
                                                    比如京東總裁不能說我京東不做電商了, 做房地產吧. 這事就不是他決定了
    
            normal  普通操作員身份    --->    自定義權限                --->    職工(不同職員擁有不同的權限)

            -----------------------------------------  上面爲登陸角色,下面爲授權角色  -----------------------------------------------------------
            connect            --->    是授予最終用戶的典型權利,最基本的角色
                ALTER SESSION --修改會話
                CREATE CLUSTER --建立聚簇
                CREATE DATABASE LINK --建立數據庫鏈接
                CREATE SEQUENCE --建立序列
                CREATE SESSION --建立會話
                CREATE SYNONYM --建立同義詞
                CREATE VIEW --建立視圖

            RESOURCE        --->    是授予開發人員的
                CREATE CLUSTER --建立聚簇
                CREATE PROCEDURE --建立過程
                CREATE SEQUENCE --建立序列
                CREATE TABLE --建表
                CREATE TRIGGER --建立觸發器
                CREATE TYPE --建立類型

            dba            --->    表空間的擁有者,表空間所有權限
        
        e、系統自帶用戶
            sys            --->    oracle最高權限用戶,有sysdba,sysoper角色    --->    公司所有者(簡稱老闆,boss)
                            登陸時也只能以sysdba,sysoper登陸,
                            不能使用normal角色登陸                (就像老闆不可能以職工的身份出現)

            system            --->    有sysdba,sysoper角色            --->    ***總裁
                            正常是sysoper角色,也能以sysdba登陸        總裁替代老闆發佈施令

            scott            --->    是個演示用戶,學習ORACLE用

    4、Oracle使用技巧
        a、創建用戶:create user 用戶名 identified by 密碼

        b、分配權限:
            grant connect,resource,dba to 用戶;                --->    

            grant insert,delete,update on 用戶.對象  to 角色;        --->    將某用戶的某個對象的增刪改權限分配給某個角色

        c、創建臨時表空間
            create temporary tablespace 表空間名 tempfile '存放地址.dbf' size 初始大小 autoextend on next 遞增大小 maxsize 上限大小 extent management local;
            
            存放地址: 絕對路徑,以.dbf爲後綴

           創建表空間
            create tablespace 表空間名 logging datafile '存放地址.dbf' size 初始大小 autoextend on next 遞增大小 maxsize 上限大小 extent management local;
            
           刪除表空間
            drop tablespace 表空間名 including contents and datafiles cascade constraints;
            注:刪除表空間之前要確認該表空間沒有被其他用戶使用之後再做刪除

           注:創建用戶前必須要先建好臨時表空間和數據表空間兩個表空間,否則用系統默認的表空間不好。

              臨時表空間,暫時可理解成緩存            

        d、創建用戶並指定表空間
            create user 用戶名 identified by 密碼 default tablespace 表空間 temporary tablespace 臨時表空間;

        e、刪除用戶以及用戶所有的對象
            drop user zfmi cascade;

    5、導入導出命令                        --->    oracle數據還原與備份
        a、exp命令可以把數據從遠程數據庫服務器導出到本地的dmp文件
    
        b、imp命令可以把dmp文件從本地導入到遠處的數據庫服務器中

        c、利用這個功能可以構建兩個相同的數據庫,一個用來測試,一個用來正式使用。

        d、數據導出:
            將數據庫TEST完全導出,用戶名system 密碼manager 導出到D:daochu.dmp中
            exp system/manager@TEST file=d:daochu.dmp full=y

            將數據庫中system用戶與sys用戶的表導出
               exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)

            將數據庫中的表inner_notify、notify_staff_relat導出
                exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)

            將數據庫中的表table1中的字段filed1以"00"打頭的數據導出
            exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'"

        e、數據的導入
            將D:daochu.dmp 中的數據導入 TEST數據庫中。
            imp system/manager@TEST file=d:daochu.dmp
            imp aichannel/aichannel@HUST full=y file=d:datanewsmgnt.dmp ignore=y
            上面可能有點問題,因爲有的表已經存在,然後它就報錯,對該表就不進行導入。在後面加上 ignore=y 就可以了。
    
            將d:daochu.dmp中的表table1 導入
            imp system/manager@TEST file=d:daochu.dmp tables=(table1)
        f、注意
            不少情況要先是將表徹底刪除,然後導入。
            操作者要有足夠的權限,權限不夠它會提示。

        g、授予用戶導入導出權限
            grant create user,drop user,alter user ,create any view,drop any view,
            EXP_FULL_DATABASE,IMP_FULL_DATABASE,
                  dba,connect,resource,create session to 用戶名字

二、ORACLE的數據類型
    1、常用數據類型
        字段類型     中文說明                     限制條件         其它說明
        -------------------------------------------  字符串數據類型 -------------------------------------------------------------
        CHAR        固定長度字符串                    最大長度2000 bytes    缺省爲1個字節(漢子2字節)
        VARCHAR2    可變長度的字符串                最大長度4000 bytes    索引的最大長度3209
        NCHAR        根據字符集而定的固定長度字符串            最大長度2000 bytes
        NVARCHAR2    根據字符集而定的可變長度字符串            最大長度4000 bytes

        -------------------------------------------  時間數據類型 ---------------------------------------------------------------
        DATE        日期(日-月-年)                DD-MM-YY(HH-MI-SS)    經過嚴格測試,無千蟲問題
        (9I後數據)
        TIMESTAMP    時間戳
        INTERVAL YEAR TO MONTH                        用於存儲一個時間段,由月份和年組成。需要 5B 來存儲
        INTERVAL DAY TO SECOND                        用於存儲一個時間段,由日和秒組成。需要 11B 來存儲

        
        -------------------------------------------  數字數據類型 ---------------------------------------------------------------
        NUMBER(P,S)    數字類型                    P爲整數位,S爲小數位
        DECIMAL(P,S)    數字類型                    P爲整數位,S爲小數位
        INTEGER        整數類型                    小的整數
        FLOAT        浮點數類型                    NUMBER(38),雙精度
        REAL        實數類型                    NUMBER(63),精度更高

        -------------------------------------  大型對象(LOB),用來保存較大的圖形文件或帶格式的文本文件 ---------------------------
        BLOB        二進制數據 最大長度4G                            (大數據類型)
        CLOB        字符數據 最大長度4G                            (大數據類型)
        NCLOB        根據字符集而定的字符數據            最大長度4G        (大數據類型)

        ------------------------------------------------  LOB數據類型 ------------------------------------------------------------
        ROWID        數據表中記錄的唯一行號                10 bytes        ********.****.****格式,*爲0或1
        NROWID        二進制數據表中記錄的唯一行號            最大長度4000 bytes

        ------------------------------------------------  外部數據 ---------------------------------------------------------------
        BFILE        存放在數據庫外的二進制數據            最大長度4G

        -------------------------------------------  老數據類型,將被大型對象替換 -------------------------------------------------
        LONG        超長字符串,可變長字符列                最大長度2G(231-1)    足夠存儲大部頭著作(老數據類型)
        RAW        固定長度的二進制數據                最大長度2000 bytes    可存放多媒體圖象聲音等(老數據類型)
        LONG RAW    可變長度的二進制數據                最大長度2G        同上(老數據類型)
        


    


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章