Oracle SQL、PLSQL(基础1)

oracle PL/SQL

declare(可选)

变量定义、光标定义

begin(必须)

程序体

exception(可选)

例外处理

end;

dbms_outpu.put_line(输出语句);

函数Function:

函数用于返回特定的数据,当建立函数时,在函数头部必须包含return子句。有且只有一个返回值。

变量:

建议以v_开头,在begin前,定义即可以赋值,v_data :=

变量类型:

%type,(引用表.字段类型),

%rowtype,类型的变量,它可以一次存储从数据库检索的一行数据

注意:如果定义了%rowtype类型的变量,该变量的结构与定义表的结构完全相同,查询时必须使用*或者列举全部的字段信息。

SQL> declare  
      row_data emp%ROWTYPE;  
     begin  
      select * into row_data from emp where empno='7369';      dbms_output.put_line(row_data.empno||'/'||row_data.ename||'/'||row_data.job);  
     end;  
     /  

数据类型:

  • number

  • character

  • date/time

  • boolean

控制结构:

if条件then 执行语句1;

else 执行语句2;

end if ;

if 条件1then 执行语句1;

elsif 条件2then 执行语句2;

elsif ...then 执行语句;

else

end if;

desc 表名,查看表结构

like '%#_%' escape '#' ,(转义字符,让下划线不再表示为单个字符,为普通的字符串)

在单引号中的值严格区分大小写

单行函数:

1.字符函数:lower()小写,upper()大写,initcap()首字母大写

函数:

拼接:CONCAT (Hello','World')

提取字符('',下标从1开始,输出个数):SUBSTR ('EelloWorld',1,5)

字符长度(从1开始):LENGTE (HelloWorld')

字符首次出现的下标位置(从1开始):INSTR (HelloWorld',W')

左对齐(列名,输出个数,以左开始缺失的值用*补替):LPAD (salary,10,'')

右对齐(列名,输出个数,以右开始缺失的值用*补替):RPAD (salary,10,‘’)

字符首尾去除值('去除的值' from '目标字符'):TRIM('H' FROM 'HelloWorld')

字符替换('目标字符','替换字符','替换值'):REPLACE ('abcd','b','m')

数字函数:
ROUND:四舍五入  ROUND(45.926,2)  45.93


TRUNC:截断 TRUNC(45.926,2)  45.92


MOD:求余 M0D(1600,300) 100

日期函数:

日期的数学运算:在日期上加上或减去一个数字结果仍为日期两个日期相减返回日期之间相差的天数。日期不允许做加法运算,无意义可以用数字除24来向日期中加上或减去天数。

MONTHS_BETWEEN(,):两个日期相差的月数

ADD_MONTHS(,):向指定日期中加上若干月数

NEXT_DAY(,):指定日期的下一个星期对应的日期

LAST_DAY:本月的最后一天

ROUND:日期四舍五入

TRUNC:日期截断

通用函数:

NVL(expr1列名(此值为空时,用expr2),expr2);

NVL2(expr1,expr2,expr3):expr1不为NULL,返回expr2; 为NULL,返回expr3。

SELECT last name,job id,salary,
CASE job_id WHEN 'IT PROG' THEN 1.10+salary
WHEN 'ST CLERK' THEN 1.15*sa1ay
WHEN 'SA REP' THEN 1.20*sa1ay
ELSE salary
END
"REVISED SALARY"(别名)
FROM
employees;
SELECT last name,job id,salary,
DECODE (job_id,'IT PROG',1.10*salary,
'ST CLERK',1.15*salary,
'SA REP',1.20*salary,
salary)
REVISED SALARY(别名)
FROM
employees:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是羅 不是椤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值