oracle入门学习笔记(四)

2014-11-24 14:18:32 · 作者: · 浏览: 3
sal from emp where ename=’SMITH’) where ename=’SCOTT’;

22. Oracle中的事务:

事务用于保证数据的一致性,它由一组相关的dml(数据操纵语言)语句组成,该组的dml语句要么全部成功,要么全部失败。Dml语言是说操纵语言,包括增删改操作。当执行事务操作的时候,oracle会在被作用的表进行加锁,防止其他用户对该表进行操作。

使用commit提交事务。当执行commit后,会确认事务的变化,结束事务、删除保存点、释放锁,当使用commit语句结束事务后,其他绘画可以查看事务变化后的新数据。

保存点(savepoint):是事务中的一点,用于取消部分事务,当结束事务时,会自动的删除该事务所定义的所有保存点。当执行回退事务rallback是,通过指定保存点可以回退到指定的点。这里需要注意的是这些保存点要想能够回退,是以没有commit为前提的。使用命令commit提交,使用exit退出的时候也会自动commit。

事务的几个重要操作:

1. 设置保存点:savepoint a;

2. 取消部分事务:rallback to a;

3. 取消全部事务:rollback;

在java中使用事务:

Try

{

//连接数据库。。。得到连接。。。

//不使用事务

//Sm.executeUpdate(“update emp set sal=sal-100 where ename =’SCOTT’”);

//Int i=10;i=i/0;抛出异常,下一句有可能不执行

//Sm.executeUpdate(“update emp set sal=sal+100 where ename=’SMITH’”);

//加入事务处理

Conn.setAutoCommit(false);//设置不能默认提交

//Sm.executeUpdate(“update emp set sal=sal-100 where ename =’SCOTT’”);

//Int i=10;i=i/0;抛出异常,下一句有可能不执行

//Sm.executeUpdate(“update emp set sal=sal+100 where ename=’SMITH’”);

//加入事务处理

Conn.setAutoCommit(false);//设置不能默认提交

Conn.commit();

Catch(Exception e )

{

Conn.rallback();//本身还会发生异常,用try捕获

}

}

只读事务:只允许执行查询的操作,不允许执行其他dml操作的事务。只读事务可以确保用户只能够取得某时间点的数据。

设置只读事务:set transaction read only

23. SQL函数的使用

1.字符函数:

lower(char):将字符串转化为小写

upper(char):将字符串转换为大写

length(char):返回字符串长度

substr(char,m,n):取字符串的字串

replace(char1,serarch_string,replace_string):替换函数

instr(char1,char2,[,n[,m[]):取字串位置函数

eg:将所有员工的名字按照小写显示:select lower(name) from emp;

2.数学函数:

cos,cosh,exp,ln,log,sin,sinh,sqrt,tan…

round(n,[m]):执行四舍五入,保留m位小数

trunk(n,[m]);截取数字,截取n小数点后的m位

mod(m,n):去模

floor(n):返回小于或者等于n的最大整数

ceil(n):返回大于或是等于n的最小整数

abs(n):绝对值

3.日期函数:默认格式为dd-mon-yy,例如12-7月-15,显示为2015-7-12。

Sysdate:当前系统时间。Select sysdate from emp;

Add_months(d,n):加一个月份。Eg:查找入职8个月入职的员工。

Select from emp where sysdate>add_months(hiredate,8);

Last_day(d):返回指定日期的最后一天

4.转换函数:用于将数据类型的转换,oracle提供自动转换。

to_char():转换字符函数

eg1:日期显示时分秒:select ename ,to_char(hiredate,’yyyy-mm-dd hh24:mi:ss’);

eg:显示日民币:select ename ,to_char(hiredate,’yyyy-mm-dd hh24:mi:ss’) to_char(sal,’L9999.99’);L表示当地语言,9999.99代表显示数字格式。

5.系统函数

Sys_context:查询系统参数

24. 数据库管理:

Sys:董事长

System:总经理

主要区别:

1. 存储的数据的重要性不同

Sys:所有oracle的数据字典的基表和视图都是放在sys用户中的,sys拥有dba,sysdba,sysoperar的角色,是用户权限最高的用户。

System:存放系统次一级的内部数据,拥有dba和sysdbajuese或者系统权限。

2. 权限的不同

Sys必须以as sysdba或者as stsoper形式登录,不能以normal形式登录

Systm如果正常登录,其实就是一个普通的dba用户,如果以as sysdba登录,结果实际上就是作为sys用户登录。

Sysoper较之sysdba不不能改变字符集、创建、删除数据库,只能万群恢复数据库等。

sysdba>sysoper>dba(大致如此)。其中dba不能启动关闭数据库。

显示初始化参数:show parameter

备份和恢复:逻辑备份使用export将数据对象的结构和数据备份到文件的过程。使用import进行导入。物理备份为指的是可以在数据库open或者close的状态下进行数据备份,而逻辑备份只能在数据库open的时候进行。

导出:导出表,导出方案,导出数据库,使用exp命令完成,常用的选项有:

Userid:用于指定齿形导出操作的命令名,口令

Tables:用于指定导出操作的表

Owner:用于指定执行导出操作的方案

Full=y:用于指定执行导出操作的数据库

Rows:用于指定导出操作的增量类型

File:用于指定导出文件名

Inctype:用于指定导出操作的增量类型

A导出表:

Exp userid=scott/tiger@MyDB tables=(emp) file=d:\e1.dmp;导出自己的表。

Exp userid=system/manager@myoral tables=(scott.emp) file=d:\e2.emp;导出其他方法的表,需要dba权限

B.导出表结构:

Exp userid=scott/tiger@MyDB tables=(emp) file=d:\e3.dmp rows=n

C.直接导出方式:速度快

Exp userid=scott/tiger@MyDB tables=(emp) file=d:\e3.dmp direct=y;需要数据库的字符集合客户端的字符集完全一致。

D.导出方案:

Exp scott/tiger@myDB owner=scott file