Oracle数据库学习整理day3

  • 单行函数
    • 字符类型单行函数
    • LOWER(列名)
    • UPPER(列名)
      • 查找employees表last_name列中包含a(不区分大小写)员工的last_name
      • SELECT LAST_NAME FROM EMPOLYEES WHERE UPPER(LAST_NAME) LIKE ‘%A%’;
    • SUBSTR(列名,N)–从指定的位置开始截取字符串直到字符的末尾
    • SUBSTR(列名,N,M)–从指定的位置开始截取指定长度的字符串
    • SUBSTR(列名,-N)–从倒数第N位开始截取字符串,直到字符串的末尾
    • SUBSTR(列名,-N,M)–从倒数第N位开始截取指定长度的字符串
    • INSTR():在第一个参数中查找第二个参数首次出现的位置,没找到返回0
      • 查找employees表中last_name包含a的员工的last_name
      • SELECT LAST_NAME
        FROM EMPLOYEES
        WHERE INSTR(LAST_NAME,’a’)>0;
    • LENGTH(‘中国’)–获得字符数
    • LENGTHB(‘中国’)–获得字节数
    • TRIM(‘zifu chuan’)–去掉字符串两端的空格
    • TRIM(‘z’ FROM ‘zzzifuchuanzzz’)–去掉字符串两端指定的字符
    • LPAD()/RPAD():显示第一个参数的值,使用第二个参数设置第一个参数显示的长度,如果第一个参数长度不足,使用第三个参数在第一个参数的左/右面补齐长度。
  • 数字类型单行函数
    • ROUND():四舍五入
    • TRUNC():截取数字
    • MOD():取余数
  • 日期类型单行函数
  • SYSDATE:获得数据库服务器当前日期+时间
    • Oracle中日期计算的方式
      • 日期+天数=日期
      • 日期-天数=日期
      • 日期-日期=天数
      • 日期不能加日期
    • MONTHS_BETWEEN():获得两个日期相差的月数
    • ADD_MONTHS():在指定的日期上加上N个月
  • 类型转换单行函数
    • 自动转换:效率低,不建议使用
    • 手动转换:TO_CHAR(),TO_DATE(),TO_NUMBER()
      • 字符串可以与日期相互转换
      • 字符串可以与数字相互转换
      • 数字与日期不能相互转换
    • TO_CHAR():
      • TO_CHAR(SYSDATE,’YYYY-MM-DD’)年月日
      • (SYSDATE,’YYYY-MM-DD HH24:MI:SS DAY DY’)年月日时分秒星期星期
      • TO_CHAR(HIRE_DATE,’FMYYYY”年”MM”月”DD”日”’):1994年10月22 日
      • TO_CHAR(SYSDATE,’D DD DDD’):D数字表示的周几,周日为1,依次类推,DD这个月的第几天,DDD这一年的第几天
    • TO_DATE(C,F):根据模板F将字符类型C转换为日期类型的值
      • TO_DATE(‘2017-10-1’,’YYYY-MM-DD’)
    • TO_NUMBER(C,F):根据模板F将字符类型C转换为数字类型的值
      • TO_NUMBER(‘¥10,000.00’,’L99,999.00’)
  • 通用单行函数
    • NVL():当地一个参数不为NULL,返回第一个参数,当第一个参数为NULL,返回第二个参数,两个参数类型必须一致
    • 关系数据库中当算术运算中出现了NULL,结果一定为NULL
    • NVL2():当第一个参数不为NULL,返回第二个参数。当第一个参数为NULL,返回第三个参数。
  • 分支选择:CASE表达式,DECODE()函数。
    • CASE表达式:结果的类型必须保持一致,只能判断是否相等
      • 查询employees表中所有员工的last_name,job_id,salary,新工资。如果job_id为IT_PROG时,工资增加10%。如果job_id为ST_CLERK时,工资增加15%。如果job_id为SA_REP时,工资增加20%,其它职位工资不变。
      • SELECT LAST_NAME,JOB_ID,SALARY,
        CASE
        WHEN JOB_ID=’IT_PROG’ THEN SALARY*1.1
        WHEN JOB_ID=’ST_CLERK’ THEN SALARY*1.15
        WHEN JOB_ID=’SA_REP’ THEN SALARY*1.2
        ELSE SALARY
        END AS 新工资
        FROM EMPLOYEES;
    • DECODE():只能判断是否相等
      • SELECT LAST_NAME,JOB_ID,SALARY,
        DECODE(
        JOB_ID,
        ‘IT_PROG’,SALARY*1.1,
        ‘ST_CLERK’,SALARY*1.15,
        ‘SA_REP’,SALARY*1.2,
        SALARY
        )AS 新工资
        FROM EMPLOYEES;
  • END
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值