Oracle入门教程

1. 删除表的注意事项 
在删除一个表中的全部数据时,须使用TRUNCATE TABLE 表名;因为用DROP TABLE,DELETE * FROM 表名时,TABLESPACE表空间该表的占用空间并未释放,反复几次DROP,DELETE操作后,该TABLESPACE上百兆的空间就被耗光了。 
2.having 子句的用法 
having 子句对 group by 子句所确定的行组进行控制,having 子句条件中只允许涉及常量,聚组函数或group by 子句中的列.

3.外部联接"+"的用法 
外部联接"+"按其在"="的左边或右边分左联接和右联接.若不带"+"运算符的表中的一个行不直接匹配于带"+"预算符的表中的任何行,则前者的行与后者中的一个空行相匹配并被返回.若二者均不带’+’,则二者中无法匹配的均被返回.利用外部联接"+",可以替代效率十分低下的 not in 运算,大大提高运行速度.例如,下面这条命令执行起来很慢 

    左连接与右连接的区别在于以左(右)边为基准,左连接“+”标记“=”号右边的表,左表全部显示,右表若匹配则显示,若不匹配则补空。


用外联接提高表连接的查询速度 
在作表连接(常用于视图)时,常使用以下方法来查询数据:

SELECT PAY_NO, PROJECT_NAME
  FROM A
  WHERE A.PAY_NO NOT IN (SELECT PAY_
  NO FROM B WHERE VALUE >=120000);

  但是若表A有10000条记录,表B有10000条记录,则要用掉30分钟才能查完,主要因为NOT IN要进行一条一条的比较,共需要10000*10000次比较后,才能得到结果。该用外联接后,可以缩短到1分左右的时间:

            //左连接

SELECT PAY_NO,PROJECT_NAME
  FROM A,B
  WHERE A.PAY_NO=B.PAY_NO(+)
  AND B.PAY_NO IS NULL
  AND B.VALUE >=12000;

 

4.set transaction 命令的用法 
在执行大事务时,有时oracle会报出如下的错误: 
ORA-01555:snapshot too old (rollback segment too small) 
这说明oracle给此事务随机分配的回滚段太小了,这时可以为它指定一个足够大的回滚段,以确保这个事务的成功执行.例如

set transaction use rollback segment roll_abc;
  delete from table_name where ...
  commit;

 

5.数据库重建应注意的问题 
在利用import进行数据库重建过程中,有些视图可能会带来问题,因为结构输入的顺序可能造成视图的输入先于它低层次表的输入,这样建立视图就会失败.要解决这一问题,可采取分两步走的方法:首先输入结构,然后输入数据.命令举例如下 (uesrname:jfcl,password:hfjf,host sting:ora1,数据文件:expdata.dmp): 
imp jfcl/hfjf@ora1 file=empdata.dmp rows=N 
imp jfcl/hfjf@ora1 file=empdata.dmp full=Y buffer=64000 
commit=Y ignore=Y

      第一条命令输入所有数据库结构,但无记录.第二次输入结构和数据,64000字节提交一次.ignore=Y选项保证第二次输入既使对象存在的情况下也能成功.

select a.empno from emp a where a.empno not in
  
  (select empno from emp1 where job=’SALE’);

倘若利用外部联接(左连接 ),改写命令如下:


select a.empno from emp a ,emp1 b
  
  where a.empno=b.empno(+)
  
  and b.empno is null
  
  and b.job=’SALE’;

可以发现,运行速度明显提高.

6.从已知表新建另一个表:

CREATE TABLE b
  AS SELECT * (可以是表a中的几列)
  FROM a
  WHERE a.column = ...;

7.查找、删除重复记录:

法一: 用Group by语句 此查找很快的

select count(num), max(name) from student --查找表中num列重复的,列出重复的记录数,并列出他的name属性
  group by num
  having count(num) >1 --按num分组后找出表中num列重复,即出现次数大于一次
  delete from student(上面Select的)
  这样的话就把所有重复的都删除了。-----慎重

