您的位置:首页 > 数据库 > Oracle

oracle

2016-06-08 00:34 357 查看

1.学会安装/启动/卸载oracle

1.oracle安装会自动的生成sys用户和systen用户
a.sys用户是超级用户,具有最高权限,具有sysdba角色,有create datatbase的权限,改用户的默认密码是manager
b.system用户是管理操作员,权限也很大,具有sysoper角色,没有create database的权限 ,默认密码是change_on_install

1.安装oralce11G

1.桌面版

1。首先将 Oracle 11g软件下载好,置于容量大的文件夹中:1.百度搜索“Oracle”,进入官网下载中心



2..选择”同意条款“并选择”11g
R2版本“下载,如未注册则要注册后才可下载文档。



3.解压两个压缩包到同一目录,即"database"。【/*如果在合并过程中提示有重复文件,则说明下载文件出问题了,请重新下载吧*/】然后右键”setup.exe“,点管理员身份运行(或者双击文件即可运行),如下图所示:







4.稍微等待一会,就会出现如下图所示的安装画面,取消下图所示的选中,然后单击"下一步"继续,同时在出现的信息提示框单击"是"继续。Oracle默认是选择基本安装。





5.之后就会出现安装选项对话框(”创建和配置数据库“),默认点击"下一步"继续。



6.之后会出现安装类型对话框,点击"下一步"继续,如果你想安装在Windows
Server上的话就选择”服务器类“。一般默认”桌面类(D)“即可。



7.然后就是安装配置,其他都默认即可,不用理会。注意:"管理口令"格式要至少包含一个大写字母,一个小写字母和一个数字,否则会提示警告,正确输入后点击"下一步"继续。###***不过可以选择全数字,如设:123456,只是多了一个”确认“步骤,如下图。***###











8.之后会出现"先决条件检查"对话框,选中"全部忽略"并单击"下一步"以继续。部分机器没有出现该画面,可直接忽略。



9.之后点击"完成"就开始安装了。接下来就是”安装产品“界面......





10.当上述进度到达100%时会出现线面的对话框,请耐心等待它完成。然后再弹出的确认对话框点击"确定"这时会回到主界面然后再单击"关闭"完成安装。/*注:可按照提示进行操作.*/

11.至此,Oracle11g R2已经安装完成,你可以在开始菜单->Oracle - OraDb11g_home1->Database Control - orcl中打开访问网址 .



12.登陆和查询:在连接身份里选择"SYSDBA",再用户名处输入"sys",密码为你最初设定的密码(如上:123456),点击"登陆"你就可以访问数据库及查询数据了。





3.服务版本

