首页 > 数据库技术 > 详细

Oracle函数(二)

时间:2020-02-11 18:26:10      阅读:143      评论:0      收藏:0      [点我收藏+]

1. 单行函数

1.1 字符函数

(1)小写字符 --> 大写字符

  upper(‘yumiko‘)

如:

技术分享图片

(2)大写字符 --> 小写字符

  lower(‘YUMIKO‘)

如:

技术分享图片

1.2 数值函数

(1)四舍五入函数

  ROUND(),默认取整,可以指定保留的位数。

如:

技术分享图片技术分享图片

1.3 日期函数

  Oracle中提供了很多和日期相关的函数,包括日期的加减,在日期加减时遵循以下规则:

  日期 + 数字 = 日期

  日期 - 数字 = 日期

  日期 - 日期 = 数字

(1)查询员工进入公司的周数

如:

技术分享图片

(2)MONTHS_BETWEEN():获取两个时间段中的月数

如:

技术分享图片

1.4 转换函数

(1)TO_CHAR:字符串转换函数

  技术分享图片        技术分享图片         技术分享图片

(2)TO_DATE:日期转换函数,把字符串的数据转换成日期类型。

如:

技术分享图片

1.5 通用函数

(1)NVL:空值处理

(2)DECODE函数:该函数类似if...else if ... else

语法:
DECODE(col/expression,[search1,result1],[search2,result2]...[default])

  col/expression:列名或表达式

  search1,search2:用于比较的条件

  result1,result2:返回值

如果col/expression和serach i 匹配就返回result i,否则返回default的默认值。

技术分享图片

 (3)case when函数

语法:
CASE expr WHEN comparison_expr1 THEN return_expr1

      [WHEN comparison_expr2 THEN return_expr2

      WHEN comparison_expr3 THEN return_expr3

      ELSE else_expr]

END

2. 多行函数

2.1 统计记录数count()

  SELECT COUNT(ename) from emp;

2.2 最小值查询min()

2.3 最大值查询max()

2.4 查询平均值avg()

2.5 求和函数sum()

3. 分组统计GROUP BY

语法:

SELECT * |列名 FROM 表名 {WHERE 查询条件} {GROUP BY 分组字段} ORDER BY 列名1 ASC|DESC,列名2...ASC|DESC

 例:查询每个部门的人数。

  SELECT deptno,COUNT(ename) FROM emp GROUP BY deptno;

 注意:1)如果使用分组函数,SQL只可以把GROUP BY分组条件字段和分组函数查询出来,不能有其他字段。

    2)如果使用分组函数,不使用GROUP BY只可以查询出来分组函数的值

    SELECT COUNT(ename) FROM emp ;

    技术分享图片

 4. 多表查询

语法:SELECT {DISTINCT} * |列名.. FROM 表名 别名,表名1 别名 {WHERE 限制条件 ORDER BY 排序字段 ASC|DESC...}

笛卡尔积:如查询两张表,这两个表记录数的乘积,我们称为笛卡尔积。

4.1 关联查询:使用两张表的关联字段进行查询。

如:select * from emp,dept where emp.deptno = dept.deptno;

4.2 连接查询

  JOIN:如果两个表中至少有一个匹配,则返回行。

  LEFT JOIN:即使右表中没有匹配,也从左表返回所有的匹配行。

  RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的匹配行。

  FULL JOIN:只要其中一个表中存在匹配,就返回行。

5. 子查询

  在一个查询的内部还包括另一个查询,则此查询称为子查询。(SQL的任何位置都可以加入子查询)

如:select * from emp t1 where t1.sal > (select t.sal from emp t where t.empno = 1234);

6. romnum与分页查询

(1)rownum:表示行号,实际上这是一个列,并且这个列可以在每张表中出现。

  如:select * from emp where rownum < 6 ; --取前5行

  

  

Oracle函数(二)

原文:https://www.cnblogs.com/willncy/p/12051883.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!