法二:当表比较大(例如10万条以上)时,这个方法的效率之差令人无法忍受,需要另想办法:


  ---- 执行下面SQL语句后就可以显示所有DRAWING和DSNO相同且重复的记录
  SELECT * FROM EM5_PIPE_PREFAB
  WHERE ROWID!=(SELECT MAX(ROWID) FROM EM5_PIPE_PREFAB D --D相当于First,Second
  WHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING AND
  EM5_PIPE_PREFAB.DSNO=D.DSNO);
 ---- 执行下面SQL语句后就可以刪除所有DRAWING和DSNO相同且重复的记录
  DELETE FROM EM5_PIPE_PREFAB
  WHERE ROWID!=(SELECT MAX(ROWID) FROM EM5_PIPE_PREFAB D
  WHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING AND
  EM5_PIPE_PREFAB.DSNO=D.DSNO);

分类:  SQL
oracle基础教程 课程说明 1 课程介绍 1 课程目标 1 相关资料 1 第1章 ORACLE数据库概述 2 1.1 产品概述 2 1.1.1 产品简介 2 1.1.2 基本概念 3 1.2 ORACLE系统结构 4 1.2.2 ORACLE物理结构 4 1.2.3 系统全局区 6 1.2.4 进程 8 1.3 存储管理 9 1.3.2 逻辑结构 10 1.3.3 表(Table) 14 1.3.4 视图(View) 18 1.3.5 索引(Index) 18 1.3.6 同义词(Synonym) 19 1.3.7 序列(Sequence) 19 1.3.8 数据库链(Database Link) 20 第2章 管理ORACLE数据库 21 2.1 基本概念 21 2.1.1 数据字典 21 2.1.2 事务管理 23 2.1.3 数据库管理员(DBA) 24 2.1.4 ORACLE的四种状态 25 2.2 SQL*Plus方式的ORACLE数据库启动和关闭 26 2.2.1 启动数据库 26 2.2.2 关闭数据库 26 2.3 svrmgrl方式的ORACLE数据库启动和关闭 28 2.3.1 启动数据库 28 2.3.2 关闭数据库 30 2.4 应用开发工具(SQL * Plus) 31 2.4.1 SQL 32 2.4.2 PL/SQL 33 2.4.3 数据库管理工具 36 2.5 ORACLE用户及权限管理 36 2.5.1 ORACLE的用户管理 37 2.5.2 ORACLE的权限管理 38 2.6 ORACLE数据库的备份与恢复 39 2.6.1 Export 转入程序 40 2.6.2 Import 转入程序 42 2.6.3 增量卸出/装入 44 第3章 ORACLE数据库的网络应用 46 3.1 SQL*Net产品介绍 46 3.2 配置客户机/服务器结构 47 3.2.1 配置listener.ora 47 3.2.2 配置tnsnames.ora文件 48 第4章 常用任务示例 51 4.1 如何恢复被误删的数据文件 51 4.2 如何杀掉吊死session 51 4.3 如何修改字符集 51 4.4 如何追加表空间 51 4.5 如何加大表的maxextents值 52 4.6 如何查询无效对象 52 4.7 怎样分析SQL语句是否用到索引 52 4.8 怎样判断是否存在回滚段竞争 53 4.9 怎样手工跟踪函数/存储过程执行情况 54 4.10 多种业务使用同一数据库如何分配回滚段 54 4.11 怎样倒出、倒入文本数据 54 4.11.1 倒出 54 4.11.2 倒入 55 4.12 如何更新当前数据库日志备份方式为archive 56 4.13 Unix环境下如何实现自动备份 56 4.13.1 设置运行环境 56 4.13.2 倒出数据 56 4.13.3 异地备份 57 4.13.4 启动备份进程 58 4.14 怎样分析ORACLE故障 59 小结 61 附录A ORACLE数据字典与视图 62 附录B 动态性能表 68 附录C SQL语言运算符与函数 70
引 言 ............................................................... . ............................... . ............................... . ................... 3 第一章 数 据 库基 础 ............................... . ............................... . ............................... . ......................... 6 第二章 O r a c l e 入 门 ............................... . ............................... . ............................... . ......................... 6 第三章 查 询 基 础 ............................... . ............................................................... . ........................... 11 第四章 单 行 函 数 ............................... . ............................................................... . ........................... 14 第五章 分 组 函 数 ............................... . ............................................................... . ........................... 19 第六章 多 表 查 询 ............................... . ............................................................... . ........................... 21 第七章 子 查 询 ............................... . ............................................................... . ............................... 24 第八章 高 级 查 询 ............................... . ............................................................... . ........................... 40 第九章 数 据 字 典 ............................... . ............................................................... . ........................... 43 第十章 O r a c l e 数据类 型 ............................... . ............................................................... . ............... 44 第十一章 O r a c l e 体系结构 ( D B A ) ................................................................................................ 45 第十二章 DD L ( 改变 表 结构 ) ............................... . ............................................................... . ........ 46 第十三章 D M L ( 改变数 据 结构 ) ............................................................................................... . . 48 第十四章 约 束 ............................... . ............................................................... . ............................... 49 第十五章 视 图 ............................... . ............................................................... . ............................... 55 第十六章 索 引 ............................... . ............................................................... . ............................... 56 第十七章 序 列、同 义 词 ............................... . ............................................................... . ............... 65 第十八章 P L S Q L ............................... . ............................................................... . .......................... 67 第十九章 游 标、函 数 ............................... . ............................... . ............................... . ................... 79 第二十章 存 储过 程 ............................... . ............................... . ............................... . ....................... 86 第二十一章 触发 器 ............................... . ............................... . ............................... . ....................... 90 第二十二章 事务( 数 据库系 统 概论 ) ............................... . ............................... . ....................... 99 第二十三章 用户管 理 ............................... . ............................... . ............................... . ................. 100 第二十四章 备份 恢 复 S Q L L o a d e r ............................................................... . .......................... 104 第二十五章 数据库 设 计范 式 ............................................................................................... . ..... 106 第二十六章 数据库 设 计工 具 ............................................................................................... . ..... 107 第二十七章 对象关 系 数据库 系 统 ............................................................... . ............................. 1 12 第二十八章 其他数 据 库 ............................... . ............................................................... . ............. 1 13 第一章 数据库基础 1 1 1 1 . . . . 1 1 1 1 、数据库 基 本概念 数据库 ( D a t a b a s e , D B ) 数据库管 理 系统 ( D a t a b a se M a n a g e m e nt S y s t e m , D B M S ) 数据库管 理 员( D a t a b a se A d m i n i s t r a t o r , D BA ) 数据库系 统 ( D a t a b a se S y s t e m , D B S ) 1 1 1 1 . . . . 2 2 2 2 、关系型 数 据库 Q Q Q Q : : : : 目前都有哪些主流的关系 型 数据库 A A A A : : : : O O O O r r r r a a a a c c c c l l l l e e e e O O O O r r r r a a a a l l l l c c c c e e e e 、 I I I I B B B B M M M M D D D D B B B B 2 2 2 2 、 M M M M S S S S S S S S Q Q Q Q L L L L / / / / S S S S erererer v v v v e e e e r r r r 、 S S S S y y y y B B B B ase ase ase ase S S S S y y y y B B B B a a a a s s s s e e e e 、 I I I I B B B B M M M M I I I I n n n n f f f f o o o o r r r r m m m m i i i i x x x x 、 M M M M y y y y S S S S Q Q Q Q L L L L 、 A c c e ss Q Q Q Q : : : : X X X X M M M M L L L L , , , , T T T T X X X X T T T T 可以做为数据库吗? 1 1 1 1 . . . . 3 3 3 3 、 E E E E - - - - R R R R 模型 ( E E E E n n n n t t t t r r r r y y y y - - - - ReReReRe lat lat lat lat i i i i o o o o n n n n )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值