欢迎光临
我们一直在努力

嗨 甲骨文【1】-数据库专栏,SQL Server

建站超值云服务器,限时71元/月

【序】
为了在工作中写存储过程,。同时,我准备写学习《精通oracle 10g pl/sql编程》(水利水电)一书的学习笔记。

这些你能不能写全:
data query language–select
data manipulation language–insert,update,delete
transactional control language–commit,rollback,savepoint
data definition language–create table,alter table,drop table
data control language–grant,revoke
一次应聘面试中,我就没能答出此类问题。想来只有惭愧,无他。

pl/sql能将sql语句组合成块,一次传输,降低了网络开销,此等高效,往日用sql server时可没这等好事。

 

pl/sql块结构

declare

/*定义部分*/

begin

/*执行部分*/

exception

/*例外处理部分*/

end; /*块结束标记,此处有分号*/

/    /*这是命令行中的结束符*/

 

四大块类型

   匿名块、命名块、子程序(过程、函数、包)、触发器

四大变量类型

标量(scalar)、复合(composite)、参照(reference)、lob(large object)

composite:pl/sql记录、pl/sql表、嵌套表、varray

参照:游标变量(ref cursor)、 对象类型变量(ref obj_type)

       lob:内部lob(clob,blob,nclob)、外部lob(bfile)

declare

v_num number(6,2); ß变量定死了长度,将来无法动态改变,只能手动修改

v_num tbl.num%type; ß动态确定新的类型和长度

 

挺像delphi: 1 变量赋值 :=  2记录 record

 

在命令行中写sql语句时注意:单条结束要用; 模块结束要用/ 才能显示你的查询

 

不重复显示查询:select distinct *from a_tbl

 

处理null:nvl(expr1,expr2) 如果expr1是null则返回expr2;如果不是则返回expr1两者类型要匹配

 

删除表数据并释放空间:truncate table

 

oracle不允许其他用户读取脏数据(未提交事务),确保数据库数据的读一致性

加锁,确保同一时间对文件的操作只能有一人

 

savepoint 用于取消部分事务,事务结束后自动删除所有保存点。

 

只读事务:set transaction read only;

                或者:exec dbms_transaction.read_only

 

分组函数

max、min、avg、sum、count、variance(方差)、stddev(标准偏差)

group by用于对查询结果进行分组统计――比如每组最大值

having用于限制分组显示结果――比如最大值小于2800

rollup在原统计结果基础上生成横向小统计

cube在原统计结果基础上生成纵向小统计

 

oracle的流程控制语句

if语句

if      then

elsif  then

else

end if;

 

case语句(9i)

case

   when   then

else

end case;

 

基本循环

loop

   exit[when  ];

end loop;

 

while循环

while   loop

end loop;

 

for       循环

for _v in[reverse] lo..hi loop

end loop;

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 嗨 甲骨文【1】-数据库专栏,SQL Server
分享到: 更多 (0)