Oracle数据库实验
1建立数据库的文本参数文件一致性停库
2 将所有的文件复制到目标位置
3 在文本参数文件中,修改新的控制文件的的位置
4 将二进制文件删除,留下文本文件
5 将数据库启动mount状态
6 将库中文件名重命名到目标位置
alter database rename file ' 旧文件' to ‘新文件’
7 启动数据库库到OPen 状态;
SQL> create pfile from spfile;
文件已创建。
SQL> shut immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 104857600 bytes
Fixed Size 1247516 bytes
Variable Size 62916324 bytes
Database Buffers 33554432 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
SQL> select 'alter database rename file'||''''||name||''''||'to'||''''||replace(
name,'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\','E:\TEST\')||''''||';' FROM (SELEC
T NAME FROM V$DA TAFILE);
'ALTERDATABASERENAMEFILE'||''''||NAME||''''||'TO'||''''||REPLACE(NAME,'D:\ORACLE
--------------------------------------------------------------------------------
alter database rename file'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF'to 'E:\TEST\SYSTEM01.DBF';
alter database rename file'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF't
o'E:\TEST\UNDOTBS01.DBF';
alter database rename file'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF'to
'E:\TEST\SYSAUX01.DBF';
alter database rename file'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF'to'
E:\TEST\USERS01.DBF';
'ALTERDATABASERENAMEFILE'||''''||NAME||''''||'TO'||''''||REPLACE(NAME,'D:\ORACLE
--------------------------------------------------------------------------------
alter database rename file'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF't
o'E:\TEST\EXAMPLE01.DBF';
SQL> alter database open;
数据库已更改。
SQL> select name from v$controlfile union select name from v$datafile union select member from v$logfile;
NAME
--------------------------------------------------------------------------------
D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG
D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG
D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG
D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
E:\TEST\CONTROL01.CTL
E:\TEST\CONTROL02.CTL
E:\TEST\CONTROL03.CTL
已选择11行。
SQL>
一.autoallocate 是自动分配的实验
1.create tablespace mytest
2.datafile 'E:\test01.dbf' size 100M;
3.create table abc tablespace mytest as select * from scott.emp;
4.desc dba_extents
5.select file_id,extent_id,block_id,blocks from dba_extents where segment_name='ABC';
6.alter system dump datafile 6 block 3
7.select c.value || '/' || d.instance_name || '_ora_' || a.spid || '.trc' trace
from v$process a,v$session b,v$parameter c,v$instance d
where a.addr=b.paddr and b.audsid=userenv('sessionid') and https://www.doczj.com/doc/942451018.html,= 'user_dump_dest';
8.打开D:\ORACLE\PRODUCT\10.2.0\ADMIN\ORCL\UDUMP/orcl_ora_2516.trc文件
9. insert into abc select * from abc;
10.alter system dump datafile 6 block 3;
11.select file_id,extent_id,block_id,blocks from dba_extents where segment_name='ABC';
12.再次打开D:\ORACLE\PRODUCT\10.2.0\ADMIN\ORCL\UDUMP/orcl_ora_2516.trc文件;
13.结果:End dump data blocks tsn: 7 file#: 6 minblk 3 maxblk 3
*** 2012-11-23 10:33:34.781
Start dump data blocks tsn: 7 file#: 6 minblk 3 maxblk 3。
二.uniform 就是区的大小都是一样的的实验
14.CREA TE TABLESPACE "MYTBS" DATAFILE
'E:\mytbs01.dbf' SIZE 104857600
LOGGING ONLINE PERMANENT BLOCKSIZE 8192
EXTENT MANAGEMENT LOCAL UNIFORM SEGMENT SPACE MANAGEMENT AUTO(uniform与AUTOALLOCATE 的管理区别,实验表明uniform的块的大小是一直不变的,而autoalllocate管理方式是随着增长的)
15.create table abcd tablespace myTBS as select * from scott.emp;
16.select file_id,extent_id,block_id,blocks from dba_extents where segment_name='ABCD';
17. insert into abcd select * from abcd;
18.alter system dump datafile 7 block 3
19.select c.value || '/' || d.instance_name || '_ora_' || a.spid || '.trc' trace
from v$process a,v$session b,v$parameter c,v$instance d
where a.addr=b.paddr and b.audsid=userenv('sessionid') and https://www.doczj.com/doc/942451018.html,= 'user_dump_dest';
20.结果RelFno: 7, BeginBlock: 9, Flag: 0, First: 43, Free: 63445
FFFFFFFFFF070000 0000000000000000 0000000000000000 0000000000000000
三:
空间回收(整理碎片):
1.delete from abcd where deptno=10;
2.alter table abcd enable ROW MOVEMENT;
3.alter table ABCD shrink space;
4.alter table abcd disable ROW MOVEMENT;
5.select file_id,extent_id,block_id,blocks from dba_extents where segment_name='ABCD';
实验结果:
已选择31行
热备要求数据库处于归档状态,在业务不是很繁忙时用热备
shut immediate
startup mount
alter database archivelog;
alter database open;启动归档模式
archive log list
热备:
alter tablespace users begin backup;
copy D:\oracle\product\10.2.0\oradata\orcl \users01.dbf e:\test\users01.dbf
alter tablespace users end backup
实验
假设users表空间存在热备份
该空间有一个T2表(scott.emp)
在该表产生交易
update t2 set sal=sal+1;
commit;
alter system switch logfile;
然后将USERS表空间的数据文件给它破坏掉
比如用一个txt文件覆盖掉
copy d:\1.txt d:\users01.bdf(用txt覆盖掉了users01.bdf)
alter system checkpoint;
select file_name,online_status from dba_data_files;
产看当前数据库有哪些数据文件需要恢复
取回备份文件;
recover datafile 4:
alter database datafile 4 online;
代码
Microsoft Windows XP [版本5.1.2600]
(C) 版权所有1985-2001 Microsoft Corp.
C:\Documents and Settings\Administrator>copy D:\oracle\product\10.2.0\oradata\or cl e:\test\users01.dbf
D:\oracle\product\10.2.0\oradata\orcl\CONTROL01.CTL
D:\oracle\product\10.2.0\oradata\orcl\CONTROL02.CTL
D:\oracle\product\10.2.0\oradata\orcl\CONTROL03.CTL
D:\oracle\product\10.2.0\oradata\orcl\EXAMPLE01.DBF
D:\oracle\product\10.2.0\oradata\orcl\REDO01.LOG
D:\oracle\product\10.2.0\oradata\orcl\REDO02.LOG
D:\oracle\product\10.2.0\oradata\orcl\REDO03.LOG
D:\oracle\product\10.2.0\oradata\orcl\SYSAUX01.DBF
D:\oracle\product\10.2.0\oradata\orcl\SYSTEM01.DBF
D:\oracle\product\10.2.0\oradata\orcl\TEMP01.DBF
D:\oracle\product\10.2.0\oradata\orcl\UNDOTBS01.DBF
D:\oracle\product\10.2.0\oradata\orcl\USERS01.DBF
已复制 1 个文件。
C:\Documents and Settings\Administrator>copy D:\oracle\product\10.2.0\oradata\orcl\users01.dbf e:\test\users01.dbf
系统找不到指定的文件。
C:\Documents and Settings\Administrator>copy D:\oracle\product\10.2.0\oradata\or
cl\users01.dbf e:\test\users01.dbf
改写e:\test\users01.dbf 吗? (Yes/No/All): y
已复制 1 个文件。
C:\Documents and Settings\Administrator>copy D:\oracle\product\10.2.0\oradata\or
cl\users01.dbf e:\test\users01.dbf
改写e:\test\users01.dbf 吗? (Yes/No/All): y
已复制 1 个文件。
C:\Documents and Settings\Administrator>copy D:\oracle\product\10.2.0\oradata D:
\oracle\product\10.2.0\oradata\orcl\users01.dbf;
D:\oracle\product\10.2.0\oradata\1.txt
另一个程序正在使用此文件,进程无法访问。
已复制0 个文件。
C:\Documents and Settings\Administrator>copy D:\oracle\product\10.2.0\oradata D:
\oracle\product\10.2.0\oradata\orcl\users01.dbf;
D:\oracle\product\10.2.0\oradata\1.txt
另一个程序正在使用此文件,进程无法访问。
已复制0 个文件。
C:\Documents and Settings\Administrator>copy D:\oracle\product\10.2.0\oradata\1.txt D:\oracle\product\10.2.0\oradata\orcl\users01.dbf;
已复制 1 个文件。
C:\Documents and Settings\Administrator>
8888*************************************************************
Microsoft Windows XP [版本5.1.2600]
(C) 版权所有1985-2001 Microsoft Corp.
C:\Documents and Settings\Administrator>sqlplus/nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五11月30 10:37:43 2012 Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn /as sysdba
已连接。
SQL> shut immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 289406976 bytes
Fixed Size 1248576 bytes
Variable Size 100664000 bytes
Database Buffers 180355072 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
SQL> alter database archivelog
2 archive log list
3 alter tablespace users begin backup
4 alter tablespace users begin backup;
archive log list
*
第 2 行出现错误:
ORA-00933: SQL 命令未正确结束
SQL> alter database archivelog;
数据库已更改。
SQL> alter v
2 ;
alter v
*
第 1 行出现错误:
ORA-00940: 无效的ALTER 命令
SQL> alter database open
2 ;
数据库已更改。
SQL> alter tablespace users begin backup
2 ;
表空间已更改。
SQL> copy D:\oracle\product\10.2.0\oradata\orcl e:\test\users01.dbf
用法: COPY FROM 缺失的FROM 或TO 子句使用当前的SQL*Plus 连接 SQL> copy D:\oracle\product\10.2.0\oradata\orcl e:\test\users01.dbf ; 用法: COPY FROM 缺失的FROM 或TO 子句使用当前的SQL*Plus 连接 SQL> alter tablespace users end backup; 表空间已更改。 SQL> create table t2 tablespace users as select * from scott.emp; 表已创建。 SQL> alter tablespace users begin backup; 表空间已更改。 SQL> alter tablespace users end backup; 表空间已更改。 SQL> update t2 set sal=sal+1; 已更新14行。 SQL> commit; 提交完成。 SQL> alter system switch logfile; 系统已更改。 SQL> alter system checkpoint; 系统已更改。 SQL> select file_name,online_status from dba_data_files; FILE_NAME -------------------------------------------------------------------------------- ONLINE_ ------- D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF RECOVER D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF ONLINE D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF ONLINE FILE_NAME -------------------------------------------------------------------------------- ONLINE_ ------- D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF SYSTEM D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF ONLINE SQL> select * from v$recovery_log; 未选定行 SQL> select file#,name from v$datafile; FILE# ---------- NAME -------------------------------------------------------------------------------- 1 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF 2 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF 3 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF FILE# ---------- NAME -------------------------------------------------------------------------------- 4 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF 5 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF SQL> recover datafile 4; 完成介质恢复。 SQL> select file_name,online_status from dba_data_files; FILE_NAME -------------------------------------------------------------------------------- ONLINE_ ------- D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF ONLINE D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF ONLINE FILE_NAME -------------------------------------------------------------------------------- ONLINE_ ------- D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF SYSTEM D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF ONLINE SQL> alter database datafile 4 online; 数据库已更改。 SQL> select * from t2; EMPNO ENAME JOB MGR HIREDATE SAL COMM ---------- ---------- --------- ---------- -------------- ---------- ---------- DEPTNO ---------- 7369 SMITH CLERK 7902 17-12月-80 801 20 7499 ALLEN SALESMAN 7698 20-2月-81 1601 300 30 7521 WARD SALESMAN 7698 22-2月-81 1251 500 30 EMPNO ENAME JOB MGR HIREDATE SAL COMM ---------- ---------- --------- ---------- -------------- ---------- ---------- DEPTNO 7566 JONES MANAGER 7839 02-4月-81 2976 20 7654 MARTIN SALESMAN 7698 28-9月-81 1251 1400 30 7698 BLAKE MANAGER 7839 01-5月-81 2851 30 EMPNO ENAME JOB MGR HIREDATE SAL COMM ---------- ---------- --------- ---------- -------------- ---------- ---------- DEPTNO ---------- 7782 CLARK MANAGER 7839 09-6月-81 2451 10 7788 SCOTT ANALYST 7566 19-4月-87 3001 20 7839 KING PRESIDENT 17-11月-81 5001 10 EMPNO ENAME JOB MGR HIREDATE SAL COMM ---------- ---------- --------- ---------- -------------- ---------- ---------- DEPTNO ---------- 7844 TURNER SALESMAN 7698 08-9月-81 1501 0 30 7876 ADAMS CLERK 7788 23-5月-87 1101 20 7900 JAMES CLERK 7698 03-12月-81 951 30 EMPNO ENAME JOB MGR HIREDATE SAL COMM ---------- ---------- --------- ---------- -------------- ---------- ---------- DEPTNO ---------- 7902 FORD ANAL YST 7566 03-12月-81 3001 20 7934 MILLER CLERK 7782 23-1月-82 1301 10 已选择14行。 SQL> C:\Documents and Settings\Administrator>sqlplus/nolog SQL*Plus: Release 10.2.0.1.0 - Production on 星期五11月2 10:02:17 2012 Copyright (c) 1982, 2005, Oracle. All rights reserved. SQL> starup mount SP2-0734: 未知的命令开头"starup mou..." - 忽略了剩余的行。 SQL> statup mount SP2-0734: 未知的命令开头"statup mou..." - 忽略了剩余的行。 SQL> startup mount ORA-01031: insufficient privileges SQL> conn /as sysdba 已连接。 SQL> shut immediate ORA-01109: 数据库未打开 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup mount ORACLE 例程已经启动。 Total System Global Area 289406976 bytes Fixed Size 1248576 bytes Variable Size 100664000 bytes Database Buffers 180355072 bytes Redo Buffers 7139328 bytes 数据库装载完毕。 SQL> select * from v$logfile; GROUP# STATUS TYPE ---------- ------- ------- MEMBER -------------------------------------------------------------------------------- IS_ --- 3 ONLINE D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG NO 2 STALE ONLINE D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG NO GROUP# STATUS TYPE ---------- ------- ------- MEMBER -------------------------------------------------------------------------------- IS_ --- 1 ONLINE D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG NO SQL> alter system switch logfile; alter system switch logfile * 第 1 行出现错误: ORA-01109: 数据库未打开 SQL> alter database open 2 ; 数据库已更改。 SQL> alter system switch logfile; 系统已更改。 SQL> alter system switch logfile; 系统已更改。 SQL> shut immediate 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup mount ORACLE 例程已经启动。 Total System Global Area 289406976 bytes Fixed Size 1248576 bytes Variable Size 104858304 bytes Database Buffers 176160768 bytes Redo Buffers 7139328 bytes 数据库装载完毕。 SQL> alter system switch logfile; alter system switch logfile * 第 1 行出现错误: ORA-01109: 数据库未打开 SQL> alter database archivelog; 数据库已更改。 SQL> archive log list; 数据库日志模式存档模式 自动存档启用 存档终点USE_DB_RECOVERY_FILE_DEST 最早的联机日志序列 4 下一个存档日志序列 6 当前日志序列 6 SQL> alter database open; 数据库已更改。 SQL> alter system switch logfile; 系统已更改。 SQL> show parameter log_archive_dest; NAME TYPE V ALUE ------------------------------------ ----------- ------------------------------ log_archive_dest string log_archive_dest_1 string log_archive_dest_10 string log_archive_dest_2 string log_archive_dest_3 string log_archive_dest_4 string log_archive_dest_5 string log_archive_dest_6 string log_archive_dest_7 string log_archive_dest_8 string log_archive_dest_9 string NAME TYPE V ALUE ------------------------------------ ----------- ------------------------------ log_archive_dest_state_1 string enable log_archive_dest_state_10 string enable log_archive_dest_state_2 string enable log_archive_dest_state_3 string enable log_archive_dest_state_4 string enable log_archive_dest_state_5 string enable log_archive_dest_state_6 string enable log_archive_dest_state_7 string enable log_archive_dest_state_8 string enable log_archive_dest_state_9 string enable SQL> alter system set log_archive_dest_1'location=E:/oracle'; alter system set log_archive_dest_1'location=E:/oracle' * 第 1 行出现错误: ORA-00927: 缺失等号 SQL> alter system set log_archive_dest_1='location=E:/oracle'; 系统已更改。 SQL> alter system switch logfile; 系统已更改。 SQL> select name from V$archive_log; select name from V$archive_log * 第 1 行出现错误: ORA-00942: 表或视图不存在 SQL> select name from$archived_log; select name from$archived_log * 第 1 行出现错误: ORA-00923: 未找到要求的FROM 关键字 SQL> select name from v$archived_log; NAME -------------------------------------------------------------------------------- D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_11_02\O1_MF_1_ 6_896C0PD6_.ARC E:\ORACLE\ARC00007_0794570482.001 SQL> select log_mode from v$database; LOG_MODE ------------ ARCHIVELOG SQL> archive log list; 数据库日志模式存档模式 自动存档启用 存档终点E:/oracle 最早的联机日志序列 6 下一个存档日志序列8 当前日志序列8 SQL> alter system set log_archive_dest_1='location=E:/oracle1'; 系统已更改。 SQL> alter system switch logfile; 系统已更改。 SQL> alter system set log_archive_dest_2='location=E:/oracle2'; 产生多分归档日志文档; 系统已更改。 SQL> alter system switch logfile; 系统已更改。 SQL> 日志挖掘DDL直接挖但挖掘dml语句需要将数据库置为追加日志数据模式. 1.修改追加日志数据模式 SYS@beijing> select SUPPLEMENTAL_LOG_DATA_MIN from v$database; SUPPLEME -------- NO SYS@beijing> alter database add SUPPLEMENTAL log data; Database altered. SYS@beijing> select SUPPLEMENTAL_LOG_DATA_MIN from v$database; SUPPLEME -------- YES SQL> select SUPPLEMENTAL_LOG_DATA_MIN from v$database; SUPPLEME -------- NO SQL> alter database add SUPPLEMENTAL log data; 数据库已更改。 SQL> select SUPPLEMENTAL_LOG_DA TA_MIN from v$database; SUPPLEME -------- YES SQL> conn /as sysdba 已连接。 SQL> exec dbms_logmnr.add_logfile('/home/oracle/oradata/ora10g/redo01abc.log'); BEGIN dbms_logmnr.add_logfile('/home/oracle/oradata/ora10g/redo01abc.log'); END; * 第 1 行出现错误: ORA-01284: 文件/home/oracle/oradata/ora10g/redo01abc.log 无法打开 ORA-00308: 无法打开归档日志'/home/oracle/oradata/ora10g/redo01abc.log' ORA-27041: 无法打开文件 OSD-04002: 无法打开文件 O/S-Error: (OS 3) 系统找不到指定的路径。 ORA-06512: 在"SYS.DBMS_LOGMNR", line 68 ORA-06512: 在line 1 SQL> exec dbms_logmnr.add_logfile('D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG'); PL/SQL 过程已成功完成。 SQL> NO SP2-0042: 未知命令"NO" - 其余行忽略。 SQL> alter database add SUPPLEMENTAL log data; 数据库已更改。 SQL> alter user scott account unlock identified by seker; 用户已更改。 SQL> update scott.emp set sal=100 ; 已更新14行。 SQL> commit; 提交完成。 SQL> select * from v$log; GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS ---------- ---------- ---------- ---------- ---------- --- ---------------- FIRST_CHANGE# FIRST_TIME ------------- -------------- 1 1 11 52428800 1 NO CURRENT 606095 02-11月-12 2 1 9 52428800 1 YES INACTIVE 604778 02-11月-12 3 1 10 52428800 1 YES INACTIVE 604811 02-11月-12 SQL> select * from v$logfile; GROUP# STATUS TYPE ---------- ------- ------- MEMBER -------------------------------------------------------------------------------- IS_ --- 3 ONLINE D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG NO 2 ONLINE D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG NO GROUP# STATUS TYPE ---------- ------- ------- MEMBER -------------------------------------------------------------------------------- IS_ --- 1 ONLINE D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG NO SQL> exec dbms_logmnr.add_logfile(' D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG ERROR: ORA-01756: 引号内的字符串没有正确结束 SQL> NO'); SP2-0042: 未知命令"NO')" - 其余行忽略。 SQL> exec dbms_logmnr.add_logfile('D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG'); BEGIN dbms_logmnr.add_logfile('D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG'); END; * 第 1 行出现错误: ORA-01289: 无法添加重复的日志文件 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG ORA-06512: 在"SYS.DBMS_LOGMNR", line 68 ORA-06512: 在line 1 SQL> exec dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog); PL/SQL 过程已成功完成。 SQL> select sql_redo from v$logmnr_contents where lower(sql_redo) like '%update%' and seg_name='EMP'; 未选定行 SQL> select sql_redo from v$logmnr_contents where lower(sql_redo) like '%update%' and seg_name='emp'; 未选定行 SQL> exec dbms_logmnr.add_logfile('D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG'); PL/SQL 过程已成功完成。 SQL> exec dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog); PL/SQL 过程已成功完成。 SQL> select sql_redo from v$logmnr_contents where lower(sql_redo) like '%update%' and seg_name='EMP'; 未选定行 SQL> exec dbms_logmnr.add_logfile('D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG'); PL/SQL 过程已成功完成。 SQL> exec dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog); Oracle数据库实验报告 实验一:Oracle 10g安装卸载及相关工具配置 一、实验目标: 安装Oracle 10g,了解OEM,通过DBCA安装数据库,通过DBCA删除数据库,sqldeveloper连接数据库,卸载oracle 10g。 二、实验学时数 2学时 三、实验步骤和内容: 1、安装Oracle10g(默认安装数据库) 双击setup.exe, 选择基本安装,安装目录D:盘,标准版,默认数据库orcl,口令bhbh。 进入先决条件检查界面时:网络配置需求选项不用打勾,直接下一步,是。 直到安装成功。 2、登陆和了解OEM 主要是已网页的形式来对数据库进行管理。 http://主机IP:1158/em 用户名:sys 口令:bhbh 身份:sysdba 或者 用户名:system 口令:bhbh 身份:normal 3、通过DBCA删除已安装的默认数据库orcl 程序->Oracle - OraDb10g_home1->配置和移植工具->Database Configuration Assistant->删除数据库->…… 4、通过DBCA安装数据库xscj 程序->Oracle - OraDb10g_home1->配置和移植工具->Database Configuration Assistant->创建数据库->…… 5、sqldeveloper连接数据库 打开sqldeveloper,新建连接 连接名:system_ora 用户名:system 口令:bhbh 主机名:本机计算机名 SID:xscj 测试,显示成功,连接,保存。 6、卸载oracle 10g Windows下 1>停止所有Oracle服务,点Universal Installer卸载 2>删除注册表中的所有关于Oracle项 在HKEY_LOCAL_MACHINE\SOFTWARE下,删除Oracle目录 3>删除硬盘上所有Oracle文件。 (1)Oracle安装文件 (2)系统目录下,在Program files文件夹中的Oracle文件 四、上机作业 根据实验步骤完成逐个实验目标中的任务。 五、心得体会 通过这次的实验,我了解了oracle数据库的情况。懂得了数据库就是把数据存储在一个类似与仓库的地方,需要用时才从数据库里调出来。通过上机实践,知道了装数据库和卸载数据库,并且学会了怎样连数据库。 实验二:Oracle 10g手工建数据库 一、实验目标: 安装Oracle 10g数据库环境,手工建立数据库;通过Net Configuration Assistant建立监听,使用sqldeveloper连接数据库测试。 二、实验学时数 2学时 三、实验步骤和内容: 先安装好Oracle 10g数据库环境(不安装默认数据库)。 1.创建好相关的目录 (O管理)玩转实战教程(韩顺平)学习笔记 韩顺平—玩转oracle视频教程笔记 一:Oracle认证,与其它数据库比较,安装 oracle的卸载 1.停止所有与ORACLE相关的服务。 2. 使用OUI(Oracle Universal Installer)卸载Oracle软件。 “开始”->“程序”->“Oracle-OraDb110g_home1|Oracle installation product|Universal installer. 3.删除注册表内容。运行regedit命令,删除下面内容:HKEY_LOCAL_MACHINE|SOFTWARE|ORACLE注册表键,删除此键。 HKEY_LOCAL_MACHINE|SYSTEM|CurrentControlSet|Services,删除Services键下所有以oracle为首的键。 HKEY_LOCAL_MACHINE|SYSTEM|CurrentControlSet|Services|Eventlog|Application,删除此键下所有以oracle为首的键。 HKEY_CLASSES_ROOT,删除此键下所有以Ora,Oracle,Orcl,EnumOra 为前缀的键。 HKEY_CURRENT_USER|Software| Microsoft|Windows|CurrentVersion|Explorer|MenuOrder|Start Menu|Programs,删除此键下所有以oracle为首的键。 HKEY_LOCAL_MACHINE|SOFTWARE|ODBC|ODBCINST.INI注册表键,删除了 实验2 Oracle数据库体系结构 【实验目的与要求】 ?熟悉Oracle数据库的物理结构 ?理解Oracle的工作机制 ?理解Oracle的软件结构 【实验内容与步骤】 2.0 实验准备 以系统管理员身份登入到数据库。 2.1 物理存储结构 2.1.1 获取Oracle数据库各类物理文件信息 1.数据文件 数据文件的详细信息记录在数据字典视图V$DataFile中,可通过查询语句获取数据文件相关信息。 查看数据文件名称:可通过如下查询语句查看数据文件名称和存放位置 请给出运行结果截图: 练习:用desc命令查看V$datafile视图的结构,并试着查询更详细的信息。 2.操作数据文件 (1) 创建数据文件 Oracle中,创建数据文件即是借用Alter Tablespace…ADD…语句,将数据文件添加挂接到指定的表空间中。 为USERS表空间添加一个数据文件,名称为USERS_XX.DBF(XX为学号最后两位),大小为20MB。如: 请给出运行结果截图: 打开指定目录(即C:\),查看是否存在文件USERS_XX.DBF? 请给出结果截图: 查询V$datafile视图,获取数据文件USERS_XX.DBF大小、位置等相关信息。 请给出结果截图: (2) 创建数据文件 修改数据文件使用Alter Database Datafile…命令。 修改USERS表空间中的USERS_XX.DBF为自动扩展方式,每次扩展5MB,最大为100MB。如: 请给出结果截图: 查询V$datafile视图,获取数据文件USERS_XX.DBF大小、扩展方式、位置等相关信息。确定数据文件是否修改。 请给出结果截图: (3) 重命名数据文件: 重命名数据文件使用alter tablespace …Rename datafile…命令。 将表空间USERS中的数据文件USERS_XX.DBF更名为UserData_XX.dbf。 1.用insert语句进行行数据的迁移 Insert into 表名(列,列) select 列,列from emp where 条件 2.用update更新数据(使用子查询):希望员工scott的岗位,工资,补助与smith员工一样? update emp set (job,sal,comm)=(select job,sal,comm. From emp where ename=?SMITH?) where ename=?SCOTT?; 3.事务 (1)锁 (2)提交事务 (3)回退事务(一开始就做保存点(savepoint)) (4)事务的几个重要操作 1)设置保存点:savepoint a 2)取消部分事务:rollback to a 3)取消全部事务:rollback (5)只读事务:set transaction read only(当前用户能看到之前的操作,若其他用户进行更 新,该用户之后的操作都不能看到更新) (6)字符函数 (1)lower(char):将字符串转化为小写的格式 (2)upper(char): 将字符串转化为大写的格式 (3)length(char):返回字符串的长度 (4)substr(char,m,n):取字符串的子串,从m开始取,取n个 (5)例:以首字符大写的方式显示所有的员工的姓名: (1)完成首字母大写:select upper(substr(ename,1,1)) from emp; (2)完成后面字母小写:select lower(substr(ename,2,length(ename)-1)) from emp; (3)合并:select upper(substr(ename,1,1)) || lower(substr(ename,2,length(ename)-1)) from emp; (6)replace(char1,search_string,replace_string) (7)instr(char1,char2,[,n[,m]])—取子串在字符串的位置 (8)例:显示所有员工的姓名,用”我是A”替换所有”A”:select replace(ename,?A?,? 我是A?) from emp; (7)数学函数 (1)round(n,[m]):用于四舍五入 (2)trunc(n,[m]):用于截取数字 (3)mod(m,n):取模 (4)floor(n):返回<=n的最大整数 (5)ceil(n):返回>=n的最小整数 (6)例:显示在一个月为30天的情况所有员工的日薪金,忽略余数:select floor(sal/30),ename from emp; (8)日期函数 (1)sysdate (2)add_months(d,n) (3)last_day(d):返回指定日期所在月份的最后一天 例:返回在八个月前雇佣的员工(已经入职8个月多的员工):select * from emp where sysdate>add_months(hiredate,300); 例:对于每个员工,显示其加入公司的天数:select trunk(sysdate-hiredate) “入职天 实验十一Oracle数据库备份与恢复 【实验目的与要求】 1. 常见数据备份与恢复的方法 2.学会Oracle备份方案的制定 【实验内容与步骤】 1. Oracle物理备份与恢复 准备工作: (1)查看数据库是否运行于归档模式下: 请给出查询的结果: (2)关闭数据库,做一个完全的冷备份。 提示: a.使用shutdown命令关闭数据库; b.复制数据文件、日志文件和控制文件到安全地方 (3) 把数据库改为归档模式 设置成自动归档 SQL> alter system set log_archive_start = true scope=spfile; 注意:本实验中的很多命令路径参数需根据自己的实现环境做出修改!! 实验11-1 数据库系统数据文件和回退段遭破坏的情况下的恢复。此时数据库的状态是关闭的。 (1)先启动数据库,创建新用户scott,并用scott用户建立test表,并插入两条数据。创建表空间的四个步骤: /*分为四步 */ /*第1步:创建临时表空间 */ create temporary tablespace user_temp tempfile 'D:\ user_temp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; /*第2步:创建数据表空间 */ create tablespace user_data logging datafile 'D:\ user_data.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; /*第3步:创建用户并指定表空间 */ create user scott identified by tiger default tablespace user_data temporary tablespace user_temp; /*第4步:给用户授予权限 */ grant connect,resource,dba to scott; SQL> create table test (id int,name varchar2(10)); 表已创建。 SQL> insert into test values(1001,’zhangfei’); 已创建 1 行。 SQL> insert into test values(1002,’guanyu’); 已创建 1 行。 SQL> commit; 提交完成。 (2)模拟数据库遭意外被迫关闭,并且系统数据文件丢失。 SQL> shutdown abort 1.Oracle 工具:sqlplus Sqlplus / as sysdba Shutdown immediate(关闭数据库) Startup(启动数据库) 注意:数据库开启才可以进行操作 Select username,account_status from dba_users;(查询数据库中所有的用户名称与用户状态) Alter user scott identified by tiger account unlock;(scott用户解锁) Sqlplus scott/tiger(使用SCOTT 密码为tiger登陆ORACLE数据库) Connect scott/tiger (在SQL>中直接使用SCOTT用户连接数据库) Show all;(看所有变量) Set sqlprompt “_user>”(设置sqlplus环境下面的提示符用自身用户显示) 注意:如要变量下次重启生效必须把变量写入 /u01/app/oracle/product/10.2.0/db_1/sqlplus/admin/glogin.sql中 Host(回到系统) Help index(查看所有命令) Help+命令(类似于LINUX中的MAN,查看命令的格式与用法) Disconnect(关闭SQLPLUS工具但是不离开数据库) Describe emp(查看EMP表) Define(定义变量,常用与写脚本用) 如:DEFINE _EDITOR =”vi” (CHAR) (定义VI编辑器用于保存最后一条执行的SQL语句) Save /u01/app/oracle/aa.sql (保存SQL语句) Get /u01/app/oracle/aa.sql (调用保存的SQL语句) 2.select(select 查询语句是ORACLE中最常用的语句) DML语句包括(insert 写入,update改变,delect删除,merge两张表同步) 注意:merge常用在ETL(数据仓库)底下 DDL数据定义语句包括(create创建对象,alter修改,drop删除对象,rename改名,truncate 删除整个表) TCL事务处理语句(commit提交立刻生效,rollback回滚,savepoint保存点,savepoint(保存点) DCL权限语句(grant赋予权限,revoke(收回权限) ORACLE的表称之为堆表(keep table) SELECT (1) writing basic SQL select statemanes 1. selecting all columns SCOTT>select * from dept; SCOTT>select dname,deptno,loc from dept; Basic SELECT Statement SELECT *|{[DISTINCT] column|expression [alias],...} FROM table; 学期 Oracle数据库应用技术 实验报告 选课序号: 班级: 学号: 姓名: 指导教师:史金余 成绩: 2017年月日 目录 1.实验目的 (1) 2.实验内容 (1) 2.1 触发器设计 (2) 2.2 存储过程、自定义函数设计 (2) 2.3 程序包设计 (3) 3.实验步骤 (3) 3.1 创建表空间RESTAURANT,创建用户DINER (3) 3.2 创建餐饮系统数据库的所有表,并向各表插入演示数据 (4) 3.3 完成【实验内容】中的触发器、存储过程、函数和程序包等 功能设计,将程序脚本保存到文本文件Source.sql中 (7) 4.实验总结 (13) PL/SQL程序设计 1.实验目的 ◆掌握PL/SQL程序设计基本技巧,包括基本数据类型、表类型、数组类 型、匿名程序块、控制语句、PL/SQL中使用SQL语句、游标、错误处 理等。 ◆熟悉和掌握PL/SQL中关于存储过程、函数、包和触发器程序设计技术。 2.实验内容 实验平台:PL/SQL Developer或Oracle的其它客户端管理工具。 某餐饮系统数据库(加粗字段为主键,斜体字段为外键),请创建如下各数据表,并实现如下存储过程、函数、包和触发器等功能设计,将程序脚本保存到文本文件Source.sql中: (1)菜肴类别表MK(菜肴类别编号MKid,菜肴类别名称MkName),菜肴类别名称:鱼类、蔬菜类、凉菜类、肉类、主食类和酒水类等。 (2)菜单信息表MList(菜肴编号Mid,菜肴名称Mname,菜肴类别MKid,菜肴单价Mprice,菜肴成本单价Mcost,更新日期Mdate)。 (3)餐台类别表DK(餐台类别编号DKid,餐台类别名称DkName),餐台类别:包间和散台等。 (4)餐台信息表Dinfo (餐台编号Did,餐台名称Dname,餐台类别DKid,座位数Dseats,更新日期Ddate)。 (5)消费单主表C (消费单号Cid,餐台编号Did,消费开始时间StartTime,结账时间EndTime,消费金额合计Smoney,盈利金额合计SPsum),其中,消费金额合计=消费单明细表CList中该消费单号的所有消费记录的消费金额的合计,即SUM(消费金额)或SUM(菜肴单价×消费数量),盈利金额合计=消费单明细表CList中该消费单号的所有消费记录的盈利合计,即SUM((菜肴单价- 菜肴成本单价)×消费数量)。 (6)消费单明细表CList (消费单号Cid,序号Sid,菜肴编号Mid,菜肴名称Mname,消费数量Cqty,菜肴单价Mprice,菜肴成本单价Mcost,消费金额Cmoney) ,消费金额=消费数量×菜肴单价;消费数量为正数是正常点菜,消费数量为负数是退菜,消费数量为0是赠菜。 ●PLSQL控制台输出语句 SET serveroutput ON; --打开控制台输出服务 dbms_output.put_line('values2='||var_val); --输出语句 ●PLSQL动态变量 var_str := '&input'; ●创建表空间和用户 --创建表空间 CREATE TABLESPACE "BCPBS" LOGGING DATAFILE 'D:\app\E430\oradata\orcl\BCPBS_01.ora' SIZE 2048M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED, 'D:\app\E430\oradata\orcl\BCPBS_02.ora' SIZE 2048M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ; --建立用户 CREATE USER "BCPBS" PROFILE "DEFAULT" IDENTIFIED BY "bcpbs123" DEFAULT TABLESPACE "BCPBS" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK; GRANT "CONNECT" TO "BCPBS"; GRANT "DBA" TO "BCPBS"; GRANT "RESOURCE" TO "BCPBS"; ●删除表空间和用户 drop user bcpbs cascade ; drop tablespace BCPBS including contents and datafiles cascade constraints ; ●自定义函数 CREATE OR REPLACE FUNCTION fun_level_value(level_value number) RETURN number IS return_value number:=null; BEGIN CASE level_value WHEN 0 THEN return_value:='0'; WHEN 1 THEN return_value:='1'; WHEN 2 THEN return_value:='2'; WHEN 3 THEN return_value:='3'; WHEN 6 THEN return_value:='8'; ELSE 实验一熟悉常用的 DBMS:SQL SERVER2008、Oracle 试验内容及要求: (1)了解不同数据库管理系统及不同版本的相应功能特点 目前,商品化的数据库管理系统以关系型数据库为主导产品,技术比较成熟。面向对象的数据库管理系统虽然技术先进,数据库易于开发、维护,但尚未有成熟的产品。国际国内的主导关系型数据库管理系统有Oracle、Sybase、INFORMIX和INGRES。这些产品都支持多平台,如UNIX、VMS、Windows,但支持的程度不一样。IBM的DB2也是成熟的关系型数据库。但是,DB2是内嵌于IBM的AS/400系列机中,只支持OS/400操作系统。 1.MySQL MySQL是最受欢迎的开源SQL数据库管理系统,它由MySQL AB开发、发布和支持。MySQL AB是一家基于MySQL开发人员的商业公司,它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司。MySQL是MySQL AB的注册商标。 MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass- deployed)的软件中去。与其他数据库管理系统相比,MySQL具有以下优势: (1)MySQL是一个关系数据库管理系统。 (2)MySQL是开源的。 (3)MySQL服务器是一个快速的、可靠的和易于使用的数据库服务器。 (4)MySQL服务器工作在客户/服务器或嵌入系统中。 (5)有大量的MySQL软件可以使用。 2.SQL Server SQL Server是由微软开发的数据库管理系统,是Web上最流行的用于存储数据的数据库,它已广泛用于电子商务、银行、保险、电力等与数据库有关的行业。 目前最新版本是SQL Server2005,它只能在Windows上运行,操作系统的系统稳定性对数据库十分重要。并行实施和共存模型并不成熟,很难处理日益增多的用户数和数据卷,伸缩性有限。 SQL Server 提供了众多的Web和电子商务功能,如对XML和Internet标准的丰富支持, 声明:此文档只作为学习参考,不得用作它途! 实验一了解ORACLE环境,使用ORACLE数据库实用工具 1.目的要求: 了解ORACLE数据库的各个常用工具软件 2.实验内容: 在ORACEL数据库下使用SQL*PLUS ,SQL*PLUS Worksheet,PL/SQL Developer 工具,企业管理器等实用工具与Oracle交互。并在企业管理器中观察ORACLE的底层存储原理。在PL/SQL Developer中书写简单的SQL语言。 3.主要仪器设备及软件 1)PC 2)ORACLE数据库 实验二熟悉SQL语言 1.目的要求 在SQL*PLUS或PL/SQL Developer工具中编写SQL语句 2.实验内容 在ORACLE 数据库中定义用户,给用户赋权限,创建,修改和删除表格,视图等数据库对象,并向表格中插入,修改和删除数据。体会SQL语言中ORACLE的“方言”。 对自己建立的表做查询:包括单表查询,多表查询,嵌套查询,分组查询,相关查询 3.主要仪器设备及软件 1)PC 2)ORACLE数据库 自定义用户:create user taozi identified by taozi; 给用户赋DBA权限:grant dba to taozi; 创建表格 student,sc,course: Create table student (sno char(10) primary key, sname varchar(20) not null, sage smallint, ssex char(2), sdept varchar(20)); Create table course (cno char(10) primary key, cname varchar(50) not null, credit smallint); Create table sc (sno char(10), cno char(10), grade smallint, primary key(sno,cno)); 创建视图:create view oracle as (select sno,sname,sage from student); 删除视图:delete oracle; 为student 表增加一列 jiguan: alter table student add jiguan varchar(10); 删除jiguan 列:alter table student drop column jiguan; 删除student 表结构:drop table student; 插入数据:insert into student values('004','AA','21','f','MA'); insert into student values('005','BB','20','m','CS'); 实验二Oracle数据库开发环境下PL/SQL编程(2学时) 【实验目的】 (1)掌握PL/SQL 的基本使用方法。 (2)在SQL*PLUS环境下运行PL/SQL的简单程序。 (3)应用PL/SQL 解决实际问题 【实验内容与步骤】 一、实验内容: 1、用PL/SQL实现:输入eno的值,显示emp表中对应记录的内容。 2、用PL/SQL完成:读入三个数,计算并输出它们的平均值及三个数的乘积。 3、对职工表emp中的雇员SCOTT提高奖金,若工种为MANAGER,则奖金提高其原来的20%;若工种为SALESMAN,则奖金提高其原来的15%;若工种为ANALYST,则奖金提高其原来的10%, 其它都按原来的7%提高。 4、用PL/SQL块实现下列操作 公司为每个职工增加奖金:若职工属于30号部门,则增加$150;若职工属于20号部门, 则增加$250;若职工属于10号部门,则增加$350。(提示:游标请自行阅读相关内容) DECLARE addcomm https://www.doczj.com/doc/942451018.html,m%type; CURSOR emp_cursor IS select deptno from emp; BEGIN FOR emprec IN emp_cursor LOOP IF emprec.deptno=30 THEN addcomm:=150; ELSIF emprec.deptno=20 THEN addcomm:=250; ELSIF emprec.deptno=10 THEN addcomm:=350; END IF; Update emp set comm=comm+ addcomm where deptno= emprec.deptno; END LOOP; COMMIT WORK; END; 实验三PL/SQL触发器和存储过程(2学时) 【实验目的】 (1)了解触发器的类型。 (2)掌握PL/SQL触发器的使用方法。 (3)了解存储过程的使用方法。 (4)掌握存储过程的使用方法。 【实验内容】 实验内容: 1、编写一个数据库触发器,当任何时候某个部门从dept表中删除时,该触发器将从emp 表中删除该部门的所有雇员。(要求:emp表、dept表均为复制后的表) CREATE OR REPLACE TRIGGER del_emp_deptno BEFORE DELETE ON dept FOR EACH ROW BEGIN DELETE FROM emp WHERE deptno=:OLD.deptno; END; Oracle的四个主要用户 1.超级管理员sys/change_on_install 2.普通管理员system/manager 3.普通用户scott/tiger 4.大数据用户sh/sh 简单查询 1.查询表结构 DESC 表名 2.简单查询SELECT [DISTINCT] *|[字段 [别名]] [,字段 [别名]] … FROM 表名 [别名] (1)查询时也可以使用四则运算,如:SELECT (字段*x)+y FROM 表名 (2)可以使用“||”连接字段与字符串,如: select '工作与工资:' || job || sal 工作工资 from emp 执行结果: 3.限定查询SELECT [DISTINCT] *|[字段 [别名]] [,字段 [别名]] … FROM 表名 [别名] [WHERE 条件(s)] (1)Where字句后可以增加多个条件,最常见的条件就是最基本关系运算:>、<、>=、<=、!=(<>)、BE TWEEN…AND、LIKE、IN(指定范围)、IS NULL(为空)、AND(且)、OR(或)、NOT(非)。 (2)多个条件可以使用AND与OR连接。 例如:select * from emp where sal>1300 and sal<4000 (3)范围判断BE TWEEN…AND:BETWEEN 最小值 AND 最大值(大于等于最小值,小于等于最大值),BE TWEEN…AND 对数字、日期都可以使用!!! 例如:select * from emp where sal between 1300 and 4000 例如:select * from emp where hiredate between '01-1月-1981' and '31-12月-1981' (4)判断为空IS (NOT) NULL 例如:select * from emp where comm is null 例如:select * from emp where comm is not null 例如:select * from emp where not comm is null (5)指定范围的判断(NOT) IN 例如:select * from emp where empno in(7369,7566,7799) 四川师范大学计算机学院oracle实验报告册 院系名称:计算机科学学院 课程名称:oracle数据库运用与开发 实验学期2012 年至2013 年第 1 学期 专业班级:电子商务2010级5班 姓名:苏瑶学号:2010110338 指导教师:俞晓老师 实验最终成绩: 实验一了解ORACLE环境,使用ORACLE数据库实用工具 (验证性实验 4学时) 1.目的要求: 了解ORACLE数据库的各个常用工具软件 2.实验内容: 在ORACEL数据库下使用SQL*PLUS ,SQL*PLUS Worksheet,PL/SQL Developer工具,企业管理器等实用工具与Oracle交互。并在企业管理器中观察ORACLE的底层存储原理。在PL/SQL Developer中书写简单的SQL语言。 3.主要仪器设备及软件 1)PC 2)ORACLE数据库 --创建用户 create user user1 identified by user1; --赋给用户建表、连接等权限 grant connect to user1; grant create any table to user1; grant resource ,dba to u1; --连接用户 Conn user1/user1; --收回权限(dba ) revoke dba from u1; ------------------------------------------------------------------------- 实验二熟悉SQL语言 (验证性实验 4学时) 1.目的要求 在SQL*PLUS或PL/SQL Developer工具中编写SQL语句 2.实验内容 在ORACLE 数据库中定义用户,给用户赋权限,创建,修改和删除表格,视图等数据库对象,并向表格中插入,修改和删除数据。体会SQL语言中ORACLE的“方言”。 对自己建立的表做查询:包括单表查询,多表查询,嵌套查询,分组查询,相关查询 3.主要仪器设备及软件 1)PC 2)ORACLE数据库 --修改数据: update student set sAge=19where sage=18; --删除数据: delete from student where sname='吴芳'; --输出成绩大于60小于80的学生的名字 select sname from student,sc where grade >60and grade <80and student.sno=sc.sno; --输出学生表中的总人数 select count(*)from student; B04900046 编号: 学号:201240420121 Array ORACLE数据库系统实训 题目高校设备管理系统的设计与实现 专业网络工程 班级1班 姓名张长江 同组人员邓鹏飞、程文高、黄晓欢 指导教师张国军 2015 年 6 月27 日 目录 一实训概述 (2) 二数据需求分析 (3) 2.1实体及属性 (3) 2.2实体与实体的联系 (3) 2.3功能分析 (3) 2.3.1设备查找 (3) 2.3.2添加设备 (4) 2.3.3 编辑设备 (4) 2.3.4删除设备 (4) 2.3.5反馈管理 (4) 2.4 数据流 (4) 三概念设计(E-R) (7) 四逻辑结构设计和物理结构设计 (8) 1.1逻辑结构设计 (8) 1.2物理结构设计 (8) 1.2.1索引 (9) 1.2.2视图 (10) 1.2.3存储过程 (10) 五数据库在ORACLE中的实现 (11) 六课程实训总结 (14) 参考文献 (15) 一实训概述 Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的适应高吞吐量的数据库解决方案。 在了解了ORACLE数据库后,我们有必要对ORACLE和Sybase SQL Server 的比较,Oracle采用的是并行服务器模式,而Sybase SQL Server采用的是虚拟服务器模式,它没有将一个查询分解成多个子查询,再在不同的CPU上同时执行这些子查询。我们可以说在对称多处理方面Oracle的性能优于Sybase的性能。业务量往往在系统运行后不断提高,如果数据库数量达到GB以上时,我们在提高系统的性能方面可以从两方面入手,一种是提高单台服务器的性能,还有就是增加服务器数目。基于此,如果我们是提高单台服务器的性能,选择Oracle 数据库较好,因为它们能在对称多CPU的系统上提供并行处理。相反,由于Sybase的导航服务器使网上的所有用户都注册到导航服务器并通过导航服务提出数据访问请求,导航服务器则将用户的请求分解,然后自动导向由它所控制的多台SQL Server,从而在分散数据的基础上提供并行处理能力,我们可以选择它。这些都是在其他条件和环境相同的情况下比较的,这样才有可比性。在数据的分布更新方面,Oracle采用的是基于服务器的自动的2PC(两阶段提交),而Sybase采用的则是基于客户机DB-Library或CT-Library的可编程的2PC,因此我们在选择数据库方面,必须根据需要进行选择,比如,从事的社会保险软件的开发,考虑到数据量大,并发操作比较多,实时性要求高,我们后台基本采取的是ORACLE数据库。Oracle服务器由Oracle数据库和Oracle实例组成。Oracle实例由系统全局区内存结构和用于管理数据库的后台进程组成。 select* |字段表名 from 表名 where 布尔表达式【条件】 externalcandidate 职员相关信息 contractrecruiter 猎头公司 查看表里所有字段 describe[描述] contractrecruiter select cname,nperecentagecharge from contractrecruiter 不显示原来名字,显示现在名字【用AS】 select cname as "Recruiter Name",nperecentagecharge as "Hire Fees" from contractrecruiter 不显示原来名字,显示现在名字【可不用AS】 select cname "Recruiter Name",nperecentagecharge "Hire Fees" from contractrecruiter 【双引号是否写】 双引号是为了区分大小写 职位表 position select *from position 缺额运算:[想减] select VDESCRIPTION , nbudgetedstrength, NBUDGETEDSTRENGTH -NCURRENTSTRENGTH , NYEAR from position select VDESCRIPTION "Potion", nbudgetedstrength "Budgeted Strength" , NBUDGETEDSTRENGTH -NCURRENTSTRENGTH "Vacancies", NYEAR "Year" from position 显示非重复运行 查询来源地的人数 describe externalcandidate 查看职员城市名字 select ccity from externalcandidate 查看职员城市名字【名字不重复,插入一个关键字:distinct】select distinct ccity,cstate from externalcandidate 运算符: 两列 select vfirstname,vlastname from externalcandidate 字段拼接 select vfirstname||vlastname from externalcandidate select vfirstname||' '||vlastname from externalcandidate 学校 describe college 查看所有学校 select *from college 查看只是加利福尼亚的学校 select * from college where cstate='California' 一个条件 select vfirstname,vlastname,dbirthdate,ntestscore from externalcandidate where dbirthdate>='01-1月-70' 课程设计 课程题目:ORACLE应用系统设计设计题目:音像店信息管理系统 专业:计算机科学与技术 班级:计131 组员:李霆桑珠扎西虞洲 学号: 130761 130767 130762 日期: 2016-03-04 信息工程学院计算机科学与技术 目录 一.课程目的………………………………………………………. 二.题目要求……………………………………………………… 三.日期安排………………………………………………………. 四.组内分工……………………………………………………… 五.实验条件......................................................... ........................... 六.实验内容......................................................... ........................... (1)第一部分:Oracle管理技术……………………………………… 1.数据库管理…………………………………………………….. 2.角色和用户管理………………………………………………... 3.表和视图管理………………………………………………….. 4.索引和序列管理………………………………………………... 5.PL/SQL编程…………………………………………………… 6.使用游标、存储过程和触发器………………………………… 7.表空间管理……………………………………………………… 8.文件管理………………………………………………………… (2)第二部分:Oracle开发技术……………………………………….. ①数据库设计………………………………………………………………… ②界面设计.................................................... ③结果测试…………………………………………………………………… 七.问题及解决…………………………………………………….. 八.总结............................................... Oracle数据库技术 实习报告 姓名:陈华波 学院:计算机学院 专业:计算机科学与技术 学号:20111002654 班级:191112 指导老师:吴湘宁 时间:2015年1月6日 一、主要操作步骤 (一)配置监听程序:开始菜单中打开Oracle - OraDb11g_home1——配置和移植工具——Net Configuration Assistant; (二)使用使用Oracle SQL Developer链接所创建的数据库 在开始菜单中打开Oracle - OraDb11g_home1——应用程序开发——SQL Developer (三)使用PowerDesigner建立简单的关系型数据库 1、建表 打开PowerDesigner新建一个表,双击该表格,可以更改表属性,并为表添加字段 2、添加字段 3、添加表关系 4、生成物理数据模型 点击Tools——》Generate Physical Data Model,将概念数据模型转化为物理数据模型; 5、生成SQL命令语句 Database-》Generate Database,运行SQL Developer,打开生成的*.sql文件; 6、生成rtf格式数据设计报告 7、实习截图: 二、实习总结 通过老师在课上的讲解和几次上机实践,学会了Oracle数据库的基本理论知识和简单的操作。能够安装Oracle数据库,配置监听程序,学会了用PowerDesigner进行数据库建模,可以进行PL/SQL语言编程,学会简单操作PLSQL Developer等等。 学会使用Powerdesigner软件,建立关系型的数据库模型,添加字段,建立表关系,生成物理数据模型、SQL语句,等等。 以前在面向对象程序设计课程设计中使用过Access数据库,这个学习的Oracle被称之为大型的、专业数据库,广泛应用在各种大型项目中。然而,我的课程设计没有开发大型项目,没能够感受到Oracle大型数据库区别于其他中小型数据库的特性。不过,有一点可以感受到,那就是Oracle占用的计算机资源较多,在自己的电脑上运行比较慢。 总的来说这个课程还是学到了很多知识,和我们本学期的空间数据库课程有相通的地方,在以后会继续自学Oracle,争取更加熟练的使用。 三、报告 {(
: 目标表名称
{(
: 目标表名称
Oracle实验报告
(Oracle数据库管理)玩转实战教程学习笔记最全版
实验2 Oracle数据库体系结构_V2013
oracle笔记(3)
实验十一Oracle数据库备份与恢复
ORACLE笔记
Oracle 实验4(实验报告)-PL_SQL程序设计
oracle学习笔记
数据库sqlserver实验报告
四川师范大学《oracle》实验报告
《Oracle数据库》实验报告
Oracle学习笔记
oracle实验报告
21oracle实训报告
oracle数据库学习笔记心得
oracle设计实验报告材料
oracle实习报告陈华波