Oracle实操四之DML(二)

操作符
1.算术运算
只有加减乘除运算符,出号(/)结构是浮点数,求余运算函数:MOD(X,Y)。

2.关系运算和逻辑运算
这里写图片描述

3.字符串连接操作符(||)**

(注意:Oracle 中字符串可以用单引号,也可以用双引号,在别名中存在空格时,必须用双 引号。在表名、列名时用双引号。)


高级查询
1. 消除重复行
中结果中,可能出现若干行相同的情况,那么可以使用 DISTINCT 消除重 复行。

 SELECT DISTINCT DEPTNO FROM EMP

2.NULL操作
如果某条记录中有缺少的数据值,就是空值(NULL 值)。空值不等于 0 或者空格,空值 是指未赋值、未知或不可用的值。任何数据类型的列都可以包括 NULL 值,除非该列被定义 为非空或者主键。

在查询条件中 NULL 值用 IS NULL 作条件,非 NULL 值用 NOT IS NULL 做条件。

3.IN操作
在 Where 子句中可以使用 IN 操作符来查询其列值在指定的列表中的行。对应 IN 操作的还有 NOT IN,用法一样,结果相反。

4.BETWEEN…AND…
在 WHERE 子句中,可以使用 BETWEEN 操作符来查询列值包含在指定区间内的行。

5.LIKE 模糊查询
在一些查询时,可能把握不准需要查询的确切值,比如百度搜索时输入关键字即可查询 出相关的结果,这种查询称为模糊查询。模糊查询使用 LIKE 关键字通过字符匹配检索出所 需要的数据行。字符匹配操作可以使用通配符“%”和“_”:

  • %:表示零个或者多个任意字符。
  • _:代表一个任意字符。

语法是:LIKE ‘字符串’[ESCAPE ‘字符’]。匹配的字符串中,ESCAPE 后面的“字符”作为转 义字符。
这里写图片描述

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

  • INTERSECT(交集),返回两个查询共有的记录。
  • UNION ALL(并集),返回各个查询的所有记录,包括重复记录。
  • UNION(并集),返回各个查询的所有记录,不包括重复记录。
  • MINUS(补集),返回第一个查询检索出的记录减去第二个查询检索出的记录之后剩 余的记录。

当使用集合操作的时候,要注意:查询所返回的列数以及列的类型必须匹配,列名可以 不同。

eg:

SQL> SELECT DEPTNO FROM DEPT   
2  MINUS   
3  SELECT DEPTNO FROM EMP;

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

eg:
内联接

SQL> SELECT e.ENAME,e.JOB,e.SAL,d.DNAME   
2  FROM emp e,dept d   
3  WHERE e.deptno=d.deptno   
4  AND e.SAL>2000; 

内联接

SELECT e.ENAME,e.JOB,e.SAL,d.DNAME  
FROM EMP e INNER JOIN DEPT d ON e.DEPTNO=d.DEPTNO 
WHERE e.SAL>2000   

这里 INNER JOIN 中,关键字 INNER 可以省略

eg:
请查询出每个部门下的员工姓名,工资。
Emp 表用外键 deptno 引用 Dept 表中的 deptno,在 Dept 表中如果有某些部门没有员工, 那么用内联接,没有员工的部门将无法显示,因此必须以 Dept 表为基准的外联接。

外联接

SQL> SELECT e.ENAME,e.JOB,e.SAL,d.DNAME   
2  FROM EMP e ,DEPT d   
3  WHERE  e.DEPTNO(+)=d.DEPTNO 

(+):Oracle 专用的联接符,在条件中出现在左边指右外联接,出现在右边指左外 联接。

SELECT e.ENAME,e.JOB,e.SAL,d.DNAME  
FROM EMP e RIGHT OUTER JOIN DEPT d ON e.DEPTNO=d.DEPTNO 

这里 RIGHT OUTER JOIN 中,关键字 OUTER 可以省略。

猜你喜欢

转载自blog.csdn.net/qq_40104617/article/details/82658975
今日推荐