oracle公司,oracle

1.物理存储结构的组成及作用,个数
数据文件:用于存储数据库中的所有数据;
控制文件:用于记录和描述数据库的物理存储结构信息;
重做日志文件:用于记录外部程序(用户)对数据库的改变操作;
归档文件:用于保存已经写满的重做日志文件;
初始化参数文件:用于设置数据库启动时的参数初始值;
2.逻辑存储结构的组成及关系
逻辑存贮结构分为数据块、区、段和表空间4种,其中,数据块是数据库中的最小I/O单元,由若干个连续的数据块组成的区是数据库中做小的存储分配单元,由若干个区形成的段是相同类型数据的存储分配区域,由若干个段形成的表空间是最大的逻辑单元,所有的表空间构成一个数据库。
逻辑存储结构之间的关系如图:

oracle公司,oracle

3.表空间的类型及作用
p 系统表空间
n SYSTEM 表空间,主要存储:数据库的数据字典; PL/SQL程序的源代码和解释代码,包括存储过程、函数、包、触发器等; 数据库对象的定义,如表、视图、序列、同义词等。
n SYSAUX表空间 :SYSAUX表空间是Oracle 10g新增的辅助系统表空间,主要用于存储数据库组件等信息,以减小SYSTEM表空间的负荷。在通常情况下,不允许删除、重命名及传输SYSAUX表空间。
p 非系统表空间
n 撤销表空间
专门进行回滚信息的自动管理,由UNDO_TABLESPACE参数设置。
n 临时表空间
专门进行临时数据管理的表空间 ;在数据库实例运行过程中,执行排序等SQL语句时会产生大量的临时数据,这些临时数据将保存在数据库临时表空间中。 默认临时表空间
n 用户表空间 :保存用户数据
4.表空间与数据文件的关系
一个表空间对应一个或多个数据文件,数据文件大小决定了表空间的大小。一个数据文件只能从属于一个表空间。
5.oracle中后台进程与作用
p DBWR 数据库写入进程:负责把数据缓冲区中已被修改过的数据写入数据文件中永久保存。也是为了使数据缓冲区有空闲存储区,以便满足新的数据处理要求。
p LGWR 日志写入进程:负责把重做日志缓冲区的数据写入重做日志文件中永久保存。
p CKPT 检查点进程:当检查点事件触发时(每隔一段固定时间),检查点进程通知DBWR把数据库缓冲区中修改的数据存入数据库中。该进程是可选进程,如果不选它,日志写入进程会代替检查点进程的工作。
p SMON 系统监控进程:主要在数据库启动时,检查数据的一致性,对有故障的实例实行恢复。另外还会定期把表空间对应的数据文件中的碎片连成较大的可用区域(PCTINCRESE!=0)。
p PMON 程序监控进程:监控用户进程,处理异常中断的用户进程,包括回收其所占据的系统资源,回滚尚未提交的事务等
6.内存结构的组成、作用及相关初始化参数
内存结构:系统全局区(SGA)和程序全局区(PGA)
SGA 包含的内存结构有:
共享池(Shared pool)用于缓存与SQL或PL/SQL语句、数据字典、资源锁以及其他控制结构相关的数据 。(共享池大小:SHARED_POOL_SIZE)
数据库缓冲区(Database buffer cache)从数据文件中检索出来的数据拷贝。应用程序要访问的数据必须从磁盘的数据文件读到数据缓冲区中处理。在数据缓冲区中被修改后的数据由数据写入进程写到硬盘的数据文件中永久保存。(数据库缓存区大小:DB_CACHE_SIZE)
重做日志缓冲区(Redo log buffer)缓存在用户对数据进行修改的操作过程中生成的重做记录。当重做日志缓冲区被添满时,由日志写入进程把重做日志缓冲区的内容写到磁盘的重做日志文件中做永久的保存。(log_buffer)
大池(Large pool)(LARGE_POOL_SIZE)主要为Oracle多线程服务器、服务器I/O进程、数据库备份与恢复操作、执行具有大量排序操作的SQL语句、执行并行化的数据库操作等需要大量缓存的操作提供内存空间
Java池(Java pool)(JAVA_POOL_SIZE)存储Java代码、Java语句的语法分析表、Java语句的执行方案和进行Java程序开发。
7.关闭数据库的语句及区别
1.NORMAL关闭方式
NORMAL关闭方式是正常关闭方式,是默认关闭方式。在这种关机方式下,数据库服务器必须等待所有客户端从Oracle中正常退出时,才可以关闭数据库。
SQL>SHUTDOWN NORMAL
2.IMMEDIATE关闭方式
使用这种方式关闭数据库时,系统将连接到数据库的所有用户尚未提交的事务全部回退,中断连接,然后关闭数据库。
SQL>SHUTDOWN IMMEDIATE
3.ABORT关闭方式
ABORT关闭方式为异常方式,使用这种方式关闭数据库时,系统立即将数据库实例关闭,对事务膛数据完整性不作检查。是最快的关机方式。
sql>shutdown abort;
4.TRANSACTIONAL关闭方式
在这种关机方式中,数据库必须等待所有的客户运行的事务结束,提交或回退。
sql>shutdown transactional
8.创建表空间的SQL语句
CREATE TABLESPACE ORCLTBS1 DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS1_1.DBF' SIZE 50M;
9.创建序列的SQL语句
CREATESEQUENCE sequence
[INCREMENT BYn]
[START WITHn]
[MAXVALUE n |NOMAXVALUE]
[MINVALUE n |NOMINVALUE]
[CYCLE |NOCYCLE]
[CACHEn | NOCACHE];
p 示例
n CREATESEQUENCE stud_sequence
n INCREMENTBY 1 START WITH 100
n MAXVALUE 1000;
10.SQL语句应用
1.查询工资高于2000的员工的员工号,员工名,部门号,部门名
Select empno,ename,deptno,deptname
fromemp where sal>2000;
2.查询姓名以S开头的员工信息
Select * from emp where ename like ‘S%’;
3.查询每个部门的人数
selectcount(*) from emp group by deptno
4.查询工资在2000-3000之间的员工信息
SELECT * FROM emp WHERE sal>2000 AND sal<3000;
5.查询10号部门每位员工的员工号,姓名。
Selectemp_id,first_name||last_name from emp Wheredeptno=10;
6.查询部门人数大于5的部门的部门号及人数
Select deptno, count(*)from emp group by deptno having count(*)>5;
7.查询10号部门每位员工的员工号、姓名和月收入,月收入列名为earnings。(月收入为工资奖金之和,奖金有可能为空)
Selectempno,first_name,sal+nvl(sal_grades,0) earnings from emp where deptno=10;
8.查询每个部门中各工种的人数及平均工资。
Selectdeptno,count(*),avg(sal) from emp group by deptno,jop;
9.查询奖金不为空的员工信息
Select * from emp where sal_grades is not null;
12.PL/SQL程序设计
1.创建一个过程show_emp,以员工号为参数,输出该员工的员工姓名,职位,工资,所在部门
Createor place procedure show_emp
(s_deptnoemp.deptno%type)
As
2.创建一个函数get_max_sal,以部门号为参数,返回该部门的最高工资
CREATEOR REPLACE FUNCTION get_max_sal
(dept_idemployees.department_id%TYPE)
RETURN number
AS v_max_sal employees.salary%TYPE;
BEGIN SELECT max(sal) INTO v_max_sal FROMemployees
WHEREdepartment_id=dept_id;
RETURNv_max_sal;
end;
Tags:  oracle公司

延伸阅读

最新评论

发表评论