转载连(oralce服务类版本安装

1.打开相应的解压路径,找到安装文件“setup.exe”,双击进行安装,如下图所示



2 配置安全更新。电子邮件可写可不写,取消下面的“我希望通过My Oracle Support接受安全更新(W)”,如下图所示,单击下一步。



3.安装选项。直接选择默认的“创建和配置数据库”,如下图所示,单击下一步。



4. 系统类。由于咱们安装的是服务器,所以选择“服务器类”,如下图所示,单击下一步。



5.  
网格安装选项。选择“单实例数据库安装”,如下图所示,单击下一步。



6. 安装类型。选择“高级安装”,如下图所示,单击下一步。



7. 产品语言。直接默认即可(简体中文、英语),如下图所示,单击下一步。



8. 数据库版本。选择“企业版”,如下图所示,单击下一步。



9. 
安装位置。填入安装路径(只需要填“Oracle基目录”即可,“软件位置”会自动生成),如下图所示,单击下一步。



10. 配置类型。选择“一般用途/事务处理”,如下图所示,单击下一步。



11.数据库标识符。填入全局数据库名和SID,如下图所示,单击下一步。



12.配置选项。切换到“字符集”选项卡,选择“使用Unicode(AL32UTF8)”,如下图所示,单击下一步。



13. 管理选项。直接单击下一步,如下图所示。



14. 数据库存储。直接单击下一步,如下图所示。



15. 备份和恢复。如果需要对数据进行备份,就启用自动备份,小编这里选择“不启用自动备份”,如下图所示,单击下一步。



16. 方案口令。为了便于测试,这里使用了相同的密码,实际部署时可根据实际情况自行决定。



17.概要。完成先决条件检查后,单击完成就可以正式开始安装了,如下图所示,单击下一步。



18. 安装产品。安装完成后,会列出相关数据库配置清单,这个最好截图保存,如下图所示,单击确定



19. 完成。这时安装已完成,单击关闭即可


20. 测试一下。打开Oracle自带的SQL PLUS,如下图所示。



21.  输入用户名、密码(就是第18步设置的密码),测试成功!可以直接输入SQL语句了!需要注意的是,这里Oracle输入的口令是不显示的。



2.卸载oracle11G

1.停用oracle服务,进入计算机管理,在服务中,找到oracle开头的所有服务者,右击选择停用



2.在开始菜单中,找到universal installer,运行Oracle universal Installer,单击卸载产品找到Universal Installer



-





3.在产品清单窗口中,单击全部展开,除了OraDb11g_home1外,勾选其他项目,单击删除







4.打开运行窗口,输入regedit,打开注册表,依次展开HKEY_LOCAL_MACHINE\SOFTWARE,找到oracle,删除之









5.依次展开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services中,删除所有oracle开头的项





6.依次展开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application,删除所有oracle开头的项;在HKEY_CLASSES_ROOT,删除以ora开头的项





7. 重启电脑,删除oracle目录,删除Oracle的安装目录app等





来自百度经(oracle11G删除)

4.学会在oracle中编写简单的select语句

3.oracle用户管理

1、创建用户
* 在oracle中创建一个新的用户使用create user语句,一般具有dba(数据库管理员)的权限才能使用
create user 用户名 identified by 密码 
2、给自己修改密码
*如果给自己修改可以直接使用
sql>password 用户名
*如果给别人修改密码则需要具有dba的权限,或是拥有alter user系统权限
sql>alert user 用户名 identified by 新密码
3、删除用户
*一般以dba的身份删除用户,如果用其他用户去删除用户则需要具有drop user的权限
比如 drop user 用户名(cascade)
           *在删除用户的时,注意
如果要删除用户,已经创建了表,那么就需要在删除的时候带一个参数(cascade,注:表示级联删除该用户创建的表)
4.赋值权限
           *创建的新用户是没有任何权限,甚至登陆数据库的权限都没有,需要为其指定相应的权限。
给用户赋值一个权限使用命令grant,回收权限使用命令revoke 
sql>grant connect to 用户名
5.使用profile管理用户命令

   *profile是口令限制,资源限制的命令集合,当建立数据库时,oracle会自动建立名称为

     default的profile.
     当建立用户没有指定profile选项,那么orclae就会将default分配给用户

     
     a.指账号锁定(用户)登陆时最多可以输入密码的次数,也可以指定用户锁定的时(天)
      一般用dba的身份去执行该命令指定scott这个用户最多只能尝试3次登陆,锁定时间2天,让我看看怎么实现

      创建profile文件

       sql>create profile 函数名称 limit failed_login_attempts 3password_lock_time 2;(创建语言)

sql>alter user  用户 profile函数名称

     b.给用户解锁

    sql>alert user 用户 account unlock

     c.终止口令

    为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要DBA的身份来操作

     sql>create profile 函数名称 limit password_file_time 10 password_grace_time  2;

    sql>alter user  用户 profile 函数名称

    d.删除profile

    当不需要某个profile文件时,可以删除该文件。

    sql>drop profile  函数名称





4.oracle表的管理

1.连接命令
(1)conn[ect]
用法:从conn 用户名/密码@网络服务名 

2.建表规则

  (1).必须以字母开头
  (2).长度不能超过30字符

  (3).不能使用oracle的保留字

  (4).只能使用如下字符,A-Z,a-z,0-9,$,#等

3.数据类型

  字符型
  char     定长 最大 2000字符  例:char(10) '小寒'  前面四个字符放'小寒',后面填6个空格补全(查询速度极快)

  varchar2 (20) 变长  最大4000字符. 例:oralce 分配4个字符。这样可以节省空间
  clob  字符型大对象,最大 4G
 

  数值型
  number 范围  -10的38次方 10的38次方表示整数 可以表示整数,也可以表示小数 

  number(5,2)
 表示一个小数有5位有效数,2位小数
 范围 -999.99——999.99

 number(5)

 表示一个5位整数
 范围:-99999——99999

 日期类型
 date  包含年月日和时分秒
 
 timestamp 这是对date数据库的扩展

 二进制 (图片,声音,MP3,MP4等等)

 blob 二进制数据  可以存放图片/声音 等等

4.表的创建
create table 表名(
xxxx  number(2),

);

5,插入语句
insert into student values(1,'xx','xx');

6.oracle日期格式处理
  oracle中默认的日期格式 ‘DD-MON-YY’ dd(天),mon 月份 yy 2位 的年 ‘09-6月-99’
 如果需要存储自己想要的日期格式就需要,更改默认日期格式
alert session set nls_date_format = 'yyyy-mm-dd';

7.自连接(关键)
自己表连接自己表的查询

select boos.ename,work.ename from emp boos join emp word on work on work.mgr = boos.work

约束

1、not null

2、unique
3、primary key

4、foreign key

5、check

索引

   使用原则

       1、在大表上建立索引才有意义
       2、在where字句或是连接条件上经常引用的列上建立索引

       3,、索引的层次不要超过4层

 

   1、单列索引

        单列索引是基于单个列所建立的索引,比如:
        create index 索引名 on 表名 (列名)条件 
如果说经常在name 作为的,就可以建立索引
select * from user where name = 'zxc';
create index nameIndex on user(name)

   2、复合索引
         复合索引是基于两列或是多列的索引。

         在同一张表上可以有多个索引,但是要求列的组合必须不同比如:

         create index emp_indx1 on 表名 (列名,列名);

 

    3、索引的缺点
          1、建立索引,系统要占用大约的1.2倍的硬盘和内存空间
          2、更新数据的时候,系统必须要有额外的时间同时对索引进行更新、

          3、很少或 从不引用的字段;

          4,、逻辑性的字段,如 男或女,是或否等

 pl/sql编程

 
    1、pl/sql(procedural language/sql)是oracle在标准的sql语言上,pl/sql不仅允许嵌入sql语言
         ,还可以定义变量和常量,允许使用条件语句和循环语句,允许使用列外处理各种错误,这样
         使的它功能变得更加强大

    2、过程,函数,触发器是pl/sql编写。过程函数,触发器是在oralce中

         pl/sql是非常强大的数据库过程语言,过程,函数可以再java程序中调用

   


 
 存储过程创建

 create procedure 过程名称 is 
begin

##执行部分

insert into mytest values('ssss','sssss');
end;
或者

create or replacp(替换的意思) procedure  is ...
  2、调用存储过程

   exec 过程名称  或者call 过程名称
 
  3、标识符的命名规范

    1)定义变量时,建议用v_作为前缀  v_sal

    2)定义常量时,建议用c_作为前缀 c_rate
    3)定义游标时,建议用  _cursor作为后缀 emp_cursor;

    4)定义列外时,建议用e_作为前缀 e_error

  4、块结构示意图
    pl/sql块由三个部分构成:定义部分、执行部分、列外处理部分
    declear

    /*定义部分 ----------定义常量、变量、游标、例外、复杂数据类型
    begin
    /*执行部分-----------要执行的pl/sql语句和sql语句

   exception

   /*例外处理部分------处理运行的各种错误

  end

 

  5.相关说明 
  set serveroutput on ---打开输出选项

  begin

     dbms_output.put_line('hello');

  end;

   
  相关说明

   dbms_output是oracle所提供的包 (类型java的开发包),该包包含一些过程,put_line就是dbms_output_put_line包含的一个过程

   6,案例2-包含第一部分和执行部分的pl/sql块

   declare
      v_ename varchar2(25) 

    begin 

      select ename into v_ename(是指ename查出来的值放在 v_ename里面去) from emp where empno =&no;(控制台接收参数)

      dbms_output.put_line(v_eame);(打印在控制台)

    end;

  7.实例3-包含定义部分、执行部分和例外处理部分

   为了避免pl/sql程序运行错误,提高pl/sql的健壮性,应该错误进行处理,这个很有必要

    比如在实例2中输入了不存在的雇员号,应该做例外处理

    异常处理部分

 declare
      v_ename varchar2(25) 

    begin 

      select ename into v_ename(是指ename查出来的值放在 v_ename里面去) from emp where empno =&no;(控制台接收参数)

      dbms_output.put_line(v_eame);(打印在控制台)

    exception

       when no_data_found then 
       dbms_output.put_line('错误');

    end;

  8.过程

     过程用户执行特定的操作,当建立过程时,既可以指定输入参数,

    也可以指定输出参数,通过在过程中使用输入参数,可以将数据传递到执行部分;

    通过使用输出参数,可以执行部分的数据传递到应用环境

    create procedure命令来建立过程

  9.案列4
  create procedure update_emp(spName varchar2,newSal number) is 

 begin

----执行部分,更具用户名去修改工资

update emp set sal=newSal where ename = spName;
end;

call('SCOTT',500);

  10.函数
  函数用户返回特定的数据,当建立函数时,在函数头部必须包含return字句

  而在函数体内必须包含return 语句返回的数据。我们可以使用 create function来建立函数

  

  函数案例 ---输入雇员的姓名,返回该雇员的年薪
 

  create function (创建一个函数) sp_fun2(函数名称)(spName varchar2) 
  return number is yearSal number(7,2) ---返回一个yearSal

  begin 

  ----执行部分

  select sal*12+nvl(comm,0)*12 into yearsal from emp where ename =spName

  return yearSal;
  end;

  函数调用

  在sqlplus中调用函数

  首先创建一个变量

  var sal number;

  call 函数名('SCOTT')  into:sal

  在java调用函数自行百度
  

  11.包
    创建包

    创建一个包 sp_package

    声明该包有一个过程 update_sal (没有实现)

    声明该包有一个函数 update_name (返回一个number)

    create package sp_package is 

       procedure update_sal(name varchar2,newsal number);
       function    update_name(name varchar2) return number;
    end;

     包的规范只包含了过程和函数的说明,但是没有过程和函数的实现码。

     包体用于实现包的规范中的过程和函数,

     包建好,再建立包体可以使用 create package body命令

      实现包体,(把包里面的过程和函数,都实现)
     


     3.如何调用包的过程或是函数

     当调用包的过程或函数时候,在过程和函数前需要带包名

     call 包名.函数名称(‘参数’);

    12.触发器

    触发器是值隐含的执行的存储过程,当定义触发器时,必须要指定

    13.在编写pl/sql程序时,可以定义变量和变量和常量;在pl/sql
    程序中有:

       标量类型

          在编写pl/sql块时,如果使用变量,需在定义部分定义变量。

          pl/sql中定义变量和常量的语法如:

          indentifier [ constant ] datatype [not null] [:= 丨default expr ]
  indentifier名称 

          constant 指定常量 需要指定他的初始值,并且值不能修改
          datatype  数据类型

          not null:指定变量值不能是null

          := 给变量或是常量指定初始值

          default  用于指定初始值

          expr:指定初始值的pl/sql表达式,可是文本值,其他变量,函数等

           

          案例
   定义一个变长字符串

          v_ename   varchar2(10)'

         定义一个小数,范围 -9999.99-9999.99

          v_sal  number(6,2);

         定义一个小数并给一个初始值5.4:=是plsql的赋值号

         v_sal2 number(6,2):=5.4

          定义一个日期类型数据
         v_hiredate date;

          定义一个布尔变量,不能位null ,初始值为false

         v_valid  boolean not null default false;  

       


       标量---最好使用%type类型

       就是如果员工的姓名超过了5字符,就会有错误,为了降低pl/sql程序的维护工作量,可以使用%type属性定义变量
       这样(变量) 会按照数据库列来确定你定义的变量的类型和长度
       


       复合类型
         用于存放多个值的变量。包括这几种:

            pl/sql记录

                


              


 8、使用%ROWTYPE
    使用%ROWTYEP声明一个记录型变量,可以使它的类型与某个基本表的数据结构一致。
例1:
DECLARE

  A EMP%ROWTYPE;

BEGIN

  SELECT ENAME,JOB,HIREDATE INTO A.ENAME,A.JOB,A.HIREDATE

    FROM EMP

      WHERE EMPNO=7369;

  DBMS_OUTPUT.put_line(A.ENAME||' , '||A.JOB||' , '||A.HIREDATE);

END;
输出:SMITH , CLERK , 17-12月-80

            pl/sql表
                     


                    


            嵌套表 用的少,自己百度

            varray  用的少,自己百度
       参照类型
           


           


          案例1
         


       lob
      

       13.控制语句
       1)使用各种if语句
                条件分支语句

                if----then, if-----then----else, if------then-----elsif-----else
               


               案例1

               


               案例2
               


               案例3
                  


                 案例

                 


       
        2)使用循环语句

              


       


while循环
                


       


      
       


        3)使用控制语句 ---- goto 和 null;

         


 
        


       无返回值的过程:案例一

       


         创建book表

          create table book(bookId number,bookName varchar2(50),publishHouse varchar2(50))

       


      案例2
      


     


      


      案例3

       




 
      


     


     

】】

       分页的存储过程
        


       第一步


      第二步

 
                


            第三 java测试是否能调用存储过程

             




    列外处理(异常处理)

    


    预定义列外
    


   


   如果工资 是3000没有默认的入口,就抛出例外
   


   




    


   


  


  


  自定义列外

  




  

   视图

    


   




子查询扩展

    单行子查询

    

    多行子查询
    from字句后面跟子查询
   oralce分页查询一共三种方式

  

  1.rownum分页 
  select * from (
select  a1.* , rownum fn from  (
select  *  from emp) a1 where rownum = 10 )
where rn = 6;

   2.rownum 显示行列 (oralce自带的机制)

合并查询

有时在实际应用中,为了合并多个select 语句的结果,可以使用union,union all,intersect,minus

1 )union 该操作符用于取得两个结果集的并集。当使用该操作符时,会自动去掉结果集中重复行

2)union all 不会去掉重复的行

3)intersect 取两个集合的交集

4)minus 取两个的集合差集

to_date函数,插入日期值会用到 to_date('日期变量','yyyy-mm-dd');

日期函数

1.sysdate 该函数返回系统时间

2.add _months ()  

3.last_day(d) 返回指定日期所在月份的最后一天

4. to_char(d,'')  转成字符类型  select  to_char(date,'yyyy-mm-dd  hh12:mi:ss'); 

数据库管理员



数据库(表)的逻辑备份与恢复

数据字典和动态能视图

    数据字典是oracle数据库中最重要组成部分,它提供了数据库的一些系统信息

    动态视图记载了例程启动后相关信息

管理表空间和数据文件


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: