plsql笔记

•匿名块  

    declare

  variabledefine

  ………

  begin

  statement

            ……

    end


 <<identifier1>>

  declare

  variable define

  begin

  ….

  <<indentifer2>>

  declare

  ….

  begin

  …

  end;

  …

  end;  


•子程序
–过程

  create or replaceprocedure proName

     (

  Name1 in outtype,

   Name2 in out type,

  ...

      )

    is

    variable define;

  ….

    begin

    statement;

  ………

   end proName; 

–函数

  create or replace function

funcName

     (

  Name1 in out type,

   Name2in out type,

  ...

      )

   return type

    is

  result type;

   variable define;

  ….

    begin

    statement;

  ………

  return result;

   end proName; 

–包

createor replace

package  packName

is

      变量,常量,函数, 过程 定义

 end;

createor replace

bodypackName is

      函数,过程的实现

end;


•触发器

  create or replacetigger tiggName

  after/before  insert/update/delete On tablename 

     for each row

         ……….

  begin

       statement

  end;


•标准类型
–char,varchar2,number,varchar,long,date

     boolean …..

•复合类型
–record
–table
–varray

Record相当与c语言中的结构,可以有多个成员组成

Table相当于数组,但是table没有个数限制即下标没有限制且下标可以为负数

varray类似于高级语言的数组,元素的个数有限制

•参照类型

类似于高级语言的指针用于共享变量。如ref cursor

•LOB变量

用于存储和处理大批量数据的变量,……


•查询
–select[列名] [bulk collect]into[变量] from [表名] where [条件语句] [group by ] [havingconditions][order by asc|desc]

      Bulk collect为批量查询能用一条select语句获取多行数据存入一个数组或表中。

•修改
–Update  表或视图名 set[列名=值] where [条件]
–Update表或视图名 set [列名1,列名2,……]=[查询子语句] where [条件]
•插入
–Insertinto 表名 [列名,….] values[值][查询子语句]
•删除
–Deletefrom 表名 where 条件
–Truncatetable 表名

Delete 删除表中数据但是不释放表段所占的空间,能对该操作回退;Truncate删除一个表中的数据同时释放表段所占的空间,但是不支持回退


•自联结

同一张表之间的连接查询,主要用于在参照表上显示 ,上下级关系或层次关系。

select  t1.col_name, t2.col_name from  table1  t1  innerjoin  table1  t2  on  t1.col_name= t2.col_name

•自然联结

多个表中具有共同的列,通过共同列进行联结

SELECT   tab_name1.col_name,tab_name2.col_name….FROM  tab_name1, tab_name2

 wheretab_name1.col = tab_name2.col

•外联结

左外联结

返回满足连接条件的所有行,而且还会返回不满足连接条件的连接操作符的左边表的其他行

SELECT   tab_name1.col_name,tab_name2.col_name….FROM  tab_name1  LEFT  JOIN   tab_name2 ONtab_name1.col = tab_name2.col

Select tab_name1.col_name,tab_name2.col_name….FROM  tab_name1, tab_name2  where tab_name1.col=tab_name2.col(+);

右外联结

 返回满足连接条件的所有行,而且还会返回不满足连接条件的连接操作符的左边表的其他行

SELECT   tab_name1.col_name,tab_name2.col_name….FROM  tab_name1  RIGHT  JOIN   tab_name2ON tab_name1.col = tab_name2.col

Select tab_name1.col_name,tab_name2.col_name….FROM  tab_name1, tab_name2  where tab_name1.col(+)=tab_name2.col;  

外联结

仅返回满足连接条件的所有行,而且还会返回不满足连接条件的所有

 SELECT   tab_name1.col_name,tab_name2.col_name…FROM  tab_name1  FULL  JOIN   tab_name2 ON tab_name1.col = tab_name2.col;

Selecttab_name1.col_name,tab_name2.col_name….FROM  tab_name1 tab_name2  where tab_name1.col=tab_name2.col(+)

Union

Selecttab_name1.col_name,tab_name2.col_name….FROM  tab_name1 tab_name2  where tab_name1.col(+)=tab_name2.col;


•条件分支语句

  If  条件  then

  执行

  [elsif 条件 then

  执行]

  [else

  执行]

  end if;


•Case语句

      case var

      when expr1 then

    执行

  ….

  [else  (以上条件都不满足) 执行]

  end case;

      case

      when var<expr1 then

  执行

  ….

  [else  (以上条件都不满足) 执行]

  end case;

•循环

loop

exit whencondition = true

  …

end loop;

while  condition=true loop

  …..

end loop;

for  iin low…up loop

  …..

end loop;

forall i in [low…up][indices of  collection][values of collection]

   statement

批量的进行增删改操作

•Goto语句

…..

Goto<<lablename>>

  ……

<<lablename>>

Statement/NULL;

<<lablename>>后面必须接执行语句或者NULL











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值