oracle sql小笔记

begin
  for i in 1 .. 1000 loop
    insert into stu
      (SNO, SNAME, SAGE, SSEX, SDEPT, TNO)
    values
      (00 || i,
       'peter'||i,
       floor(DBMS_RANDOM.VALUE(10, 15)),
       case floor(DBMS_RANDOM.VALUE(1, 3)) WHEN 1 THEN 'm'
        WHEN 2 THEN 'f' ELSE 'n' END ,
       '01',
       '001');
  end loop;
end;

1.字符链接两种方式

concat('asd',concat('asd','551510'))

'adas'||'5415'||'54541aadsa'

2.DBMS_RANDOM.VALUE(10, 15) 取随机数 包含小数

3.ceil(向上)、floor(向下)、trunc(截取整数位)和round(四舍五入)四种取整函数

4.case floor(DBMS_RANDOM.VALUE(1, 3))  (可以是函数,可以是查询)WHEN 1 THEN 'm'
        WHEN 2 THEN 'f' ELSE 'n' END 


merge into .. using..

declare 
  type sno is table of varchar(50);
  v_sno sno:=sno('0001','0002','0003');
 begin
   for i in 1 .. v_sno.count loop
     merge into stu s--不能有分号
      using(--不能有分号
           select (select  o.sno from stu o where o.sno = v_sno(i)) sno from dual--不能有分号
      ) t on (t.sno is not null)--不能有分号
      when matched then--不能有分号
        update set s.sname = 'asdas' where s.sno = v_sno(i)--不能有分号
      when not matched then--不能有分号
        insert (sno,sname,sage,ssex)values(v_sno(i),'asdasd','15','f');
     end loop;
end;

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值