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

Oracle学习笔记摘录8-----ORACLE的使用和开发汇总

2009-10-29 18:07 531 查看
<1> ORACLE的使用

启动和关闭

工具操作ORACLE -- sql*plus

plsql developer

<2> SQL命令

4大类

DDL 数据定义语言 - 建立数据库对象

create /alter/ drop/ truncate

DML 数据操纵语言 - 数据的查看和维护

select / insert /delete /update

TCL 事务控制语言 - 数据是否保存到数据库中

commit / rollback / savepoint

DCL 数据控制语言 -- 查看对象的权限

grant / revoke /如何建用户

<3> 子查询和关联查询 *********************

关联查询 - 3个表的关联

select dname,ename

from dept a, emp b

where a.deptno = b.deptno;

子查询 -- (1)写在where子句中

(2) 子查询可以出现在字段的位置上

(1) select * from emp where sal > (

select avg(sal) from emp );

--高于平均工资的所有员工

(2) select * from emp a where sal > (

select avg(sal) from emp where deptno = a.deptno);

--高于部门平均工资的所有员工

select dname,(select count(*) from emp

where deptno = a.deptno) as rs

from dept a;

--部门名称和每个部门的人数

<4> 如何建立数据库对象

表 / 视图 / 序列(自动编号) / 同义词 /索引(加快查询)

<5> 如何在ORACLE中写程序?

PL/SQL -- PL/SQL块

declare

begin

exception

end;

基本的语法 - 变量 , 变量的赋值(select ... into ...)

数据类型 (变量定义要有长度) a varchar2(10);

条件判断 if .. then

elsif .. then

..

else

end if;

三种循环 : while / loop / for

游标- 多行记录的处理****

declare

cursor c1 is select * from dept

order by deptno desc;

c1rec c1%rowtype;

begin

for c1rec in c1 loop

dbms_output.put_line(c1rec.dname||'-'||c1rec.loc);

end loop;

end;

for循环游标 / 参数游标 /ref 游标

存储过程 **

函数

程序包

触发器

<6> ORACLE的内部的程序包

DBMS_OUTPUT 输出

DBMS_JOB 定时执行任务

<7> JAVA 访问ORACLE ***************

jar包--- classes12.jar

驱动程序的方式--(1)thin驱动

url = "jdbc:oracle:thin:@localhost:1521:accp"

(2)FAT驱动 (需要安装ORACLE客户端才能使用)

url = "jdbc:oracle:oci8:@accp_con"

accp_con是需要配置的一个连接字符串

程序的编写 --JDBC(案例)

ORACLE的数据库管理

<1>ORACLE数据库的体系结构

<2>ORACLE的应用程序的性能优化和调整

<3>ORACLE数据库的备份和恢复

<1>体系结构

物理结构 --- 在操作系统上可以看到的数据库的文件

逻辑结构 --- ORACLE内部来看 如何组成的

进程的结构 --- 进程有哪些 有什么作用

数据库的启动和关闭

<1>用服务中的service来启动和关闭数据库

<2>可以使用命令行来启动和关闭数据库

a)第一次启动必须用<1>来启动的

b)sqlplus /nolog 启动SQLPLUS不用提供用户

c)connect / as sysdba sysdba代表了sys的权限

/ 表示登录ORACLE数据库使用操作系统的用户

d)shutdown immediate 立即关闭

如果有别的用户连到数据库,自动断开连接,没有提交的事务自动回滚

c) startup 启动

SYS用户的密码 可以通过数据库来改

也可以通过操作系统的一个命令来改

ORAPWD file=pwdaccp.ora password=m123 entries=1

--把sys用户的密码改为m123

--pwdaccp.ora pwd密码 accp数据库的名字

重新启动ORACLE数据库后生效

<3>用企业管理器来启动和关闭

启动

关闭

ORACLE的物理文件

<1>数据文件-----存放数据

<2>控制文件----记录了数据库中其他文件的位置

数据库的创建实践

数据库的名字

镜像 最多可以有8个

拷贝一个控制文件 到目标磁盘改名字

在init.ora文件中引用这个文件,重启数据库

