oracle学习笔记(5)_高级查询

操作符

(1)算术运算

Oracle 中的算术运算符,没有 C#中的算术运算符丰富,只有+、-、*、/四个,其中除号(/)的结果是浮点数。求余运算只能借助函数:MOD(x,y):返回 x 除以 y 的余数。

(2)关系运算和逻辑运算

运算符

说明

=,<,>,<=,>=

 

!=,<>

不等于

(3)逻辑运算符

逻辑运算符有三个:AND、OR、NOT

(4)字符串连接操作符(||)

SELECT (ENAME || 'is a ' || JOB) AS "Employee Details"   FROM EMP    WHERE SAL>2000;

高级查询

1.DISTINCT 消除重复行

2.NULL 值用 IS NULL 作条件,非 NULL 值用 NOT IS NULL 做条件

3.IN 操作的还有 NOT IN

4.BETWEEN…AND…

5.LIKE 模糊查询,“%”和“_”

LIKE '字符串'[ESCAPE '字符']:例如:'%30\%%' escape '\'(包含“30%”的字符串,“\”指转义字符,“\%”在字符串中表示一个字符“%”)

6.集合运算

集合运算就是将两个或者多个结果集组合成为一个结果集。集合运算包括:

INTERSECT(交集),返回两个查询共有的记录。

UNION ALL(并集),返回各个查询的所有记录,包括重复记录。

UNION(并集),返回各个查询的所有记录,不包括重复记录。

MINUS(补集),返回第一个查询检索出的记录减去第二个查询检索出的记录之后剩 余的记录。

例如:

SELECT DEPTNO FROM DEPT      MINUS   SELECTDEPTNO FROM EMP;
INSERT INTO DEPT       SELECT 50,'公关部','台湾' FROM DUAL UNION SELECT60,'研发部','西安' FROM DUAL UNION SELECT 70,'培训部','西安' FROM DUAL ;

前面学习过可以通过 insert into …select 把一个结果集插入到另一张结构相同的表中,因此可以使用 union 把若干条记录一次性插入到一张表中。

7. 连接查询

在 SQL Server 中已经学习过内联接(inner join)、外联接(outer join),外联接又分为左外联 接(left outer join)和右外联接(right outer join)。Oracle 中对两个表或者若干表之间的外联接用 (+)表示。

 

SELECTe.ENAME,e.JOB,e.SAL,d.DNAME  FROM EMP e INNERJOIN DEPT d ON e.DEPTNO=d.DEPTNO WHERE e.SAL>2000;
SELECT e.ENAME,e.JOB,e.SAL,d.DNAME  FROMEMP e ,DEPT d  WHERE  e.DEPTNO(+)=d.DEPTNO;
SELECTe.ENAME,e.JOB,e.SAL,d.DNAME  FROM EMP e RIGHTOUTER JOIN DEPT d ON e.DEPTNO=d.DEPTNO;

 

 

 

 

你可能感兴趣的:(oracle,高级查询)