Oracle数据库基本操作
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
导入导出
• 导入:
– imp dbuser/oracle file=oradb.dmp log=oradb.log full=y buffer=4096000 commit=y ignore=y feedback=10000
• 导出
– exp dbuser/oracle file=dbuser.dmp log=dbuser.log owner=dbuser buffer=4096000 feedback=10000
Tablespace
Data file
Segment
Extent
Oracle data block
OS block
基本概念
• 用户,角色,权限
Users Jenny David Rachel
Roles
HR_MGR
HR_CLERK
Privileges
Delete employees. Insert employees.
CREATE OR REPLACE PACKAGE GLOBALPKG AS TYPE outlist IS REF CURSOR; TRANCOUNT INTEGER := 0; IDENTITY INTEGER; END;
Database db = DatabaseFactory.CreateDatabase("WebAudit_ConnectionString"); DbCommand cmd = db. GetStoredProcCommand (存储过程名称); db.AddInParameter(cmd, “参数名”, DbType.String, 参值); if (DatabaseSettings.GetDataBaseType() == DatabaseSettings.DataBaseType.oracle) cmd.Parameters.Add(new OracleParameter("cur_OUT_f", OracleType.Cursor, 0, ParameterDirection.Output, string.Empty, DataRowVersion.Default, true, null)); db.ExecuteDataView(cmd);
Select employees.
Update employees.
注意区分
• SYS, SYSTEM, SYSMAN是用户 • SYSDBA , SYSOPER 是系统权限 • DBA 是角色
基本概念
• 常用对象
数据表
视图
一个模式名 存储过程
类型定义
触发器
函数
序列
任务
权限
默认表空间
基本概念
• SQL语句------Oracle特有的写法
表空间
CREATE TABLESPACE EpointSystemSupport DATAFILE '/oracle/oradata/orcl/EpointSystemSupport.dbf' SIZE 50M AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED LOGGING PERMANENT EXTENT MANAGEMENT LOCAL AUTOALLOCATE BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT MANUAL FLASHBACK ON;
Data files
Online redo log files
Parameter file
Backup files
Archive log files
Password file
百度文库
Alert and trace log files
基本概念
• 数据库逻辑结构
Logical
Database
Physical
Schema
Process Monitor (PMON)
Database Writer (DBWn)
LogWriter (LGWR)
Archive log files
Checkpoint (CKPT)
Control files Data files Redo log files
Archiver (ARCn)
Control files
基本概念
• SQL语句------Oracle特有的写法
– MERGE MERGE INTO bonuses D USING (SELECT employee_id, salary, department_id FROM employees WHERE department_id = 80) S ON (D.employee_id = S.employee_id) WHEN MATCHED THEN UPDATE SET D.bonus = D.bonus + S.salary*.01 WHEN NOT MATCHED THEN INSERT (D.employee_id, D.bonus) VALUES (S.employee_id, S.salary*0.1);
• 视图:
创建,修改视图: CREATE OR REPLACE VIEW 视图名称 AS SELECT ***********************
• 序列:
NEXTVAL CURRENTVAL
管理常用的对象
• 触发器:
CREATE TRIGGER hr.salary_check BEFORE INSERT OR UPDATE OF salary, job_id ON hr.employees FOR EACH ROW WHEN (new.job_id <> 'AD_VP') CALL check_sal(:new.job_id, :new.salary, :new .last_name);
• 这个别名在哪配置?
(C:\Oracle\product\11.1.0\client_1\network\admin\tnsnames.o ra)
• 有没有图形化配置工具?(NETCA)
管理常用的对象
通过PL/SQL Developer,可以方 便的管理一些常用的对象
管理常用的对象
• 表:
管理常用的对象
Database db = DatabaseFactory.CreateDatabase("WebAudit_ConnectionString"); DbCommand cmd = db.GetSqlStringCommand(strSql); db.AddInParameter(cmd, “参数名”, DbType.String, 参值); db.ExecuteDataView(cmd); db.ExecuteNonQuery(cmd); db.ExecuteScale(cmd); db. ExecuteReader(cmd);
内存结构
System Global Area (SGA)
进程 Background processes
存储结构
数据库文件
SGA Shared pool Streams pool Large pool
Java pool
Database buffer cache
Redo log buffer
System Monitor (SMON)
管理常用的对象
• 函数:
管理常用的对象
• 存储过程:
管理常用的对象
• 任务:
通过代码操作数据
• 原始做法:使用OracleConnection,定义好连接字符串,然后创建 OracleCommand,执行相应的命令。 • 改进做法:使用Microsoft的EnterpriseLibrary:
通过代码操作数据
• 与存储过程互动:
create or replace procedure Test( BanJieType in varchar2, cur_OUT_f OUT GLOBALPKG.outlist) as begin --TODO OPEN cur_OUT_f FOR select * from 临时表; end Test;
Oracle客户端配置
• 客户端通过OracleConnection来连接数据库,其中 连接串写法为: Data Source=oracleDB;Persist Security Info=True;User ID=EpointOA7;Password=11111;Unicode=True。 • 连接串中的oracleDB并不是直接指向到数据库,而 是在本地oracle客户端中配置的一个数据库别名, 称之为TNS名称。
– ROWNUM 用于控制查询结果的行数(类似SQLServer中 的TOP) 比如:Select * from 表名/视图名 where rownum<=10 – 字符串连接 使用 || 比如: ‘aaa’||’bbbb’ – 空表:DUAL Oracle中的查询语句必须包含FROM 比如:Select getdate() from dual – 取得系统时间sysdate
用户
CREATE USER EpointSystemSupport IDENTIFIED BY "11111" DEFAULT TABLESPACE "EPOINTSYSTEMSUPPORT" TEMPORARY TABLESPACE "TEMP" QUOTA UNLIMITED ON "EPOINTSYSTEMSUPPORT"; GRANT "CONNECT" TO EpointSystemSupport; GRANT "RESOURCE" TO EpointSystemSupport; ALTER USER EpointSystemSupport DEFAULT ROLE "CONNECT", "RESOURCE";
基本概念
• 存储过程,触发器,函数
创建存储过程: create or replace procedure 存储过程名(Name in out type, Name in out type, ...) is begin 处理程序 end 存储过程名; 创建触发器: create or replace trigger 触发器名 before/after insert/update/delete on 表名 for each row declare begin 处理程序 end 触发器名; 创建函数: create or replace function 函数名(Name in type, Name in type, ...) return varchar2 is Result varchar2; begin 处理程序 return(Result); end 函数名;
Oracle数据库基本操作
--------- 陆莉军
课程目的
• • • • 了解Oracle数据库中的一些基本概念 在Windows下Oracle客户端配置(TNS) 在PL/SQLDeveloper中管理常用的对象 通过代码实现对Oracle数据库中数据的操作
基本概念
• 数据库物理结构
Instance
谢谢!
基本概念
• SQL语句------常用函数
– – – – – – – – 时间转字符串: to_char(sysdate,'yyyymmddhh24miss') 字符串转时间:to_date(‘1981-10-10’) 数字转换:TO_NUMBER( '9999') 字符串截位: SELECT SUBSTR('ABCDEFG',3,4) "Substring" FROM DUAL; 字符补全: SELECT (L/R)PAD(‘MORRISON’,12,‘ab’) “PAD example" FROM DUAL; (L/R)RIM: SELECT (L/R)TRIM('BROWNINGyxXxy','xy') "RIM example" FROM DUAL; TRIM:SELECT TRIM (0 FROM 0009872348900) "TRIM Example" FROM DUAL; NVL: SELECT last_name, NVL(TO_CHAR(commission_pct), 'Not Applicable') "COMMISSION" FROM employees