oracle 的交并差函数,intersect;union;minus
操作表必须有相同的字段及数据类型, 可给列名其相同的别名实现
--intersect: 返回查询结果中相同的部分(交集)。
SELECT A,B FROM TABLE_A
INTERSECT
SELECT A,B FROM TABLE_B;
-- union,union all: 将查询的结果组合后返回, union会过滤重复,union all不过滤重复。 (合集)
-- TABLE_A和TABLE_B会去除重复数据
SELECT A,B FROM TABLE_A
UNION
SELECT A,B FROM TABLE_B;
minus: 返回在第一个查询结果中包含第二个查询结果中不包含的数据。(差集)
SELECT A,B FROM TABLE_A
MINUS
SELECT A,B FROM TABLE_B;
----------------------------------去重----------------------------------
使用rowid去重
ROWID是数据的详细地址,通过rowid,oracle可以快速的定位某行具体的数据的位置。通过下面的语句,可以保留重复记录中的最新一条记录(即最后插入的那条记录)。
--查询出ROWID 不是最大的重复数据
SELECT * FROM HOEGH
WHERE ROWID NOT IN
(SELECT MAX(ROWID) FROM HOEGH GROUP BY (H1, H2));
--删除表中 ROWID不是最大的数据(保留一条ROWID最小的数据)
DELETE FROM HOEGH
WHERE ROWID NOT IN
(SELECT MAX(ROWID) FROM HOEGH GROUP BY (H1, H2));
----------------------------------索引----------------------------------
Oracle 创建索引表空间语法
Oracle 的索引可分为5种,它们包括唯一索引、组合索引、反向键索引、位图索引和基于函数的索引。
1、创建索引的标准语法
以下为引用内容:
CREATE INDEX 索引名 ON 表名 (列名)
TABLESPACE 表空间名;
例如:
以下为引用内容:
CREATE INDEX idx_of_imsi ON uim_auth_file(imsi) TABLESPACE users;
2、创建唯一索引
以下为引用内容:
CREATE unique INDEX 索引名 ON 表名 (列名)
TABLESPACE 表空间名;
例如:
以下为引用内容:
CREATE UNIQUE INDEX idx_of_imsi ON uim_auth_file(imsi) TABLESPACE users;
3、创建组合索引
以下为引用内容:
CREATE INDEX 索引名 ON 表名 (列名1,列名2)
TABLESPACE 表空间名;
例如:
以下为引用内容:
CREATE INDEX idx_of_imsi ON uim_auth_file(iccid,imsi) TABLESPACE users;
4、创建反向键索引
以下为引用内容:
CREATE INDEX 索引名 ON 表名 (列名) reverse
TABLESPACE 表空间名;
例如:
以下为引用内容:
CREATE INDEX idx_of_imsi ON uim_auth_file(imsi) reverse TABLESPACE users;
来源:CSDN
作者:虛擬時間SOS
链接:https://blog.csdn.net/YJB666/article/details/103481305