学习Oracle的历程 (五)「终于解决」

学习Oracle的历程 (五)「终于解决」今天,我们接着学习Oracle数据库,今天要学的是PL/SQL 中的单行函数 与 分析函数以及集合运算. 注意,今天的知识小喵个人觉得还是挺难的同事也挺重要的,要认真学习哦! 一 . 单行函数 首先…

学习Oracle的历程 (五)

    今天,我们接着学习Oracle数据库,今天要学的是PL/SQL 中的单行函数 与 分析函数以及集合运算.

注意,今天的知识小喵个人觉得还是挺难的同事也挺重要的,要认真学习哦!

一 . 单行函数

    首先我们来说一下单行函数分为哪些呢? 

      单行函数分为了 字符函数 、 数值函数 、转换函数 、日期函数以及 其他函数(其他函数在此不进行列举了) ,我们一个一个来学习吧!

 1. 字符函数

    常见字符串函数

    函    数                         说            明                                
 CONCAT 拼接两个字符串,与 || 相同
 INITCAP 将字符串的第一个字母变大写
 INSTR 找出某个字符串的位置
 LENGTH 以字符给出字符串的长度
 REPLACE 执行字符串搜索和替换
 SUBSTR 截取字符串
 TRIM 裁剪/去除前面或后面的空格字符串
 LOWER 将字符串中的字母转换成小写
 UPPER 将字符串中的字母转换成大写

实例 :

 1) concat ,拼接两个字符串

学习Oracle的历程 (五)「终于解决」

2) initcap,首字母大写 : 将一个单词首字母转换成大写,其余转换成小写

学习Oracle的历程 (五)「终于解决」

3) instr , 找出某个字符串在另一个字符串中第一次出现的位置,计数从1开始

学习Oracle的历程 (五)「终于解决」

4)length,以字符给出字符串的长度

学习Oracle的历程 (五)「终于解决」

5)replace,执行字符串搜索和替换

学习Oracle的历程 (五)「终于解决」

6)substr ,取字符串的子串

   方式一 : 从起始位置截取到末尾

学习Oracle的历程 (五)「终于解决」

方式二 : 从起始位置截取到结束位置

学习Oracle的历程 (五)「终于解决」

7)trim,去除字符串两端的空白

学习Oracle的历程 (五)「终于解决」

8)lower,将字符串转换成小写

学习Oracle的历程 (五)「终于解决」

9)upper,将字符串变为大写

学习Oracle的历程 (五)「终于解决」

 

 2. 数值函数

     常见数值函数

        函数                                                                 说   明                                      
ABS(value) 绝对值
CEIL(value) 大于或等于value的最小整数
FLOOR(value) 小于或等于value的最大整数
MOD(value) 求模
ROUND(value) 按 precision 精度 四舍五入
SQRT(value) value 的平方根
POWER(value,exponeent) value 的 exponent 次幂
TRUNC(value,按 precision) 按照 precision 截取 value

1)abs,绝对值

学习Oracle的历程 (五)「终于解决」

2)ceil,大于或等于value的最小整数

学习Oracle的历程 (五)「终于解决」

3)floor,小于或等于value的最大整数

学习Oracle的历程 (五)「终于解决」

4)mod,求模(通俗讲,小学的13除2等于6余1 就是取模运算。)

学习Oracle的历程 (五)「终于解决」

5)round, 四舍五入

学习Oracle的历程 (五)「终于解决」

6)sqrt, value的平方根

学习Oracle的历程 (五)「终于解决」

7)power,value的exponent次幂(也就是求value的倒数 例如,2的倒数是-1/2)

学习Oracle的历程 (五)「终于解决」

8)trunc ,  按照 precision 截取 value

学习Oracle的历程 (五)「终于解决」

 3. 日期函数

    注 : MySQL中 获取当前系统时间 用 now() 而 Oracle 获取当前系统时间 用 sysdate

        常见日期函数类型

     函数                               说    明                                       
  ADD_MONTHS       在日期 date 上增加 count  个月
 LAST_DAY(date)  返回日期 date  所在月的最后一天
MPNTHS_BETWEEN(date 1, date 2 )  返回 date2 – date1 的月数(可以是小数)
NEXT_DAY(date,”day”)

返回 日期 date 之后 下一天的日期,这里的日期为星期,

Mon.(Monday)     星期一
Tue.(Tuesday)     星期二
Wed.(Wednesday)     星期三
Thu.(Thursday)     星期四
Fri.(Friday)    星期五
Sat.(Saturday)    星期六
Sun.(Sunday)    星期日

ROUND(date , “format”)

 ROUND  函数判断时间的区间

YEAR/yyyy 表示判断是否上下半年

 MONTH/MM  判断是否是上下半月

TRUNC(date,”format”)

YEAR/yyyy   表示获取这一年 的第一天

MONTH/MM  获取这个月的第一天

DAY 获取这个星期的第一天

1)add_months,在日期 date 上增加 count 个月

学习Oracle的历程 (五)「终于解决」

2)last_day,返回当月所在的最后一天

学习Oracle的历程 (五)「终于解决」

3)months_between,给出  date2-date1的月数,可以是小数

学习Oracle的历程 (五)「终于解决」

4)next_day,给出日期date之后下一天的日期

学习Oracle的历程 (五)「终于解决」

5)round,判断事件的区间

学习Oracle的历程 (五)「终于解决」

6)trunc,格式化

学习Oracle的历程 (五)「终于解决」

 4.转换函数

   常见转换函数类型

     函数             说明                               
TO_CHAR 转换日期格式到字符串
TO_DATE 按照指定的格式将字符串转换到日期型     
TO_NUMBER 将数字字串转换到数字

1) to_char,转换日期格式到字符串

学习Oracle的历程 (五)「终于解决」

2)to_date,按照指定的格式将字符串转换到日期型

学习Oracle的历程 (五)「终于解决」

3)to_number,将数字字串转换到数字

学习Oracle的历程 (五)「终于解决」

二 . 集合运算

    1 . 什么是集合运算?

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

      集合运算包括:

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

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

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

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

学习Oracle的历程 (五)「终于解决」

    2 并集运算

学习Oracle的历程 (五)「终于解决」

 

首先,我们先查询一下表中所有数据,知道表的数据有哪些.

学习Oracle的历程 (五)「终于解决」

其次我们在条件查询.

 条件查询 1 : 查询id小于7的数据

学习Oracle的历程 (五)「终于解决」

条件查询 2 : 查询id 大于5的数据

学习Oracle的历程 (五)「终于解决」

从表的数据图上可以看出 两个条件中id为6的哪条数据出现了2次.

下面我们将运用 集合运算将id大于5 的表 和 id小于7 的表 连接起来.

     1 ) 并集 , union all , 允许有重复数据

  学习Oracle的历程 (五)「终于解决」

    2) 并集, union ,不允许有重复数据

学习Oracle的历程 (五)「终于解决」

    3 交集运算

 学习Oracle的历程 (五)「终于解决」

学习Oracle的历程 (五)「终于解决」

  4 差集运算

学习Oracle的历程 (五)「终于解决」

学习Oracle的历程 (五)「终于解决」

这就是小喵学的知识了,

但是由于一些原因一直没有写完,

直到现在才完成.

还是希望通过这次的事情让小喵引以为戒,

那希望小喵的知识对你依然还算有用!

为努力中的自己比个yeah

 

(^_^)~喵~!!

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/7868.html

(0)
上一篇 2023-03-12 13:30
下一篇 2023-03-12

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注