版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 Oraclle SQQL语句大大全2009-04-113 155:39desc(描述) emp 描描述empp这张表22.dessc deppt 部门表33.dessc saalgraade 薪水等级级4.seelectt *frrom ttablee 查找表表中的元素素5.duual 是是系统中的的一张空表表 (可以以用于计算算各种数学学表达式)6.select *from dual7.select sysdate from dual 取出系统时间8.select ename,sal*12 annul_sal(取的别名) from emp; 查找用户姓名和用户的年薪9.任何含有空值的数学表
2、达式的值都是空值select ename,sal*12+comm from emp;10.select ename|sal from emp 其中的| (字符串连接符) 相当于将sal全部转化为字符串11.表示字符串的方法select ename |ajjf from emp;12.如果其中有一个单引号就用2个单引号来代替他select ename|sakj ldsfrom emp;13.select distinct deptno from emp (去除部门字段中重复的部分,关键字distinct)14.select distinct deptno,job from emp;(去除这2个字
3、段中重复的组合)15.select *from dept where deptno=10; 取出条件(取出部门编号为10的记录)16.select * from emp where ename=CLIRK; 取出部门中姓名为clirk的记录(注意取出过程中ename用单引号隔开)17.select ename,sal from emp where sal1500; 取出部门中薪水大于1500的人的姓名18.select ename,sal,deptno from emp where deptno 10 取出部门中的部门号不等于10的19.select ename,sal,deptno from
4、 emp where enameCBA 取出部门中员工名字大于CBA的员工(实际比较的是ACIIS码)20.select ename,sal from emp where sal between 800 and 1500 select ename,sal from emp where sal=800 and sal3-04月-81;宣传符合条件的日期24.select ename,sal,from emp where sal1000 or deptno=10; 找出工资薪水大于1000或者部门号等于10的员工25.select ename,sal from emp where sal not
5、in(500,1000); 查找薪水不在500到1000的员工姓名和月薪26.select ename,sal from emp where ename like %ALL%; 查找姓名中含有ALL的客户信息 %表示0个或多个字母 select ename,sal from emp where ename like _A%; 查找第二个字母是A的客户信息selecct enname,sal fromm empp wheere eenamee likke _%$% esscapee $; 自己己指定转义义字符 seleect eenamee,sall froom emmp whhere enam
6、me liike _%; 查找中中间含有%相匹配的的客户信息息,运用转转易字符28.seelectt * ffrom deptt ordder bby deeptnoo 对表中元元素按部门门号排序 seelectt *frrom ddept ordeer byy depptno descc 默认为升升序ascc,可以用用descc按降序229.seelectt enaame,ssal ffrom emp wherre saal 10000 ordder bby saal deesc, enamme deesc 按照查查询条件来来查询,并并排序(aasc升序序排列)330.seelectt en
7、aame,ssal*112 frrom eemp wwheree enaame nnot llike _%AA% aand ssal8800 oorderr by sal descc31.seelectt lowwer(eenamee) frrom eemp 将将enamme都转化化为小写 llowerr是函数能能将字母转转化为小写写,uppeer(enname)32.sselecct enname fromm empp wheere llowerr(enaame) likee _%a%; 找出eenamee 中所有有的含有aa的字符333.seelectt subbstr(enamme,2,
8、3) fform emp 从从第2个字字符开始截截取3个字字符34.seleect cchr(665) ffrom duall; 将将65转化化为字符335.seelectt asccii(A) fromm duaal 将AACSIII码转化为为字符串336.seelectt rouund(223.5665)frrom ddual 四舍五入入36.sselecct roound(23,44565,2)frrom ddual 四舍五入入到第二位位(第二个个参数默认认为0)337.seelectt to_charr(sall,$999,999.99999) ffrom emp 按指定格格式输出(9
9、代表一一位数字) sselecct too_chaar(saal,LL99,9999.99999) fform emp L代表表本地字符符(¥) 0代表占占位符388.sellect hireedatee froom emmp seleect tto_chhar(hhireddate,YYYYY-MMM-DD HH:MMI:SSS) frrom eemp; 时间格格式的显示示 sselecct too_chaar(syysdatte,YYYYY-MM-DDD HHH:MI:ss) fromm duaal; 十二小时时制显示系系统时间 seelectt to_charr(syssdatee,YY
10、YYY-MMM-DDD HH224:MII:SS) froom duual 二二四小时制制显示系统统时间399.sellect enamme,hiiredaate ffrom emp wherre hiiredaate to_datee(20005-22-3 112:322:23,YYYYY-MMM-DDD HH:MI:SSS); 把特特定格式字字符串转换换成日期440 seelectt sall froom emmp whhere salto_nnumbeer($1,2550.000,$9,9999.999); 取出比它它大的一切切字符串(把把特定格式式的数字转转化成字符符)41 selee
11、ct eenamee,sall+nvll(commm,0) froom emmp; 讲讲commm值为空的的用0来替替换,单行行函数(以以一条记录录为条件)一一条对一条条组函数422.sellect Max(sal) froom emmp; sellect Min(sal) froom emmp; sellect avg(sal) froom emmp; sellect sum(sal) froom emmp; sellect counnt(*) froom emmp; 查看表中中一共有多多少条记录录 sselecct coount(*) ffrom emp wherre deeptnoo=1
12、0; 查找找部门100一共有多多少人;43.seelectt avgg(sall),deeptnoo froom emmp grroup by ddeptnno; 按部门门号进行分分组 seleect ddeptnno,joob,maax(saal) ffrom emp grouup byy jobb,depptno; 按工作作和部门号号进行分组组;44.seleect eenamee froom emmp whhere sal=(sellect max(sal) froom emmp); 子查询,查查找部门中中薪水最高高的员工姓姓名45.grouup byy 注意:出现在sselecct列表
13、中中的字段,如如果没有出出现在组函函数中必须须出现在ggroupp by子子句中wheree是过滤单单条语句,haviing可以以过滤分组组。46.seelectt avgg(sall),deeptnoo froom emmp grroup by ddeptnno haavingg avgg(sall)20000; 选选出部门中中平均薪水水大于20000的部部门,477.sellect * froom emmp whhere sal100 grouup byy depptno haviing .ordder bby. 先取数据据-过滤滤数据-分组-对分分组限制-排序序48.sselecct a
14、vvg(saal) ffrom emp wherre saal12200 ggroupp by depttno hhavinng avvg(saal)11500 ordeer byy avgg(sall) deesc; 查找找部门中平平均薪水大大于1200的的员工,并按部门门号进行排排序,查询询分组后的的平均薪水水必须大于于15000,查询结结果按平均均薪水从低低到高排列列子查询(把把它当成一一张表)49.seelectt enaame ffrom emp wherre saal(sselecct avvg(saal) ffrom emp); 查查找出员工工中薪水位位于部门平平均薪水之之上的所
15、有有员工500.sellect enamme,saal frrom eemp jjoin(seleect mmax(ssal) max_sal fromm empp grooup bby deeptnoo) t on(eemp.ssal=tt,maxx_sall andd empp.depptno=t.deeptnoo); 查查找每个部部门中薪水水最高的551.seelectt e1.enamme,e22.enaame ffrom emp e1,eemp ee2 whhere e1.mmgr=ee2.emmpno; 表表的自连接接(当成两两张表来用用)1999 SQL标标准wheree语句里不
16、不写“连接条件件”,只写数数据过滤条条件。join on(表表间连接条条件),wwheree写过滤条条件,思路路清晰。52.seelectt dnaame,eenamee froom emmp crross joinn deppt 交叉连连接,笛卡卡尔SQLL99中的的新语法553.seelectt enaame,ddnamee froom emmp jooin ddept on(emmp.deeptnoo=deppt.deeptnoo); /on(连接条件件)54.seleect eenamee,dnaame ffrom emp joinn deppt ussing(depttno); 不推
17、荐荐 查找找emp和和deptt表中deeptnoo相同的部部分。555.sellect enamme,dnname,gradde frrom eemp ee joiin deept dd on(e.depttno=dd.deppno) joinn sallgradde s on(e.sal betwween s.loosal and s.hiisal) whhere enamme noot liike _%A%; (三表表查找)556.seelectt e1.enamme,e22.enaame ffrom emp e1 jjoin emp e2 oon(e11.mgrr=e2.depttno
18、); 表的自自连接577.sellect e1.eenamee,e2.enamme frrom eemp ee1 leeft jjoin emp e2 oon(e11.mgrr=e2.empnoo) 左外外表连接/ 可以以将左边表表多余的数数据拿出来来,右外表表连接:rrightt (ouuter) joiin onn sselecct enname,dnamme frrom eemp ee rigght jjoin deptt d oon(e.depttno=dd.depptno)右外连接接 sselecct enname,dnamme frrom eemp ee fulll jooin d
19、dept d onn(e.ddeptnno=d.depttno)全全连接588.求部门门中薪水最最高的 sellect enamme,saal frrom eemp jjoin (sellect max(sal) maxx_sall, deeptnoo froom emmp grroup by ddeptnno) tt on (empp.sall=t.mmax_ssal aand eemp.ddeptnno=t.depttno);-求部部门平均薪薪水的等级级selecct deeptnoo, avvg_saal, ggradee froom (seleect ddeptnno, aavg(ss
20、al) avg_sal fromm empp grooup bby deeptnoo)t join salggradee s oon (tt.avgg_sall bettweenn s.llosall andd s.hhisall);-求求部门中各各成员的平平均薪水等等级selecct deeptnoo,enaame,ggradee fromm empp join salggradee s oon(emmp.saal beetweeen s.losaal annd s.hisaal);59.求部部门中薪水水等级的平平均值 sellect depttno,aavg(ggradee) frrom(
21、sselecct deeptnoo,enaame,ggradee fromm empp joiin saalgraade ss on(emp.sal betwween s.loosal and s.hiisal)t ggroupp by depttno;660.查找找雇员中哪哪些是经理理人 seleect eenamee froom emmp whhere empnno inn(sellect disttinctt mgrr froom emmp);661.seelectt disstincct e11.sall froom emmp e11 joiin emmp e22 on(e1.ssal
22、ee2.saal); 自连接(不用组函函数求出最最高薪水) select distinct sal from emp where sal not in (select ename, e1.sal from emp e1 join emp e2 on(e1.sal( sselecct maax(saal) ffrom emp wherre emmpno not in (seelectt disstincct mggr frrom eemp wwheree mgrr is not nulll);DML(数数据操作语语言)语句句:更、删删、改、查查创建权限限, coonn ssys/aadminn
23、as sysddba graant ccreatte taable,creaate vview to sscottt;首先在在C:下面面建个文件件夹备份文文件一.creeateNNewUsser方法法1.-backkup sscottt -备份sscottt expp -执行exxp.exxe文件/c:temmpexxp ,.DMPP文件。在在c:ttemp下下2.crreatee useer(创建建用户)用用超级管理理员模式进进入 creaate uuser 用户名 iidenttifieed byy 密码 deefaullt taablesspacee useers qquotaa 10M
24、M on userrs; graant ccreatte seessioon,crreatee tabble,ccreatte viiew tto 用户户名 -授予权权限 drrop uuser 用户名 -删删除用户33.impport the dataa(导入备备份数据) imp二.inssertiinserrt innto ddept valuues (50,gamee,bbj) 插入一条条记录innsertt intto deept2 (depptno,dnamme) vvaluees (778,ggamess); 插入指定定的几条记记录inssert intoo deppt2 ssel
25、ecct *ffrom deptt 插入入指定的表表(表结构构要一样)rollbback; 回退(取取消上一步步操作)ccreatte taable emp22 as seleect * froom emmp; 备份份emp这这张表三. uppdatee empp2 seet saal=saal*122 wheere ddeptnno=100; upddate的的用法四. deeletee froom deept2 wherre deeptnoo25 ; 删除语句句的用法rownuum r 只能和和或者者=或者者=transsactiion 事事务:一个个事务起始始于一个DDML语句句DDL(
26、数数据定义)语言1.create table t(a varchar2(10); 创建表:2.drop table t 删除表mit 所有的(上一条事务的修改)提交,所有修改都结束了。对于rollback(rollback会回到原始状态)无效,一个事务开始于第1条DML语句碰到执行DDDL DDCL语句句事务自动动提交(自自动执行ccommiit)对于于rolllbackk无效,正常断开连连接,自动动提交。 非正常提提交,自动动回滚roollbaackDCL:数数据控制语语句-如grrant 授权建表语句建建学生信息息表:crreatee tabble sstu(iid nuumberr(6)
27、,namee varrcharr2(200) coonstrraintt stuu_namme_nnn nott nulll,sex numbber(11),agge nuumberr(3),sdatte daate,ggradee nummber(2) ddefauult 11,claass nnumbeer(4),emaail vvarchhar2(50) uniqque (唯唯一约束);5个约束条条件非空nott nulll唯一uniique(不不能插入重重复值),主键priimaryy keyy(可以唯唯一标识整整条记录): 非空空,唯一,数数字 ,可可以使用多多个字段的的组合作为为主
28、键外键 fooreiggn keey(cllass) refferennces classs(idd), refeerencces参考考 claass中的的id,被被参考的字字段必须是是主键。 被参考的的记录是无无法删除的的:两张表表,在一张张表插入数数据的时候候,不允许许插入另一一张表中一一个字段没没有的数据据。默认添添加。checkk:检查约约束 creatte taable stu(id nuumberr(6) primmary key,namee varrcharr2(200) coonstrraintt stuu_namme_nnn not nulll, 约束名名consstraii
29、ntseex nuumberr(1),age numbber(33),sddate datee,graade nnumbeer(2) deffaultt 1,claass nnumbeer(4),emaail vvarchhar2(50),consstraiint sstu_nname_emaiil_uuui uniqque(eemaill,namme) (表级约约束)组合合性约束,namee和emaail的组组合不能重重复);主键约束方方法二crreatee tabble sstu(iid nuumberr(6),namee varrcharr2(200) coonstrraintt stu
30、u_namme_nnn nott nulll,(非非空约束)sex numbber(11),agge nuumberr(3),sdatte daate,ggradee nummber(2) ddefauult 11,claass nnumbeer(4) refferennces classs(idd),(参参考claass 这这张表,参参考字段)emaiil vaarchaar2(550),cconsttrainnt sttu_idd_pk primmary key(id),consstraiint sstu_nname_uui uniqque(eemaill,namme) 组组合性约束束);
31、外键约束ccreatte taable classs(id nuumberr(4) primmary key, (iid为被参参考字段,被参考的的字段必须须是主键)namee varrcharr2(200) noot nuull)creatte taable stu(id nnumbeer(6),namme vaarchaar2(220) cconsttrainnt sttu_naame_nnn noot nuull,(非空约束束)sexx nummber(1),aage nnumbeer(3),sdaate ddate,gradde nuumberr(2) defaault 1,cllass
32、 numbber(44)emaail vvarchhar2(50),consstraiint sstu_cclasss_fk foreeign key(classs) rreferrencees cllass(id), refferennces参参考connstraaint stu_id_ppk prrimarry keey(idd),coonstrraintt stuu_namme_uuui unniquee(emaail,nname) 组合性性约束);像外键中插插入关键字字,1.iinserrt innto cclasss vallues(10000,c11);22.inssert int
33、oo stuu(id,namee,claass,eemaill) vaaluess(1,a,11000,a);3.altter ttablee stuu addd(adddr vaarchaar(200);添添加表的结结构4.aalterr tabble sstu ddrop(addrr); 删删除表结构构5.allter tablle sttu moodifyy(adddr vaarchaar2(1150);修改精精度6.aalterr tabble sstu ddrop consstraiint sstu_cclasss_fk; 删除约约束条件77.altter ttablee stuu
34、addd connstraaint stu_classs_fkk forreignn keyy(claass) refeerencces cclasss(id),添加约约束条件查找当前用用户下有哪哪些表和哪哪些视图及及哪些约束束: 数据字典表表user_tablles:当当前用户下下有多少张张表。user_viewws:当前前用户下有有多少个视视图。user_consstraiints:当前用户户下有多少少个约束。user_indeexes:当前用户户下有多少少个索引。数据字典表表的表:ddictiionarry8.sellect tablle_naame ffrom userr_nammes
35、9.seleect vview_namee froom viiew_nnamess10.sselecct coonstrraintt_namme,taable_namee froom usser_cconsttrainnts;ddesc dicttionaary数据据字典表ddesc userr_tabbles当当前用户下下面有多少少张表seelectt tabble_nname fromm useer_taabless; 查找找当前用户户有多少张张表索引: 加加主键或者者唯一约束束的时候ooraclle会自动动为该字段段加索引。创建索引引creaate iindexx idxx_stuu_e
36、maail oon sttu(emmail);droop inndex idx_stu_emaiil;查找找索引seelectt inddex_nname fromm useer_inndexees;索引读的速速度快了,插插入速度变变慢。经常常需要查询询的字段可可以建立索索引。优化数据库库表首选。view 视图(子子查询,虚虚表)视图图赠加了维维护的量creatte viiew vv$_deept_aavg_ssal_iinfo as (seleect .)creatte viiew vv$_sttu ass sellect id, namee, agge frrom sstu; -只给客客户
37、看非关关键的信息息非必要尽量量不适用,因因为会带来来维护繁琐琐的问题。尽量不要用用视图更新新数据。因因为视图很很可能从多多个表拿数数据。序列(seequennce):序列对象象 产生唯唯一的,不不间断的序序列,一般般用于主键键creaate ttablee arccticlle(idd nummber,titlle vaarchaar2(11024),connt loong);序列的创创建seqquencce产生独独一无二的的序列,而而且是orraclee独有的ccreatte seequennce sseq;seleect sseq.nnextvval ffrom duall; 查找找序列号
38、iinserrt innto aarctiicle valuues(sseq.nnextvval,a,b);往表中插插入序列dorp sequuencee seqq; -删除除序列。数据库设计计的3范式式(姓范的的设定的规规则):实实际当中可可以打破不要存在冗冗余数据:一条数据据只存放在在一个表里里,要用这这条数据,通通过该数据据的主键和和其他表联联系。第一一范式: 设计任何何表都要有有主键,列列不可分 -不存在冗冗余数据,不不能使用00123445_张三三_23第二范式: 如果有有2个主键键的话,不不能存在部部分依赖不是主键的的字段,不不能依赖于于主键的一一部分。第三范式, 不能存在在传递依
39、赖赖掌握一张语语言:1、数据类型型;2、语语法。oraclle内部的的编程语言言PL-SSQL,用用来补充SSQL(没没有分支,没没有循环)PL:过程程语言:带带有分支、循环的语语言。PL-SQQL例子1:SSQL set servverouutputt on;SQL beggin(必必要的-程序开始始执行)22 dbmms_ouutputt.putt_linne(hhelloo worrld); -输出语句句3 endd;(结束束)4 /例子2:SSQL decllare -声明变变量 vv_xxxx2 v_namee varrcharr2(200);3 begiin4 vv_namme:=
40、mynaame; -赋值值5 dbbms_ooutpuut.puut_liine(vv_namme);66 endd;7 /例子3:SSQL decllare22 v_nnum nnumbeer:=00;3 bbeginn4 v_num:=2/vv_numm;5 ddbms_outpput.pput_lline(v_nuum);66 endd;7 /decllare*ERROOR 位于于第 1 行:ORRA-011476: 除数为为 0ORRA-066512: 在liine 44例子4:ddeclaarev_num numbber:=0;beeginvv_numm:=2/v_nuum;dbbm
41、s_ooutpuut.puut_liine(vv_numm);exxcepttionwwhen otheers tthen -当其其他的情况况出现的时时候dbmms_ouutputt.putt_linne(eerrorr);eend;/选数据库:够用为原原则。小公公司别用ooraclle,太贵贵了。变量声明的的规则1.变量名不不能够使用用保留字,如如fromm,sellect等等2.第一一字符必须须是字母。3.变量量名最多包包含30个个字符4.不要与数数据库的表表或者列同同名5.每每一行只能能声明一个个变量常用变量类类型1. binaary_iinterrger, 整数,主主要用来计计数,而不
42、不是用来表表示字段类类型2. numbber 数字字类型 3. cchar 定长长字符串44. vaarchaar2 变长字字符串,44096个个字节(22048个个字)5. datte 日期6. longg 长长字符串,最最长2GBB(存大文文章)7. boollean 布布尔类型,可可以取trrue、 fallse 和和nulll(不初始始化)的值值例5:deeclarre v_ttemp numbber(11); v_counnt biinaryy_inttegerr:=0; v_saal nuumberr(7,22):=44000.00; vv_datte daate:=sysddat
43、e; v_pii connstannt nuumberr(3,22):=33.14; -consstantt 相当于于javaa里的fiinal。常量 v_valiid boooleaan:=ffalsee; v_nname varcchar22(20) nott nulll:=mynaame;begiin dbmms_ouutputt.putt_linne(vv_temmp vaalue:|vv_temmp); - |字符符串连接符符end;/用-可以以注释一行行-变量量声明,使使用%tyype属性性例6:deeclarre v_eempnoo nummber(4); vv_emppno2
44、emp.empnno%tyype; -声明变变了,程序序也跟着变变 v_emmpno33 v_eempnoo2%tyype; -变量变变了,另一一个变量也也跟着变bbeginn dbmss_outtput.put_linee(teest);endd;-taable变变量类型 ,taable是是一个数组组,指定类类型例7sett serrverooutpuut onn;decclaree typpe tyype_ttablee_empp_emppno iis taable of eemp.eempnoo%typpe inndex by bbinarry_inntegeer; -声明一一种新类型型
45、typee_tabble_eemp_eempnoo。 v_eempnoos tyype_ttablee_empp_emppno;bbeginn v_eempnoos(0):=73369; v_emmpnoss(2):=78669; vv_emppnos(-1):=99999; ddbms_outpput.pput_lline(v_emmpnoss(-1);ennd;-Reecordd 变量类类型, 相当于于一个类。例8sett serrverooutpuut onn;decclaree tyype ttype_recoord_ddept is rrecorrd ( ddeptnno deptt
46、.depptno%typee, -相相当于成员员变量 dnamme deptt.dnaame%ttype, looc deept.lloc%ttype ); v_ttemp typee_reccord_deptt;beggin v_tempp.depptno:=50; v_teemp.lloc:=aaaaa; vv_temmp.looc:=bj; dbmss_outtput.put_linee(v_ttemp.depttno| |v_ttemp.dnamme);eend;例9:使用用%rowwtypee声明reecordd变量(表表结构的变变化同时也也能代理储储存过程的的变化)sset sse
47、rveerouttput on;ddeclaare v_tempp deppt%roowtyppe;beegin vv_temmp.deeptnoo:=500; v_ttemp.loc:=aaaaa; v_teemp.lloc:=bj; dbmms_ouutputt.putt_linne(v_tempp.depptno| |v_tempp.dnaame);end;-SQQL语句的的运用例110;selecct语句必必须返回一一条记录,并并且只能返返回一条记记录。declaarev_namee empp.enaame%ttype;v_saal emmp.saal%tyype;bbeginnsel
48、eect eenamee,sall intto v_namee,v_ssal ffrom emp wherre emmpno=73699;(将eenamee和sall的值放在在v_naame和vv_sall里面)declaarev_emp eemp%rrowtyype;bbeginnseleect * intoo v_emmpl ffrom emp wherre emmpno=73699;dbms_oupuut.puut_liine(vv_empp.enaame);end;/例11:ddeclaarev_namee empp.enaame%ttype;v_saal emmp.saal%tyyp
49、e;bbeginnseleect eenamee,sall intto v_namee,v_ssal ffrom emp wherre emmpno=73699;dbmms_ouutputt.putt_linne(v_namee| |vv_sall);ennd;dbbms_ooutpuut.puut_liine(vv_namme| |v_saal);eend;-插入入例12:ddeclaarev_depttno ddept.depttno%ttype:=50;v_dnname deptt.dnaame%ttype:=aaaaa;v_looc deppt.looc%tyype:=bj;beggi
50、ninnsertt intto deept2 valuues(vv_depptno,v_dnname,v_looc);ccommiit;ennd;例13:ddeclaarev_depttno eemp2.depttno%ttype:=50;v_coount numbber;bbeginnupdaate eemp2 set ssal=ssal/22 wheere ddeptnno=v_depttno;ddbms_outpput.pput_lline(sql%rowccountt |条记录被被影响);(sqql为关键键字,代表表上一条SSQL语句句,rowccountt属性:影影响了多少少行,主要
51、要用于innsertt,upddata,deleete)commmit;eend;/例14:ddeclaarev_depttno eemp2.depttno%ttype:=50;v_coount numbber;bbeginn-uppdatee empp2 seet saal=saal/2 wherre deeptnoo=v_ddeptnno; sellect depttno iinto v_deeptnoo froom emmp2 wwheree emppno=77369;dbmss_outtput.put_linee(sqll%rowwcounnt |条记录录被影响);(ssql为关关键字
52、,代代表上一条条语句coommitt;endd;/例15deeclarrev_ddeptnno emmp2.ddeptnno%tyype:=50;vv_couunt nnumbeer;beegin-upddate emp22 sett sall=sall/2 wwheree depptno=v_deeptnoo;-sselecct deeptnoo intto v_depttno ffrom emp22 wheere eempnoo=73669;seelectt couunt(*) innto vv_couunt ffrom emp22; (seelectt必须和iinto一一起使用)dbms
53、_output.put_line(sql%rowcount |条记录被影响);commit;end;/PL/SQQL里面执执行DDLL语句:必必须加exxecutte immmediiatebbeginnexeccute immeediatte ccreatte taable T(nnnn vaarchaar2(220) ddefauult aaaa );end;PL/SQQL的分支支语句:ddeclaare v_ssal eemp.ssal%ttype;begiin seleect ssal iinto v_saal frrom eemp whhere empnno=73369; iff(v
54、_ssal11200) theen dbbms_ooutpuut.puut_liine(low); elssif(vv_sall=11); ennd looop;eend;whilee循环declaare j binnary_inteeger:=1;bbeginn whhile jv_bb) thhen v_ret:=v_aa; elsee v_reet:=vv_b;eend iif; v_tempp:=v_tempp+1;eend;in:传入入参数(默默认):由由调用环境境给v_aa赋值,可可以直接拿拿来用。out:传传出参数:由自己的的程序将vv_a的值值赋值到调调用环境in ouut:调
55、用存储过过程decclareev_a numbber:=3;v_b nuumberr:=4;v_reet nuumberr; -给给一个篮子子,让调用用环境给填填值v_ttemp numbber:=5;beegin p(v_a,v_b,v_reet,v_tempp); dbmms_ouutputt.putt_linne(v_ret); dbmss_outtput.put_linee(v_ttemp);endd;show erroor返回错错误信息删除存储过过程存储过程中中的函数ccreatte orr repplacee funnctioon saal_taax (vv_sall nummbe
56、r) retturn numbber -返回一一个nummber类类型的值iisbegginiff(v_ssal22000) theen retturn 0.100;elssif(vv_sall27550) tthen rreturrn 0.5;ellse reeturnn 0.220;ennd iff;endd;/函数的调用用:和以前前的函数调调用一样。selecct loower(enamme), sal_tax(sal) froom emmp;触发器trriggeer在执行插入入、删除、更新操作作时,将操操作的信息息插入到触触发器的表表中。creatte orr repplacee triiggerr triig aftter iinserrt orr dellete or uupdatte onn empp2 foor eaach rrow -每执行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中山火炬职业技术学院《建筑识图与制图》2023-2024学年第一学期期末试卷
- 郑州职业技术学院《检测技术与信号处理》2023-2024学年第一学期期末试卷
- 长沙卫生职业学院《信息安全理论与技术》2023-2024学年第一学期期末试卷
- 云南农业职业技术学院《中外体育文学》2023-2024学年第一学期期末试卷
- 海洋养殖科技革新模板
- 职业导论-房地产经纪人《职业导论》名师预测卷2
- 人教版四年级数学下册第七单元综合卷(含答案)
- 2024-2025学年吉林省吉林市蛟河实验中学高二(上)期末数学试卷(含答案)
- 烟台幼儿师范高等专科学校《艺术家与风格》2023-2024学年第一学期期末试卷
- 二零二五年度高端餐饮企业雇佣司机专业服务合同3篇
- 《中华人民共和国机动车驾驶人科目一考试题库》
- 2024年VB程序设计:从入门到精通
- 2024年故宫文化展览计划:课件创意与呈现
- 公共交通乘客投诉管理制度
- 不锈钢伸缩缝安装施工合同
- 水土保持监理总结报告
- Android移动开发基础案例教程(第2版)完整全套教学课件
- 医保DRGDIP付费基础知识医院内培训课件
- 专题12 工艺流程综合题- 三年(2022-2024)高考化学真题分类汇编(全国版)
- DB32T-经成人中心静脉通路装置采血技术规范
- TDALN 033-2024 学生饮用奶安全规范入校管理标准
评论
0/150
提交评论