背景
之前学习Mysql的,基础语法就不介绍了,本篇专门记录Oracle中不一样的语法函数
语法
连字运算符
csharp
select last_name || ' ' ||first_name as name from EMPLOYEES t
文字字符串
文字字符串不是列名或者别名,对每个返回行打印一次。
任意格式文本的文字字符串能够被包含在查询结果中,做作为select列表中的列处理
日期和字符串必须放在单引号中,数字不需要
其他比较条件
优先规则
单行函数
字符函数
大小写处理函数
字符串处理函数
数字函数
日期函数
Sysdate
返回当前服务器的日期和时间
用日期计算
date + number
date - date
日期函数
months_between
add_months
next_day
last_day
round
四舍五入到天
四舍五入到年
四舍五入到月
隐式类型转换
直接赋值转换
char => number
表达式赋值
隐式转换的问题
性能影响
隐式转换会导致索引的无效,进而导致全表扫描
不便于阅读
使得数据库编程人员和DBA难以了解究竟发生了怎么样的类型转换,
而且如果代码很多很长,查出问题就要费很大的劲
显式类型转换
日期 → 字符串 to_char
数字 → 字符 to_char
字符串 → 数字 to_number
字符 → 日期 to_date
通用函数
可以用于任意数据类型,并且适用于空值
nvl
nvl2
nullif
coalesce
条件表达式
if-then-else
decode
using 子句
- 在多个列匹配时,用using子句匹配唯一的列
- 如果某列在using中使用,那么在引用该列时不要使用表名或者别名
- natural join 和 using 是相互排斥的