• 复习2


    5

    SQL> /*
    DOC> 1.用自己的语言描述oracle体系结构。
    DOC>    答:oracle的体系结构包括以下几个方面:
    DOC>     A.数据库
    DOC>        数据库是一个数据的集合,不仅是指物理上的数据,也指物理,存储进程对象的一个组合。
    DOC>     B.oracle存储结构
    DOC>       分为逻辑存储结构和物理存储结构
    DOC>      1)逻辑存储结构:单元类型为块(Block),它是oracle用来管理存储空间的最基本单元;区(Extent),由一系列连续的块组成;段(Segment)由多个区组成,可以是连续的或者不连续的.表空间(Tablespace),是最高级别的逻辑存储结构
    DOC>      2)物理存储结构:物理文件类型:数据文件,控制文件,重做日志文件
    DOC>     C.oracle软件结构:
    DOC>        a)实例:由实例内存结构和实例进程结构组成
    DOC>        b)数据库的操作模式:专用服务器模式,共享服务器模式
    DOC>        c)实例的内存结构:SGA区,PGA区
    DOC>        d)实例进程结构:用户进程,oracle进程
    DOC>        e)后台进程:数据库写进程(DBWR),日志写进程(LGWR),检查点进程(CKPT),系统监视进程(SMON),进程监视进程(PMON),归档进程(ARCn),调度程序进程(Dnnn)
    DOC>*/
    SQL>
    SQL> /*
    DOC>2.oracle启动过程(三个阶段)的操作(SQL语句),在每个过程中oracle与SGA、物理存储结构的文件之间的关系;并简单描述每个阶段中DBA可对oracle进行哪些管理?
    DOC>答:oracle启动过程的三个阶段分别是:启动实例,装载数据库,打开数据库.
    DOC>     A.启动实例:startup  nomount;
    DOC>        主要完成以下工作:1)读取初始化参数文件;2)分配系统全局区;3)启动后台进程;4)打开alertSID.log文件和跟踪文件.读取初始化参数文件顺序:spfileSID.ora,spfile.ora,initSID.ora
    DOC>      必须在此启动模式下才能进行的操作是:创建新数据库和重建控制文件
    DOC>     B.装载数据库:startup mount;
    DOC>         主要完成以下工作:1)将数据库与一个已打开的实例关联起来;2)打开初始化参数文件中指定的控制文件;3)根据控制文件获得数据文件和重做日志文件的名称和状态
    DOC>       必须在此启动模式下进行的操作是:重命名数据文件,添加,删除或重命名重做日志文件,执行数据库完全恢复操作,改变数据库的归档模式
    DOC>     C.打开数据库:startup open; 或者是startup;
    DOC>         主要完成的工作:1)打开数据文件;2)打开联机重做日志文件
    DOC>      在startup 模式下,任何具有create session权限的用户都可以连接到数据库;进行常规数据库操作
    DOC>*/
    SQL>
    SQL>
    SQL> --3.请配置一个用自己的名字作为连接标识符,并提供连接描述符;用户Scott、密码tiger与配置的连接标识符连接数据库,并把自己的名字插入到表dept,然后事务递交,并将该表进行查询。
    SQL> conn scott/tiger@zhusina
    已连接。
    SQL> conn scott/tiger@(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 20090612-2224)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = chanel)));
    已连接。
    SQL> select * from dept;

        DEPTNO DNAME          LOC                                                  
    ---------- -------------- -------------                                        
            10 ACCOUNTING     NEW YORK                                             
            20 RESEARCH       DALLAS                                               
            30 SALES          CHICAGO                                              
            40 OPERATIONS     BOSTON                                               

    SQL> insert into dept values(50,'zhusina','guangzhou');

    已创建 1 行。

    SQL> select * from dept;

        DEPTNO DNAME          LOC                                                  
    ---------- -------------- -------------                                        
            10 ACCOUNTING     NEW YORK                                             
            20 RESEARCH       DALLAS                                               
            30 SALES          CHICAGO                                              
            40 OPERATIONS     BOSTON                                               
            50 zhusina        guangzhou                                            

    SQL> commit;

    提交完成。

    SQL> select* from dept;

        DEPTNO DNAME          LOC                                                  
    ---------- -------------- -------------                                        
            10 ACCOUNTING     NEW YORK                                             
            20 RESEARCH       DALLAS                                               
            30 SALES          CHICAGO                                              
            40 OPERATIONS     BOSTON                                               
            50 zhusina        guangzhou                                            

    SQL> spool off;

    5

    SQL> /*
    DOC>1.用自己的语言描述oracle数据库表空间的类型及其作用;讲述表空间与数据文件的关系、表空间的两种管
    DOC>理方式的优缺点;使用自己的名字创建一个本地管理的用户表空间;使用自己的学号创建一个字典管理的表
    DOC>空间,存储参数:第一个区是64K,第二个区是 128,区的增长率为50%,第三个区的大小应该是多少?
    DOC>(提示:当数据库的system表空间为字典管理时,用户表空间才可以用字典管理方式创建;如果不能创建,
    DOC>要求SQL语法正确)
    DOC>
    DOC>
    DOC>答:oracle数据库表空间的类型及其作用:
    DOC>oracle数据库表空间可以简单地分为系统表空间和非系统表空间.
    DOC>系统表空间是在创建数据库时一同创建的,它用于存储数据字典对象,并且包含了系统回滚段,它也可以存储用
    DOC>户数据(oracle不建议将用户数据存储在系统表空间);
    DOC>非系统表空间可以分为以下三类:永久表空间,临时表空间,还原表空间
    DOC>永久表空间用于存储用户数据
    DOC>临时表空间用于存储临时数据
    DOC>还原表空间用于自动还原管理,它包含了回滚记录
    DOC>
    DOC>表空间与数据文件的关系
    DOC>一个表空间可以拥有一个或多个数据文件.一个数据文件只能属于一个表空间.
    DOC>表空间的两种管理方式的优缺点:
    DOC>表空间有两种管理方式,分别是数据字典管理方式和本地管理方式
    DOC>在字典管理方式下,表空间中所有存储空间的管理信息都保存在数据字典中,对表空间进行存储空间的分配
    DOC>与回收时,会在数据库中产生读写操作.也就是说字典管理方式的表空间在进行存储空间管理时会产生回退
    DOC>和重做记录;而在本地管理方式下,表空间中所有存储空间的管理信息都保存在数据文件头部的“位图”中。与
    DOC>字典管理方式相比,本地管理方式更便于DBA的维护工作,并且大部分情况下能获得更好的性能.本地管理方式
    DOC>表空间有如下优点:
    DOC>1.由于在表空间的存储分配过程中不需要访问数据库(只是简单的改变数据文件中的位图),能够提高存储分配
    DOC>操作的速度.
    DOC>2.能够避免在表空间的存储管理操作中产生的递归现象,优化了存储管理操作的性能.
    DOC>3.本地管理的临时表空间在使用过程中不会产生任何重做信息和撤销信息.
    DOC>4.简化DBA对空间的存储管理操作.
    DOC>5.降低用户对数据字典的依赖性.
    DOC>*/
    SQL>
    SQL> --创建本地管理的用户表空间:
    SQL> create tablespace tbs5 datafile'C:\oracle\oradata\abc\tbs5.dbf' size 10m
      2  extent management local
      3  autoallocate
      4  segment space management auto;

    表空间已创建。

    SQL> /*
    DOC>使用自己的学号创建一个字典管理的表空间,存储参数:第一个区是64K,第二个区是 128,区的增长率为
    DOC>50%,第三个区的大小应该是多少?
    DOC>答: 第三个区的大小应该为192K.
    DOC>*/
    SQL>
    SQL> create tablespace zsn0730102138 datafile'C:\oracle\oradata\abc\zsn0730102138.dbf' size 10m
      2  default storage(initial 64k
      3                  next 128k
      4                  minextents 2
      5                  pctincrease 50
      6                  maxextents 4096)
      7  extent management dictionary;
    create tablespace zsn0730102138 datafile'C:\oracle\oradata\abc\zsn0730102138.dbf' size 10m
    *
    ERROR 位于第 1 行:
    ORA-12913: 无法创建字典管理的表空间


    SQL> /*
    DOC>2. 用自己的语言描述数据的完整性,以及数据的完整性如何得到保证,请一一举例.
    DOC>答:约束是实施数据完整性的标准方法.在oracle中有以下约束:主键约束,外键约束,默认约束,唯一性约
    DOC>束,check约束,NOT NULL.以下的例子就能证明这些约束能保证数据的完整性
    DOC>*/
    SQL>
    SQL> create table customers
      2  (customer# number(4) constraint pk_cus primary key, --主键约束
      3   lastname varchar(10),
      4   firstname varchar(10),
      5  address varchar(50),
      6   city varchar(30),
      7   state varchar(20),
      8  zip char(5))
      9  tablespace users;

    表已创建。

    SQL> insert into customers values(1001,'morales','bonita','p.o. box 651','eastpoint','fl','32328');

    已创建 1 行。

    SQL> insert into customers values(1002,'thompson','ryan','p.o. box 9835','santamonica','ca','90404');

    已创建 1 行。

    SQL> insert into customers values(1003,'SMITH', 'LEILA', 'P.O. BOX 66', 'TALLAHASSEE', 'FL', '32306');

    已创建 1 行。

    SQL> create table orders
      2  (order# number(4) constraint pk_order primary key,
      3  customer# number(4) not null constraint fk_cus references customers(customer#),
      4  --not null约束和外键约束
      5  orderdate date,
      6  shipdate date constraint ck_date check (shipdate< to_date('2007-01-01','yyyy-mm-dd')),
      7  --check约束
      8  shipcountry varchar(20)  default 'usa')
      9  storage
     10   (initial 64k
     11    next 64k
     12   maxextents 10
     13  pctincrease 50);

    表已创建。

    SQL> insert into orders values(1000,1001,'31-3月-03','02-4月-03','usa');

    已创建 1 行。

    SQL>  insert into orders values(1001,1002,'31-3月-03','01-4月-03','germany');

    已创建 1 行。

    SQL>  insert into orders values(1002,1003,'04-4月-03','05-4月-03','uk');

    已创建 1 行。

    SQL>  insert into orders values(1003,1004,'05-4月-02','20-4月-08','cn');
     insert into orders values(1003,1004,'05-4月-02','20-4月-08','cn')
    *
    ERROR 位于第 1 行:
    ORA-02290: 违反检查约束条件 (SYS.CK_DATE)


    SQL> --这里违反了check约束,shipdate的值大于了2007年01月01
    SQL> ed
    已写入文件 afiedt.buf

      1*  insert into orders values(1003,1004,'05-4月-02','20-4月-06','cn')
    SQL> /
     insert into orders values(1003,1004,'05-4月-02','20-4月-06','cn')
    *
    ERROR 位于第 1 行:
    ORA-02291: 违反完整约束条件 (SYS.FK_CUS) - 未找到父项关键字


    SQL> --这里违反customer#作为customer表的主键,不能为空
    SQL> ed
    已写入文件 afiedt.buf

      1*  insert into orders values(1003,1001,'05-4月-02','20-4月-06','cn')
    SQL> /

    已创建 1 行。

    SQL> ed
    已写入文件 afiedt.buf

      1*  insert into orders values(1000,1001,'05-4月-02','20-4月-06','cn')
    SQL> /
     insert into orders values(1000,1001,'05-4月-02','20-4月-06','cn')
    *
    ERROR 位于第 1 行:
    ORA-00001: 违反唯一约束条件 (SYS.PK_ORDER)


    SQL> --违反了主键的唯一性
    SQL>  insert into orders(order#,customer#,orderdate,shipdate)values(1006,1003,'01-1月-01','02-1月-02');

    已创建 1 行。

    SQL> select * from orders;

        ORDER#  CUSTOMER# ORDERDATE  SHIPDATE   SHIPCOUNTRY                        
    ---------- ---------- ---------- ---------- --------------------               
          1000       1001 31-3月 -03 02-4月 -03 usa                                
          1001       1002 31-3月 -03 01-4月 -03 germany                            
          1002       1003 04-4月 -03 05-4月 -03 uk                                 
          1003       1001 05-4月 -02 20-4月 -06 cn                                 
          1006       1003 01-1月 -01 02-1月 -02 usa                                

    SQL> --在这里可以看到插入shipdate的值为''时,需要将orders表中的列名写出,才能在表中显示默认值'usa'
    SQL>
    SQL>
    SQL> /*
    DOC>3. 查询自己的数据库中有多少个表,用户scott拥有哪些表,能操作哪些表?
    DOC>*/
    SQL> select count(*) from dba_tables;

      COUNT(*)                                                                     
    ----------                                                                     
           835                                                                     

    SQL> conn scott/tiger
    已连接。
    SQL> select table_name from user_tables;

    TABLE_NAME                                                                     
    ------------------------------                                                 
    BONUS                                                                          
    DEPT                                                                           
    EMP                                                                            
    SALGRADE                                                                       

    SQL> select table_name from all_tables;

    TABLE_NAME                                                                     
    ------------------------------                                                 
    DUAL                                                                           
    SYSTEM_PRIVILEGE_MAP                                                           
    TABLE_PRIVILEGE_MAP                                                            
    STMT_AUDIT_OPTION_MAP                                                          
    AUDIT_ACTIONS                                                                  
    PSTUBTBL                                                                       
    ODCI_SECOBJ$                                                                   
    ODCI_WARNINGS$                                                                 
    DEF$_TEMP$LOB                                                                  
    WM$WORKSPACES_TABLE                                                            
    HELP                                                                           

    TABLE_NAME                                                                     
    ------------------------------                                                 
    OGIS_SPATIAL_REFERENCE_SYSTEMS                                                 
    USER_CS_SRS                                                                    
    USER_TRANSFORM_MAP                                                             
    SDO_DIST_UNITS                                                                 
    SDO_AREA_UNITS                                                                 
    SDO_ANGLE_UNITS                                                                
    DR$POLICY_TAB                                                                  
    CS_SRS                                                                         
    SDO_ELLIPSOIDS                                                                 
    SDO_PROJECTIONS                                                                
    SDO_DATUMS                                                                     

    TABLE_NAME                                                                     
    ------------------------------                                                 
    WK$SYS_CONFIG                                                                  
    WK$CRAWLER_CONFIG_DEFAULT                                                      
    WK$MIMETYPES                                                                   
    WK$CHARSET                                                                     
    WK$LANG                                                                        
    AW$EXPRESS                                                                     
    AW$CWMTOECM                                                                    
    OLAPTABLEVELS                                                                  
    OLAPTABLEVELTUPLES                                                             
    DEPT                                                                           
    EMP                                                                            

    TABLE_NAME                                                                     
    ------------------------------                                                 
    BONUS                                                                          
    SALGRADE                                                                       

    已选择35行。

    SQL> /*
    DOC>答:由此可知 我的数据库中有835个表,用户scott拥有bonus,dept,emp,salgrade这些表,能操作的表有
    DOC>DUAL
    DOC>SYSTEM_PRIVILEGE_MAP
    DOC>TABLE_PRIVILEGE_MAP
    DOC>STMT_AUDIT_OPTION_MAP
    DOC>AUDIT_ACTIONS
    DOC>PSTUBTBL
    DOC>ODCI_SECOBJ$
    DOC>ODCI_WARNINGS$
    DOC>DEF$_TEMP$LOB
    DOC>WM$WORKSPACES_TABLE
    DOC>HELP
    DOC>OGIS_SPATIAL_REFERENCE_SYSTEMS
    DOC>USER_CS_SRS
    DOC>USER_TRANSFORM_MAP
    DOC>SDO_DIST_UNITS
    DOC>SDO_AREA_UNITS
    DOC>SDO_ANGLE_UNITS
    DOC>DR$POLICY_TAB
    DOC>CS_SRS
    DOC>SDO_ELLIPSOIDS
    DOC>SDO_PROJECTIONS
    DOC>SDO_DATUMS
    DOC>WK$SYS_CONFIG
    DOC>WK$CRAWLER_CONFIG_DEFAULT
    DOC>WK$MIMETYPES
    DOC>WK$CHARSET
    DOC>WK$LANG
    DOC>AW$EXPRESS
    DOC>AW$CWMTOECM
    DOC>OLAPTABLEVELS
    DOC>OLAPTABLEVELTUPLES
    DOC>DEPT
    DOC>EMP
    DOC>BONUS
    DOC>SALGRADE
    DOC>*/
    SQL>
    SQL> spool off;

    5


    SQL> /*
    DOC>1.用自己的语言描述oracle数据库有哪些数据库对象,其中有哪些是模式对象,哪些是非模式对象,并简单
    DOC>描述每种数据库对象的作用。描述模式与用户名的关系,它与sql server 的什么概念的作用是一致的。
    DOC>答:oracle数据库的数据库对象有表,簇,触发器,数据库链接,PL/SQL包,序列,同义词,视图,存储函数与存储过程
    DOC>,Java类与其他Java资源,表空间,用户,角色,回退段,概要文件.其中,表,簇,触发器,数据库链接,PL/SQL包,序列,
    DOC>同义词,视图,存储函数与存储过程,Java类与其他Java资源是模式对象,表空间,用户,角色,回退段,概要文件则
    DOC>是非模式对象.
    DOC>表:是oracle数据库中基本的数据存储结构,是存储数据的数据库段.
    DOC>簇:共享同一列的一组表,用于检索时提高效率
    DOC>触发器:安全性(可以基于数据库的值使用户具有操作数据库的某种权利)
    DOC>          审计(可以跟踪用户对数据库的操作)
    DOC>          实现复杂的数据完整性规则
    DOC>          实现复杂的非标准的数据库相关完整性规则
    DOC>          同步实时地复制表中的数据
    DOC>          自动计算数据值,如果数据的值达到了一定的要求,则进行特定的处理
    DOC>数据库链接:用于查询分布式数据库环境中的远程表
    DOC>PL/SQL包:使程序设计模块化,对外隐藏包内使用的信息,还可以提高程序的执行效率.
    DOC>序列:为多个数据库用户依次生成不重复的连续整数
    DOC>同义词:隐藏对象的实际名称和所有者信息,或者隐藏分布式数据库中远程对象的位置信息
    DOC>视图:在它里面的数据会随着基础表的更新而自动更新
    DOC>存储函数与存储过程:存储过程(完成一项特定操作)存储函数(计算一个值并返回给调用环境)
    DOC>表空间:使用户数据和数据字典分离
    DOC>          使不同应用程序的数据相分离
    DOC>          将回滚段从用户数据中分离出来
    DOC>用户:辨别是否是有效账户,从而才能对数据库资源进行访问
    DOC>角色:简化和规范对用户权限的管理,把角色分配给用户,实际就把角色所代表的权限一起分配给数据库用户
    DOC>回退段:用于数据已经改变但尚未提交时,以备还原使用临时保存的更改前的数据
    DOC>概要文件:对用户设置资源限制和口令管理的策略
    DOC>模式与用户的关系:
    DOC>在oracle数据库中,模式与数据库用户是一一对应,每个数据库用户拥有一个与它的用户名相同的模式.
    DOC>它与sql sever的架构概念的作用是一致的.
    DOC>*/
    SQL>
    SQL>
    SQL> /*
    DOC>2.oracle数据库使用怎样控制数据的访问,请查询数据库中用户SCOTT拥有的所有权限;简单描述权限与角
    DOC>色之间的关系,概要文件的作用。
    DOC>答:oracle数据库使用"用户"与"权限"两个基本概念来建立访问控制结构.用户认证方式,用户表空间,public用户组.
    DOC>权限与角色的关系:角色是权限的集合.
    DOC>概要文件的作用:不仅可以对用户所能使用的系统资源进行限制,而且可以对用户的口令进行管理.
    DOC>*/
    SQL>
    SQL> conn scott/tiger
    已连接。
    SQL> select * from session_privs;

    PRIVILEGE                                                                      
    ----------------------------------------                                       
    CREATE SESSION                                                                 
    ALTER SESSION                                                                  
    UNLIMITED TABLESPACE                                                           
    CREATE TABLE                                                                   
    CREATE CLUSTER                                                                 
    CREATE SYNONYM                                                                 
    CREATE VIEW                                                                    
    CREATE SEQUENCE                                                                
    CREATE DATABASE LINK                                                           
    CREATE PROCEDURE                                                               
    CREATE TRIGGER                                                                 

    PRIVILEGE                                                                      
    ----------------------------------------                                       
    CREATE TYPE                                                                    
    CREATE OPERATOR                                                                
    CREATE INDEXTYPE                                                               

    已选择14行。

    ///////////////// 还有对象权限 select * from user_tab_privs

    SQL>
    SQL> /*
    DOC>3.Oracle数据库的用户有哪些属性,请用自己的姓名(拼音)创建一个数据库用户,该用户使用自己创建的
    DOC>概要文件(profile),并授予使用scott的用户表 emp的所有DML操作的权限和create view的权限,并带有
    DOC>管理权限。在创建一个查询dept的视图后,再把create view 的权限撤销。
    DOC>答:oracle数据库用户有以下4个基本属性:1)认证方式,2)默认表空间和临时表空间,3)空间配额,4)概要文件.
    DOC>*/
    SQL>
    SQL>
    SQL> conn /as sysdba
    已连接。
    SQL> create user zhusina identified by chanel
      2  default tablespace users quota 10m on users
      3  temporary tablespace temp;

    用户已创建

    SQL> grant create session to zhusina;

    授权成功。

    SQL> create profile zhusina_profile limit
      2  cpu_per_session  unlimited
      3  cpu_per_call   50;

    配置文件已创建

    SQL> conn zhusina/chanel
    已连接。
    SQL> show user
    USER 为"ZHUSINA"
    SQL> conn /as sysdba
    已连接。
    SQL> show user
    USER 为"SYS"
    SQL> select username,profile from dba_users where username ='ZHUSINA';

    USERNAME                       PROFILE                                         
    ------------------------------ ------------------------------                  
    ZHUSINA                        DEFAULT                                         

    SQL> alter user ZHUSINA
      2  profile zhusina_profile;

    用户已更改。

    SQL> select username,profile from dba_users where username ='ZHUSINA';

    USERNAME                       PROFILE                                         
    ------------------------------ ------------------------------                  
    ZHUSINA                        ZHUSINA_PROFILE                                 

    SQL> conn scott/tiger
    已连接。
    SQL> grant select,update,delete,insert,commit,rollback on emp to zhusina;
    grant select,update,delete,insert,commit,rollback on emp to zhusina
                                      *
    ERROR 位于第 1 行:
    ORA-00990: 缺少或无效权限


    SQL> ed
    已写入文件 afiedt.buf

      1* grant select,update,delete,insert on emp to zhusina
    SQL> /

    授权成功。

    SQL> conn /as sysdba
    已连接。
    SQL> grant create view to zhusina with option;
    grant create view to zhusina with option
                                      *
    ERROR 位于第 1 行:
    ORA-01939: 只可以指定 ADMIN OPTION


    SQL> ed
    已写入文件 afiedt.buf

      1* grant create view to zhusina with  admin option
    SQL> /

    授权成功。

    SQL> show user
    USER 为"SYS"
    SQL> grant select on scott.dept to zhusina;

    授权成功。

    SQL> conn zhusina/chanel
    已连接。
    SQL> create view chanel_view as
      2  select deptno,dname,loc from scott.dept;

    视图已建立。

    SQL> conn /as sysdba
    已连接。
    SQL> revoke create view from zhusina;

    撤销成功。

    SQL> conn zhusina/chanel
    已连接。
    SQL> create view  abcd as
      2  select deptno,dname,loc from scott.dept;
    create view  abcd as
                      *
    ERROR 位于第 1 行:
    ORA-01031: 权限不足


    SQL> spool off;

    5


    SQL> conn scott/tiger
    已连接。
    SQL> /*
    DOC>1.用自己的语言描述你所理解的触发器的定义,使用scott连接数据库并为EMP表创建一个触发器:当员工工
    DOC>资被更改并且工资总和低于5000时,输出“工资总量低于5000的信息”,并验证该触发器.
    DOC>
    DOC>答:触发器是一种特殊的存储过程,它在插入,删除或修改特定表中的数据时触发执行,它比数据库本身标准的
    DOC>功能有更精细和更复杂的数据控制能力.与包类似,必须存储在数据库中并且不能被块进行本地化声明.触发
    DOC>器也不接受参数.
    DOC>*/
    SQL>
    SQL>


     ////////////// 注意是 insert, delete 和 update

    SQL> set serveroutput on;
    SQL> create or replace trigger zsn
      2  after insert or update or delete on scott.emp                
      3  declare
      4  total number(10);
      5  begin
      6  select sum(sal) into total from scott.emp;
      7  if total<5000 then
      8  dbms_output.put_line('工资总量低于5000的信息');
      9  end if;
     10  end;
     11  /

    触发器已创建

    SQL> update scott.emp set sal=0 where empno>=7369 and empno<=7839;

    已更新9行。

    SQL> select sum(sal) from scott.emp;

      SUM(SAL)                                                                     
    ----------                                                                     
         30000                                                                     

    SQL> update scott.emp set sal=0 where empno>=7369 and empno<=7934;
    工资总量低于5000的信息                                                         

    已更新14行。

    SQL> select sum(sal) from scott.emp;

      SUM(SAL)                                                                     
    ----------                                                                     
             0                                                                     

    SQL> /*
    DOC> 从上面可以知道当sum(sal)的值大于或等于5000时,dbms_output.put_line('工资总量低于5000的信息')这一句语句不会执行,所以即使表中数据修改了,也不会出现dbms_output.put_line()里的内容.
    DOC>*/
    SQL>
    SQL> rollback;

    回退已完成。

    SQL> /*
    DOC>2.用自己的语言描述Oracle数据库备份的基本概念;查询数据库有哪些表空间;现在要联机备份表空间users,
    DOC>请写出所有操作过程和语句.
    DOC>
    DOC>答:oracle数据库备份的目的是为了在必要的时候进行有效的恢复.oracle数据库的备份分为物理备份和逻辑
    DOC>备份.
    DOC>物理备份:指使用操作系统命令复制组成数据库的操作系统文件.
    DOC>逻辑备份:指使用export程序将存储于一个或多个数据文件中的数据集中转储至一个操作系统文件. 

    /////////////// export 是数据导出,还有数据导入 import

    DOC>物理备份下又可以分为完全备份和部分备份,完全备份又可以分为脱机完全备份和联机完全备份;部分备份可
    DOC>以分为脱机数据文件备份,联机表空间备份,控制文件备份.
    DOC>*/
    SQL>
    SQL>
    SQL>
    SQL>
    SQL> conn /as sysdba
    已连接。
    SQL> select tablespace_name from dba_tablespaces;

    TABLESPACE_NAME                                                                
    ------------------------------                                                 
    SYSTEM                                                                         
    UNDOTBS1                                                                       
    TEMP                                                                           
    CWMLITE                                                                        
    DRSYS                                                                          
    EXAMPLE                                                                        
    INDX                                                                           
    ODM                                                                            
    TOOLS                                                                          
    USERS                                                                          
    XDB                                                                            

    已选择11行。

    SQL> archivelog list;
    SP2-0734: 未知的命令开头 "archivelog..." - 忽略了剩余的行。
    SQL> archive log list;
    数据库日志模式             非存档模式
    自动存档             禁用
    存档终点            C:\oracle\ora92\RDBMS
    最早的概要日志序列     23
    当前日志序列           25
    SQL> shutdown immediate;
    数据库已经关闭。
    已经卸载数据库。
    ORACLE 例程已经关闭。
    SQL> startup mount;
    ORACLE 例程已经启动。

    Total System Global Area  135338868 bytes                                      
    Fixed Size                   453492 bytes                                      
    Variable Size             109051904 bytes                                      
    Database Buffers           25165824 bytes                                      
    Redo Buffers                 667648 bytes                                      
    数据库装载完毕。
    SQL> alter database archivelog;

    数据库已更改。

    SQL> archive log list;
    数据库日志模式            存档模式
    自动存档             禁用
    存档终点            C:\oracle\ora92\RDBMS
    最早的概要日志序列     23
    下一个存档日志序列   25
    当前日志序列           25
    SQL> archive log start;
    已处理的语句
    SQL> archive log list;
    数据库日志模式            存档模式
    自动存档             启用
    存档终点            C:\oracle\ora92\RDBMS
    最早的概要日志序列     23
    下一个存档日志序列   25
    当前日志序列           25
    SQL> alter database open;

    数据库已更改。

    SQL> desc dba_tablespaces;
     名称                                      是否为空? 类型
     ----------------------------------------- -------- ----------------------------
     TABLESPACE_NAME                           NOT NULL VARCHAR2(30)
     BLOCK_SIZE                                NOT NULL NUMBER
     INITIAL_EXTENT                                     NUMBER
     NEXT_EXTENT                                        NUMBER
     MIN_EXTENTS                               NOT NULL NUMBER
     MAX_EXTENTS                                        NUMBER
     PCT_INCREASE                                       NUMBER
     MIN_EXTLEN                                         NUMBER
     STATUS                                             VARCHAR2(9)
     CONTENTS                                           VARCHAR2(9)
     LOGGING                                            VARCHAR2(9)
     FORCE_LOGGING                                      VARCHAR2(3)
     EXTENT_MANAGEMENT                                  VARCHAR2(10)
     ALLOCATION_TYPE                                    VARCHAR2(9)
     PLUGGED_IN                                         VARCHAR2(3)
     SEGMENT_SPACE_MANAGEMENT                           VARCHAR2(6)

    SQL> select file_name from dba_data_files where tablespace_name = 'USERS';

    FILE_NAME                                                                      
    --------------------------------------------------------------------------------
    C:\ORACLE\ORADATA\ABC\USERS01.DBF                                              

    SQL> alter tablespace users begin backup;

    表空间已更改。

    SQL>  host copy c:\oracle\oradata\oral92\user01.dbf c:\

    SQL> host copy C:\oracle\oradata\abc\users01.dbf c:\

    SQL> alter tablespace users end backup;

    表空间已更改。

    SQL> spool off;

  • 相关阅读:
    第五周作业
    第四周作业
    第三周作业
    第二周作业
    Linux常用命令使用格式及实例
    总结linux哲学思想
    配置环境变量,实现执行history的时候可以看到执行命令的时间
    安装Centos7.6操作系统后,创建一个自己名字的用户名,并可以正常登陆
    各系列的Linux发行版及不同发行版之间的联系与区别
    python2使用Tkinter制作GUI内嵌matplotlib时,找不到NavigationToolbar2Tk的问题
  • 原文地址:https://www.cnblogs.com/JamyWong/p/1645100.html
Copyright © 2020-2023  润新知