123

来源:互联网 发布:罗百吉 什么世界 知乎 编辑:程序博客网 时间:2024/05/22 05:20
1. 什么是RDBMS(关系数据库管理系统)
RDBMS即关系数据库管理系统(Relational Database Management System),是将数据组织为相关的行和列的系统,而管理关系数据库的计算机软件就是关系数据库管理系统
2. 数据库的用户一般分为哪几类?
应用程序开发员。主要在开发周期内完成数据库结构的设计,应用程序的开发等任务
应用程序管理员。负责使用周期中对应用程序功能及其性能方面的维护及修改工作
数据库管理员。对数据库进行日常管理
用户。用户是应用程序的使用者,在授权允许的情况下完成数据的增删查改工作
3. 什么是DMA
DMA(database administrator)数据库管理员
4. Oracle数据库主要有那些逻辑数据库对象?
oracle的逻辑结构包括表空间(tablespace),段(segment),区(extent),数据块(data block)






1. Oracle的数据库文件有哪些?
数据文件.dbf,日志文件,控制文件.ctr,配置文件.ora
3. 表空间,段,区,数据块之间的关系。库->表->区->段->块
一个数据库从逻辑上来说是有一个或多个表空间所组成,表空间是数据库中物理编组的数据仓库,一个表空间由组成,一个段由一组区组成,一个区由一组连续的数据块组成一个数据块对应硬盘上一个或多个物理块.  


4.数据文件和日志文件有什么不同
数据文件主要用来存储数据块中的全部数据,通常后缀为”.dbf”;
日志文件用于记录数据块所做的全部变更,以便在系统发生故障时用它对数据库进行恢复,通常名字为”Log*.dbf”。
7.数据字典中包括哪些内容,在数据管理中起什么作用
一个数据字典包括基础表,动态性能视图及数据字典视图。数据字典又包含了ALL视图,USER视图和DBA视图。
作用:
1) 对于oracle系统本身而言,当数据库实例运行时,会需要使用数据字典基础表中的信息。同时,用户对数据库进行修改时,将有几条新纪录插入到数据字典中。当用户访问修改后的表时时,oracle可以从数据字典中获得关于该表的定义信息。
2) 对于数据库用户而言:数据字典中的用户视图好比一本当前oracle数据库的参考手册。
热备份与恢复:
1. 热备份的特点:
1) 可以在表空间或数据文件级备份,备份时间短
2) 备份时数据库仍可正常使用
3) 可以达到秒级恢复(恢复到某一时间点上)
4) 可以对几乎所有的数据库实体进行恢复
5) 恢复是快速的,大多数情况下在数据库仍工作时恢复
2. 热备份方法:
可以使用SQL*Plus程序和OEM中的备份向导两种备份方法进行热备份。
使用SQL*Plus语句备份过程如下:
(1) 查看数据库是否已经启动归档日志。
ARCHIVE log list
如果归档日志模式没有启动,则打开数据库的归档日志模式,先使用 SHUTDOWN IMMEDIATE命令关闭数据库,然后使用如下命令启动数据库:
STARTUP MOUNT
(2) 修改数据库的归档日志模式。
ALTER database archivelog
(3) 查看数据库中的表空间文件。
SELECT filename FROM dba_data_files
(4) 使数据库表空间处于热备份状态。
ALTER tablespace example END backup


热备份的恢复方法:
(1) 使出现问题的表空间处于脱机状态:
SQL>ALTER database datafile
‘d:\oracle\oradata\oradb\example01.dbf offline’;
(2)将原先备份的表空间文件复制到其所在目录,并覆盖原有文件。
(3)使用RECOVERY命令进行介质恢复,恢复example表空间。
 SQL>RECOVERY database datafile
 ‘d:\oracle\oradata\oradb\example01.dbf online’;




几种非完全恢复方法:
1. 基于Cancel的恢复
2. 基于时间的恢复
3. 基于SCN的恢复








基于cancel恢复:
shutdown immediate
startup mount
recover database until cancel;
alter database open resetlogs;
基于时间恢复:
shutdown immediate
startup mount
recover database until time 'sometimes';
alter database open resetlogs;
基于SCN的恢复:
shutdown immediate
startup mount
recover database until change 470786058;
alter database open resetlogs;






编程题:包的创建:
create package name_pakage
is
man_num NUMBER; //创建变量
womennum NUMBER;
CURSOR 游标;
Create function f_count(in sex IN 游标.sex%TYPE) //定于函数
Return NUMBER; //返回类型
Create Procedure p_cout //定于过程
(in_sex IN 游标.sex%TYPE,out_num OUT NUMBER); //过程参数
END znz_pakage;


包体部分:
create pakage body namebody_pakage
AS
CURSOR 游标 IS  //游标的具体定义
select 学号,姓名
FROM 学生
where 学号  <  50;
FUNCTION f_count(in_sex IN 游标.sex%TYPE)//函数大的具体定义
//(变量 IN 类型)









包的创建
1、创建包头
  create package emp_pkg is //创建包头
procedure emp_update_ename(v_empno varchar2,v_ename varchar2);//定义过程
  function emp_get_sal(v_empno varchar2) return number;//定义函数
  end emp_pkg;
2、创建包体
create or replace package body emp_pkg  is
procedure emp_update_ename ( v_empno varchar2, v_ename varchar ) is//过程具体定义
    vename varchar2(32);
    begin 
    update emp set ename=v_ename where empno=v_empno;
    commit;
    select ename into vename from emp where empno=v_empno;
    dbms_output.put_line( '雇员名称:'|| vename );
    end;
    function emp_get_sal( v_empno varchar2 )//函数具体定义
    return number is vsal number(7,2);
    begin
    select sal into vsal from emp where empno=v_empno;
    return vsal;
    end;
end;




当要调用包的过程和函数时,在过程和函数的名称前加上包名作为前缀(包名.子程序名称),而如果要访问其他方案的包时需要在包的名称前加上方案的名称 (方案名称.包名.子程序名称)
实例:
SQL> var vsal number
SQL> call emp_pkg.emp_get_sal('7935') into :vsal;
SQL> exec emp_pkg.emp_update_ename('7935','helong');   雇员名称:helong
SQL> call emp_pkg.emp_update_ename('7935','helong');














spoll d:/damin/file.txt
set serveroutput on 
set timing on 
/
passw #change psd, like linux passwd
show user
show all #check memory
sqlplus scott/tiger@orcldb
set line 1000
conn database_alse #sing in alther database
ddl  CREATE #





















































1 0
原创粉丝点击