oracle高级语法(事物、函数、存储过程、触发器、异常).docx
《oracle高级语法(事物、函数、存储过程、触发器、异常).docx》由会员分享,可在线阅读,更多相关《oracle高级语法(事物、函数、存储过程、触发器、异常).docx(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Xmanager工具:可以远程的调用,在本地显示一个图形化。-tnsnames.oravi $ORACLE_HOME/network/admin/tnsnames.ora在Linux中,如何图形化配置网络服务名:进入oracle用户-netmgr-Oracle- SID(实例)删除重装数据库配置助手dbca -一般来说一个Oracle服务器只有一个实例Transaction Processing(事务处理).step 10 : 选择字符集编码-事务: 举例:转账 A - B ¥100A:update tb_balance set balance = balance-100 where id =
2、 1001;B:update tb_balance set balance = balance+100 where id = 1002; 上述操作必须 : 要么全部成功,要么全部失败事务是 一组DML组成的Commit :提交到SID,一旦提交不能修改Rollback :回滚到修改前锁: 锁一般加在数据库中的表上 行锁 表锁 字段锁-提交: commit; 结束事务、删除保存点、释放锁 rollback;删除保存点、释放锁保存点:savepoint 保存点的名字rollback to 保存点的名字 -数据库的事务隔离级别: 1、读未提交 - 最不安全的 2、可重复读 - MYSQL的事务隔离级
3、别 3、读已提交 - Oracle的事务隔离级别 4、序列化 - 一个一个操作 ,效率最低-事务什么是开启?SQLPLUS客户端登陆成功后,默认开启事务什么时候提交? 手动提交 commit; 自动提交 客户端正常退出exitcommit后,一定会重新开启一个新的事务-只读事务: set transaction read only;特点:只对当前用户当前窗口有效应用:统计某个时间点一共卖票的张数-* 小技巧:dual - sys用户创建的动态的表。select lower(ABC) from dual;Oracle的函数max min ,avg ,count ,sum - 统计函数 ,wher
4、e 条件后面不能跟统计函数。Oracle的函数: 必须有输入, 肯定有返回值字符串处理:lower(字符串) -转换成小写 ,返回类型字符串upper(字符串) - 转换成大写 返回类型字符串length(字符串); -字符串的长度 , 返回类型数字substr(char,m,n) -截取字符串 ,返回类型字符串Oracle的字符串,下标从1开始-Oracle数学函数round(n,m) - 四舍五入取m位小数 ,返回数字类型 trunc(n,m) - 截取指定位数小数,保留m位mod(m,n) - 取模floor(n) - 不大于n的最大整数ceil(n) - 不小于n的最小整数power(
5、m,n) - m 的n 次方abs(n) - n的绝对值-格式化输出to_char(待转换的数据,格式) 日期的处理: to_date函数(将要成的字符串,格式)to_date(1990-1-1 14:00:20,yyyy-mm-dd hh24:mi:ss);-sysdate -返回当前时间add_months(d,n) - 在原有日期基础上加上n个月add_months(sysdate,3); -3个月后的今天last_day(日期) -返回日期所在月份最后一天计算日期:select sysdate - to_date(2014-3-1 14:00:00,yyyy-mm-dd hh24:mi
6、:ss) from dual;-视图: 虚拟的表,只读的,保存的是一个查询的结果view_test;select * from emp where deptno=20;select * from view_test;-create view 视图名称 as 查询结果表一开始没有创建视图的权限:grant create view to test; -数据库的备份和恢复:备份的几种方式:1) create table emp_bak as select * from emp;2) 导出sql文件3) 使用工具exp 前提: 只要安装Oracle的客户端,就有这个工具exp 命令如何使用? user
7、id - 登录到数据库的用户名密码,网络服务名 test/abc tables - 需要备份哪些表 file - 客户端生成的文件放在哪个位置 rows=n -只导出表结构,不导出表的数据1)举例:备份emp表exp userid=test/abc tables=(emp,dept) file=d:test1.dumpimp导入工具,恢复empimp userid=test/abc tables=emp file=d:test1.dump rows=n;-了解:数据字典动态性能视图: 需要了解用户到底创建了哪些表? alter user scott account unlock;select
8、* from all_tables where owner=yang; -看yang用户创建的所有的表select * from user_all_tables; -查看所有的用户的表select * from v$session ; -查看有哪些终端连入oracleselect * from dba_sys_privs where grantee=RESOURCE; select * from dba_tab_privs where grantee=TEST;select * from dba_role_privs where grantee=TEST;什么是表空间? 在存储里面 *.dbf
9、文件,存放表和视图、索引-数据的完整性:Student: id name classNo(fk) 1 zhangsan 10 Class: cid cname 10 class10-使用约束,维护数据的完整性约束:限定不能做什么!Oracle的约束: 非空 not null: 字段输入必须有值 唯一 unique: 字段的值不能重复 主键 primary key: not null + unique 外键 foreign key: 引用另外一个地方的一个字段 checked : 限定只能输入固定的值添加约束:1、属性级约束(在建表的外面添加约束)(建议使用,因为这样可以方便添加注解,增加代码的
10、可读性) 第一种分类,列的属性not null, uniquealter table tb_balance modify(字段 类型 not null);create table tb_balance( acctid number, balance number(9,2); 第二种分类,必须是oracle中的一个对象primary, foreign keyalter table 表名 add constraint 约束名 约束类型约束名定义规则: pk_XXXX fk_XXXXalter table 表名 add constraint 约束名 primary key(字段);alter tab
11、le tb_balance add constraint fk_bank foreign key(bank) references tb_bank(bankid);删除约束:alter table tb_balance drop constraint 约束名;-2、表级约束(写在表里面,缺点:不利于注解键的作用):Create table tb1(C# varchar2(20),Name varchar2(20)Primary key(C#),Foreign Key(C#) references T(T#)-索引(index): 为了提高查询效率。创建索引后搜索机制将会自动优先调用索引。Stu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle 高级 语法 事物 函数 存储 过程 触发器 异常
限制150内