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        同上(老数据类型)
        


    


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值