zoukankan      html  css  js  c++  java
  • oracle 11g,12c安装+配置,plsql 13安装+激活

    oracle12c下载地址

    oracle12c安装教程

    Oracle 11g R2 Client(64bit)的下载与安装(图文详解)物理内存检查失败解决步骤

    PLSQL Developer 11安装与配置

    listener.ora、sqlnet.ora、tnsnames.ora 配置   tnsping 服务名

    Oracle11g 客户端与服务器端配置

    sqlnet.ora 配置

    plsql13.0下载地址

    PLSQL13.0.0.1882 注册码:

    产品号/product code: 4vkjwhfeh3ufnqnmpr9brvcuyujrx3n3le 
    序列号/serial Number:226959 
    密码/password: xs374ca

    kfsvzt6zh2exaxzxgjk44rv5kp2yp68vgk   、186220、xs374ca

    plsql v12汉化包下载地址:可汉化12.0及以上版本(安装到plsqldev.exe同级目录下)

    汉化教程

    PLSQL远程连接Oracle数据库

    oracle常用的快捷键

    ORA-12541:TNS:no listener 解决方法   cmd: lsnrctl start

    ORA-12541: TNS: 无监听程序 的解决办法

      修改配置文件信息

    将两个文件中的 HOST=192.168.78.138(当然这个是我的地址),全改为 " HOST=localhost " 。

    listener.ora 文件修改后,如下图:

    tnsnames.ora 文件修改后,如下图:

     以上两个配置文件修改完成后,Ctrl + R 在弹出框中输入 " SERVICES.MSC " ,找到Oracle的服务(OracleService)和 Oralce 监听服务 (OracleOraDb10g_homeTNLListener
    注意:先停止,然后再启动

      修改字符集 

    设定NLS_LANG有三种方法:

    a) 修改注册表:  运行>regedit>将HKLOCAL_MACHINESOFTWAREORACLEKEY_ORACLECLENT_HOME1下NLS_LANG键值改为你要设定的字符集,如将SIMPLIFIED CHINESE_CHINA.ZHS16GBK改为:SIMPLIFIED CHINESE_CHINA.AL32UTF8。这种做法如果无效,即使重新启动机器后,也没有生效,NLS_LANG仍使用当初安装时的OS字符集,就试用第个方法。

    b) 设定环境变量:  在My Computer->Properties->Advanced->Environment Variables->System Variables 新增环境变量设置,如:Variable name=NLS_LANG,Variable Value= SIMPLIFIED CHINESE_CHINA.AL32UTF8。这样NLS_LANG字符集为UTF8,这个NLS_LANG优先序高于注册表中的NLS。注意:环境变量设在系统变量中(System Vairables),而不是用户变量(User Vairables)。

    c) 在应用程序运行的Process Session中设定:  在程序运行之前,先通过set NLS_LANG=进程Session的字符集。例如:Echo %nls_lang%,在这个session中,已经设定NLS_LANG字符集为ZHS16GBK。同样,你也可以新开一个CMD窗口,设定另一种NLS_LANG字符集。这种在session中设定NLS_LANG的优先序高于系统环境变量NLS_LANG。

       查看数据库信息

    1、查询oracle中所有用户信息
    
    select * from dba_users;
    2、只查询用户和密码
    
    select username,password from dba_users;
    3、查询当前用户信息
    
    select * from dba_ustats;
    
    4、查询用户可以访问的视图文本
    
    select * from dba_varrays;
    
    5、查看用户或角色所拥有的角色
    
    select * from dba_role_privs;   
    
    select * from user_role_privs;
    
    6、查看用户或角色系统权限(直接赋值给用户或角色的系统权限)
    
    select * from dba_sys_privs;   
    
    select * from user_sys_privs; (查看当前用户所拥有的权限)
    

      修改用户名   (详见链接页面)

    sqlplus / as sysdba
    sqlplus /nolog
    conn test/test@172.0.0.1:1521/orcl
    select * from sys.user$;
    UPDATE USER$ SET NAME='新用户名' WHERE USER#=38;
    COMMIT;
    ALTER SYSTEM FLUSH SHARED_POOL;
    ALTER USER 新用户名 IDENTIFIED BY 新密码;
    CONN 新用户/新密码@lmisdx_local;
    

      oracle 建新用户

    sqlplus/ as sysdba

    -- create new user CREATE USER test IDENTIFIED BY t123; -- grant priviledges GRANT CONNECT, RESOURCE, DBA TO test; --alter password alter user test identified by t123; --oracle对表空间 USERS 无权限 alter user 用户名 quota unlimited on users; --删除用户 drop user 用户名 cascade; ---cascade 级联 --授予权限 -- 分配用户 Sam 创建表,创建序列,创建存储过程和创建视图的权限 grant create table,create sequence,create view,create procedure, update to test --去除用户权限 -- 去除用户 Sam 创建视图的权限 revoke create view from test;

      建表

    CREATE TABLE order_items
      (
        order_id   NUMBER( 12, 0 )                                , -- fk
        item_id    NUMBER( 12, 0 )                                ,
        product_id NUMBER( 12, 0 ) NOT NULL                       , -- fk
        quantity   NUMBER( 8, 2 ) NOT NULL                        ,
        unit_price NUMBER( 8, 2 ) NOT NULL                        ,    
        CONSTRAINT pk_order_items 
          PRIMARY KEY( order_id, item_id ),    
        CONSTRAINT fk_order_items_products 
          FOREIGN KEY( product_id )
          REFERENCES products( product_id ) 
          ON DELETE CASCADE,    
        CONSTRAINT fk_order_items_orders 
          FOREIGN KEY( order_id )
          REFERENCES orders( order_id ) 
          ON DELETE CASCADE
      );
    

      插入数据:

    --------------------------------------------------------------------------------------
    -- Name	       : OT (Oracle Tutorial) Sample Database
    -- Link	       : http://www.oracletutorial.com/oracle-sample-database/
    -- Version     : 1.0
    -- Last Updated: July-28-2017
    -- Copyright   : Copyright ?2017 by www.oracletutorial.com. All Rights Reserved.
    -- Notice      : Use this sample database for the educational purpose only.
    --               Credit the site oracletutorial.com explitly in your materials that
    --               use this sample database.
    --------------------------------------------------------------------------------------
    -- disable FK constraints 
    ALTER TABLE order_items DISABLE CONSTRAINT fk_order_items_products;
    ALTER TABLE order_items DISABLE CONSTRAINT fk_order_items_orders;
    --------------------------------------------------------
    --  OT
    --------------------------------------------------------
    REM INSERTING into OT.ORDER_ITEMS
    SET DEFINE OFF;
    Insert into OT.ORDER_ITEMS (ORDER_ID,ITEM_ID,PRODUCT_ID,QUANTITY,UNIT_PRICE) values (70,7,32,132,469.99);
    Insert into OT.ORDER_ITEMS (ORDER_ID,ITEM_ID,PRODUCT_ID,QUANTITY,UNIT_PRICE) values (73,5,192,124,519.99);
    
    -- enable FK constraints
    ALTER TABLE order_items ENABLE CONSTRAINT fk_order_items_products;
    ALTER TABLE order_items ENABLE CONSTRAINT fk_order_items_orders;
    

      数据update

    一、标准update语法(常用、速度可能最慢)
    -- 当更新的表示单个或者被更新的字段不需要关联表带过来,此法是最好的选择。
    update  a 
    set a.c2= (select b.c2from  b where a.c1=b.c1)
    where exists   (select 1 from   b where a.c1=b.c1)
    
    二、内联视图更新(关联主键字段,速度较快)
    -- inline view更新法就是更新一个临时建立的视图。
    -- 方案:更新一个临时建立的视图。要求B表的主键字段必须在where条件中,并且是以=号来关联被更新表。
    update (select a.c2 as ac2,b.c2 as bc2 from a, b where a.c1=b.c1 and a.c3=’2011’) as M 
    set ac2=bc2
    
    三、merge更新法 (关联字段非主键时,速度较快)
    merge是oracle特有的语句,语法如下:
    MERGE INTO table_name alias1 --主表,即需要被修改的表
    USING (table | view | sub_query) alias2 --从表,即来源表
    ON (join condition) --连接条件
    WHEN MATCHED THEN --在匹配的记录中进行
      UPDATE table_name SET col1 = col_val1, col2 = col2_val --更改主表信息
    WHEN NOT MATCHED THEN --在不匹配的情况下,筛选从表记录插入到主表【可选】
      INSERT (column_list) VALUES (column_values);
    
    merge into a
    using b 
     on (a.c1=b.c1 and a.c3=’2011’)
       when matched then
    update a.c2=b.c2
    
    四、快速游标更新法(复杂逻辑时,效率很高)
    begin
        for cur in (select a.rowid  ,b.c2 from  a, b where a.c1=b.c1 and a.c3=’2011’ )  loop
            UPDATE a  set c2=cur.c2  where rowid=cur.rowid;
        end loop;
    end;
    

      删表

    # 删表
    DROP TABLE ot.order_items; 
    # 删行
    delete from 表名 where 条件
    

      基本操作

    constraint ca_pk primary key()
    constraint c2 foreign key () references b()
    
    select a,b, row_number() over(partition by a order by b) as c from aaa group by a
    
    select a,b,rownum as id from aaa
    
    update AAA set B=B*0.1;
    commit;
    
    update aaa set b=rownum where a='x';
    commit;
    
    update a
    set (x,y)=(select x,f from a,b where a.id=b.id)
    where exists(select 1 from a,b where a.id=b.id)
    
    merge into a
    using b
    on 
    when matched then
     update b set 
    when not matched then
    	insert () values()
    
    insert into aaa(a,b)
    values( 'z', 1);
    commit;
    
    insert into aaa(a,b)
    (
    select a, (select avg(b) from aaa)
    from aaa
    where a <> 'x'
    );
    commit;
    

      经典例题

    -- 查找与001号同学所学课程完全相同的其他同学的学号和姓名
    select t4.sid, t4.name
    from (
    	select sid, count(1) c1 
    	from course t 
    	where c1.sid <> '001'
    	group by c1.sid
    ) t1, (
    	select sid, count(1) as c2
    	from course t
    	where cid in (select cid from course where sid='001')
    	group by sid
    ) t2, (
    	select count(1) c3 
    	from course t
    	where sid='001'
    ) t3, (
    	select sid, name 
    	from student t
    ) t4
    where t1.sid = t2.sid and t1.c1 = t2.c2 and t1.c1 = t3.c3 and t1.sid = t4.sid
    

      参考资料:

    ORACLE 中的union(去重并集),union all(不去重并集),intersect(交集),minus(减集)

  • 相关阅读:
    Django的路由层 路由控制之有名分组
    Django的路由层 路由控制之简单配置
    django 静态文件配置
    基于Django实现的一个简单示例
    Java线程池Executor
    Java 多线程Thread
    Java 异常
    Elementary OS 使用fcitx安装搜狗词库、搜狗输入法(Ubuntu通用)
    Elementary OS常见软件(TIM、微信、企业微信)安装(二)
    dpkg 批量卸载
  • 原文地址:https://www.cnblogs.com/iupoint/p/10245544.html
Copyright © 2011-2022 走看看