Oracle数据库基本操作
用户
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";
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);
导入导出
• 导入:
– 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
基本概念
• 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
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);
表空间
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 fiቤተ መጻሕፍቲ ባይዱes
Password file
Alert and trace log files
基本概念
• 数据库逻辑结构
Logical
Database
Physical
Schema
Oracle数据库基本操作
--------- 陆莉军
课程目的
• • • • 了解Oracle数据库中的一些基本概念 在Windows下Oracle客户端配置(TNS) 在PL/SQLDeveloper中管理常用的对象 通过代码实现对Oracle数据库中数据的操作
基本概念
• 数据库物理结构
Instance
管理常用的对象
• 函数:
管理常用的对象
• 存储过程:
管理常用的对象
• 任务:
通过代码操作数据
• 原始做法:使用OracleConnection,定义好连接字符串,然后创建 OracleCommand,执行相应的命令。 • 改进做法:使用Microsoft的EnterpriseLibrary:
– ROWNUM 用于控制查询结果的行数(类似SQLServer中 的TOP) 比如:Select * from 表名/视图名 where rownum<=10 – 字符串连接 使用 || 比如: ‘aaa’||’bbbb’ – 空表:DUAL Oracle中的查询语句必须包含FROM 比如:Select getdate() from dual – 取得系统时间sysdate
• 视图:
创建,修改视图: 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,可以方 便的管理一些常用的对象
管理常用的对象
• 表:
管理常用的对象
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 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 函数名;
内存结构
System Global Area (SGA)
进程 Background processes
存储结构
数据库文件
SGA Shared pool Streams pool Large pool