数据库基础之Oracle函数

一》数据库基本概念

数据:对现实生活事物描述的符号。

数据库:存储数据的库。

数据库管理系统:用户直接用来操作数据库的软件。

数据库应用系统:在数据库管理系统之上的系统,专门给普通用户进行使用的系统。

数据库系统:用户+数据库管理系统+数据库+数据库应用系统+数据库管理员

注:Oracle忘记用户密码

1.cmd打开windows命令窗口

2.输入命令:sqlplus /nolog

3.输入命令:conn /as sysdba

4.输入命令:alter user 要修改密码的用户名 identified by 新密码;

[关于sqlplus不是内部命令的错误,是因为oracle的环境变量配置有问题]

二》ORACLE函数之单行函数

  • 不改变真实数据,只对数据做进一步修饰或处理显示
  • 可和字段混合使用

    伪表:真实存在的表,方便进行数据验证而临时存在;表名:dual

1.字符函数

函数名 作用 示例 结果
initcap(char) 首字母大写 initcap('nice') Nice
lower(char) 转为小写 lower('NICE') nice
upper(char) 转为大写 upper('nice') NICE
ltrim(char,set) 左剪 ltrim('nice','ni') ce
rtrim(char,set) 右剪 rtrim('nice','e') nic
concat(char1,char2) 字符串连接 concat('ni','ce') nice
substr(char,pos,len) 取子串 substr('nice',2,2) ic
instr(char,substr) 查子串位置 instr('nice','c') 3
translate(char,key,value) 按字符映射翻译 translate('nice','ne','01') 0ic1
replace(char,old,new) 字符串替换 replace('nice','c','cc') nicce

2.数值函数

函数名 作用 示例 结果
abs(n) 取绝对值 abs(-3) 3
mod(m,n) 取余 mod(3,2) 1
sign(n) 取符号 sign(-3) -1
ceil(n) 向上取整 ceil(3.2) 4
floor(n) 向下取整 floor(3.2) 3
round(m,n) 四舍五入为指定小数位数 round(3.236,2) 3.24
power(m,n) m的n次幂 power(3,2) 9
sqrt(n) 平方根 sqrt(4) 2
trunc(m,n) 截断 trunc(3.233,2) 3.23
sin(n) 正弦 sin(0) 0
cos(n) 余弦 cos(0) 1

3.日期函数

函数名 作用 示例 结果
months_between(date1,date2) 返回两日期间的月份(若date1在日历中比date2早,则返回一个负数,反之则返回一个正数) months_between('01-8月-2020',‘01-8月-2020’) 0
add_months(date,m) 返回把月份数加到日期上的新日期 add_months('25-8月-2020',-1) 25-7月-2020
next_day(date,week) 返回指定新日期后的星期对应的新日期 next_day('23-8月-2020',‘星期一') 24-8月-2020
last_day(date) 返回指定日期所在月的最后一天 last_day('25-8月-2020') 31-8月-2020
round(date,p) 按指定格式对日期进行四舍五入 round(to_date('25-8月-2020'),’YEAR‘) 1-1月-2021
trunc(date,p) 对日期按指定方式截断 trunc(to_date('25-8 月-2020'),'YEAR') 01-1月-2020

注:

  • p为YEAR,round按1-6月和7-12月,四舍五入到最近的yyyy年1月;trunc截取到本年第一天。
  • p为MONTH,round按1-15日和16-30日,四舍五入到最近mm月的1日;trunc截取到本月第一天。
  • p为DAY,round按周一至周三和周四至周日,四舍五入到最近的周日。trunc截取到本周第一天。

三》oracle函数之多行函数

  • 对查询数据进行统计
  • 不能和普通字段及单行函数混合使用,除非分组

    函数名 作用
    max(字段名) 返回该字段最大值
    min(字段名) 返回该字段最小值
    sum(字段名) 返回该字段的和
    avg(字段名) 返回该字段平均值
    count(*) 返回表记录数
    count(字段名) 返回非空值数量
    count(distinct 字段名) 返回去重后字段值数量

四》oracle函数之转换函数

  1. to_number(数值类型的字符):将字符转换为数值
  2. to_char(数值或日期):将数值或日期转换为字符

    指定显示格式:

    9表示占位,例:999,999,999会将数字按三个一组逗号隔开。

    0表示占位,若实际数据位数不足,则用0补位。

    L表示人民币符号,$表示美元符号。

    注:数值和字符之间可隐式转换。

  3. to_date(日期格式的字符):将字符转换为日期(一般新增使用,查询用to_char)

    常用日期格式:yyyy-mm-dd

    ​ yyyy/mm/dd

    ​ 'yyyy"年"mm"月"dd"日"'

    注:字符必须符合日期格式;oracle默认转换格式为日月年,例'25-8月-2020'。

五》oracle函数之其他函数

  1. nvl(字段名,新的值):若字段值不为null,则返回该字段值;若为null,则返回新的值。
  2. nvl2(字段名,处理1,处理2):若字段值不为null,则执行处理1;若为null,则执行处理2。
  3. decode(字段名,值1,处理1,值2,处理2,值3,处理3,...,公共处理):若字段值和decode中条件值相同,则执行对应的处理。若都没有,则执行公共处理。

你可能感兴趣的:(数据库)