oracle

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 3 password_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数据库中最重要组成部分,它提供了数据库的一些系统信息

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

管理表空间和数据文件



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值