Oracle 常见函数

809 阅读2分钟

背景

之前学习Mysql的,基础语法就不介绍了,本篇专门记录Oracle中不一样的语法函数

语法

连字运算符

image.png

select last_name || ' ' ||first_name as name from EMPLOYEES t

文字字符串

文字字符串不是列名或者别名,对每个返回行打印一次。

任意格式文本的文字字符串能够被包含在查询结果中,做作为select列表中的列处理

日期和字符串必须放在单引号中,数字不需要

image.png

其他比较条件

image.png

优先规则

image.png

单行函数

image.png

字符函数

image.png

大小写处理函数

image.png

字符串处理函数

image.png

数字函数

image.png

日期函数

Sysdate

返回当前服务器的日期和时间

image.png

用日期计算

image.png

date + number

image.png

date - date

image.png

日期函数

image.png

months_between

image.png

add_months

image.png

next_day

image.png

last_day

image.png

round

四舍五入到

image.png

四舍五入到

image.png

四舍五入到

image.png

隐式类型转换

直接赋值转换

image.png

char => number

image.png

表达式赋值

image.png

隐式转换的问题

性能影响

隐式转换会导致索引的无效,进而导致全表扫描

不便于阅读

使得数据库编程人员和DBA难以了解究竟发生了怎么样的类型转换,

而且如果代码很多很长,查出问题就要费很大的劲

显式类型转换

image.png

日期 → 字符串 to_char

image.png

image.png

image.png

image.png

image.png

image.png

image.png

数字 → 字符 to_char

image.png

字符串 → 数字 to_number

image.png

字符 → 日期 to_date

通用函数

可以用于任意数据类型,并且适用于空值

image.png

nvl

image.png image.png

nvl2

image.png image.png

nullif

image.png

image.png

coalesce

image.png

image.png

条件表达式

if-then-else

image.png

decode

image.png

using 子句

  1. 在多个列匹配时,用using子句匹配唯一的列
  2. 如果某列在using中使用,那么在引用该列时不要使用表名或者别名
  3. natural join 和 using 是相互排斥的

image.png

any

image.png

all

image.png