<3>初始化文件--- 数据库启动的时候用到的参数、位置D:/oracle/admin/accp/pfile下

D:/oracle/ora90/accp/admin/pfile

文件init.ora

每次启动ORACLE的时候读取该文件

调整ORACLE启动的内存????

show SGA 察看ORACLE所占用的内存

SGA的大小一般为物理内存的1/2

通过修改init.ora中的参数来调整内存

compatible=9.0.0 --版本兼容性

db_name=accp --数据库的名字

control_files=("D:/oracle/oradata/accp/CONTROL01.CTL", "D:/oracle/oradata/accp/CONTROL02.CTL", "D:/oracle/oradata/accp/CONTROL03.CTL") --控制文件的位置

单位:字节

java_pool_size=33554432改为10M --jVM使用的内存

large_pool_size=1048576 不变--恢复的内存

shared_pool_size=33554432 改为10M --PL/SQL 游标用的内存

db_cache_size=33554432 --数据缓冲区大小33M

SPFILEaccp.ora服务器端的参数文件 是 二进制文件 不能直接改 通过OEM(企业管理器)来改

如果你 想使用 init.ora来 启动 ????

startup pfile=D:/oracle/admin/accp/pfile/init.ora

用户 的 并发数量 150

processes=150 支持的终端是 150 * 2=300

游标的 支持 (PL/SQL中游标的使用数量)

open_cursors=300

<4>警告日志文件 -- 查看数据库运行中是否有错误的

D:/oracle/admin/accp/bdump下 的 accpALRT.log 需要经常查看,大小会逐渐变大

定期删除此文件,ORACLE会自动重建

<5>重做日志文件 存放对数据库的修改信息

(insert/delete/update语句会存在此文件中)二进制

日志文件重用的时候是覆盖原有的内容,而原有的内容不产生备份(非归档模式)

应把数据库改为工作在归档日志模式下(安全的)

archive log list 查看工作模式

archivelog 归档

noarchivelog 非归档

<6>归档日志文件

用于数据库恢复

逻辑结构--ORACLE如何构成的

一个库

<1>表空间

由表空间组成的(SYSTEM表空间是必须有的,数据字典放在其下)

create user test identified by t123;

--在SYSTEM这个表空间,不好

--先建立一个永久表空间

CREATE TABLESPACE TEST

LOGGING

DATAFILE 'D:/ORACLE/ORADATA/ACCP/TEST.ora' SIZE 5M AUTOEXTEND

ON NEXT 5M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL

-- 再建立一个临时 表空间

CREATE

TEMPORARY TABLESPACE MYTMP TEMPFILE

'D:/ORACLE/ORADATA/ACCP/MYTMP.ora' SIZE 5M EXTENT MANAGEMENT

LOCAL UNIFORM SIZE 1M

--建用户

create user test identified by t123

default tablespace test --指定永久表空间

temporary tablespace mytmp; --指定临时表空间

--授权

grant connect,resource to test;

--连接

connect test/t123;

create table t(xh number(2));

<2>段 (segment)

表,视图 ,索引

<3>区 (extent)

<4>数据库块 (block)

一般应设置为8K,数据库装好后不能改,只有重装才能改变

--应用中 提示 表空间已满 --- 是否数据文件已满 又不能扩展????

<例子>

1. 如何让ORACLE数据库工作在安全的模式下??

a) 工作在归档日志模式下,可以恢复

b) 删除用户组ORA_DBA 和下面的用户 --登陆必须提供用户名和密码

C)改所有默认用户的密码

2.如果一个ORACLE数据库什么密码都不知道,怎么来找到密码???

1) 检查connect / as sysdba是否还有效,有效

a) select user_name from dba_users;看用户

b) alter user scott identified by m123;

2)检查connect / as sysdba是否还有效,无效

a)orapwd file=pwd<数据库名字>.ora password=hello entries=1

b) 数据库重新启动

c) connect sys/hello as sysdba连接

d) select user_name from dba_users;看用户

f) alter user scott identified by m123;

3.数据库如果出现问题,看哪个文件来找到??

警告日志文件 alrtaccp.ora

文件逐渐变大 定期删除这个文件

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