oracle操作语言细节

1.ORDER BY可以与Group by同时用,遵循先分组,在组里面进行排序。
2.有表复制:INSERT INTO [表1] SELECT * FROM [表2]; 将[表2]的数据复制进[表1],但表1的每一列数据类型都必须和表2一致。
3.无表复制:CREATE TABLE [表1] AS SELECT * FROM [表2];将表2复制到表1,要求:[表1]不存在就可以了。
4.只复制表结构:使用无表复制,只需查询的条件不成立(比如 WHERE 1=2),就不会查询出任何数据,从而复制一个表结构。
5.TRUNCATE删除命令慎用,语法:TRUNCATE TABLE [表名] TRUNCATE删除比DELETE快,但删除的数据无法恢复,DELETE命令删除后用日志恢复数据。
6.工作中运算符OR会被IN取代,理由,被OR修饰的列不能使用索引,降低查询效率,所以用In替代。
7.运算符NOT会被条件不成立的AND取代(比如:AND 1=2 ),理由同OR一样。
8.oracle中求余运算使用函数MOD(x,y).
9.escape关键字:例如:'0\%%'escape '\',解析,escape声明了字符[\]位转义字符,所以在'0\%%'中'\%'就代表着字符%,而不是oracle的占位符。escape只对有多重意义的字符进行转义。
10.集合运算:是查询效率最高的,包括:
(1).INTERSECT(交集):返回两个查询共有的记录。
     ey:SELECT deptno FROM dept INTERSECT SELECT deptno FROM emp;
(2).UNION ALL(并集):返回各个查询的多有记录,包括重复记录。
     ey:SELECT deptno FROM dept UNION ALL SELECT deptno FROM emp;
(3.)UNION(并集):发挥各个查询的所有记录,不包括重复记录。
     ey:SELECT deptno FROM dept UNION SELECT deptno FROM emp;
(4).MINUS(补集):返回第一个查询检索出的记录减去第二个查询检索出的记录之后剩余的记录。
ey:SELECT deptno FROM dept MINUS SELECT deptno FROM emp;
11.在查询条件中NULL值用 IS NULL做条件,非NULL用NOT IS NULL条件。
12.DISTINCT消除重复行,用Group by 取代,DISTINCT不支持索引,降低了查询效率。
13.BWTEEN...AND...操作所指定的范围也包括边界。
14.查询时,左联、右联在oracle中可以使用(+)来进行联合查询(oracle特有)。
   ey:SELECT e.ename from emp e,dept d where e.deptno(+)=d.deptno;就是右联,列后面带有(+)意味着此列是补充列。
15.使用INSERT INTO ...SELECT......UNION多行插入时,是无序插入的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值