




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
oracle入门讲义与练习 /*PL/SQL:1.DECLARE变量、类型等的声明BEGIN可执行部分。 EXCEPTION异常处理部分.。 END;A)BEGIN.END;必不可少.B)SELECT COL1,COL2,.INTO V_C1,V_C2,.FROM.WHERE.单行查询赋值语句.a.COL1,COL2,.要与V_C1,V_C2,.在类型,顺序,个数上要一致.b.该语句将查询所获得的COL1,COL2,.值依次赋给V_C1,V_C2,.变量.c.该语句必须只能返回一条记录.C)DBMS_OUTPUT是一个系统定义的输出包该包包括了在控制端输出信息的基本函数和过程.包名.函数名的形式来使用.a.PUT_LINE(V)输出V内容,并且换行.b.PUT(V)输出V内容.c.NEW_LINE换行.D)SET SERVEROUTPUTON该命令将SERVEROUTPUT环境变量设置为ON,使得DBMS_OUTPUT包中的方法输出的内容能在SQLPLUS中显示.*/REM查询雇员编号为7788的雇员姓名和工资。 SET SERVEROUTPUTON;DECLARE V_NAME VARCHAR2 (20);V_SAL NUMBER(7,2);BEGIN-1.如何将查询结果放到变量中去SELECT ENAME,SAL INTO V_NAME,V_SAL FROM EMP WHERE EMPNO=7788;-2.如何将变量结果显示在控制端.DBMS_OUTPUT.PUT_LINE(姓名是:|V_NAME);DBMS_OUTPUT.PUT_LINE(工资是:|V_SAL);END;REM查询编号为7788的姓名,职务,工资。 /*PL/SQL:2.变量定义的方法是变量名CONSTANT类型NOT NULL:=值|DEFAULT值;A)CONSTANT代表该变量是一个常量B)NOT NULL代表该变量不能为空。 C)DEFAULT或者:=代表赋初值.D)在程序中间给变量赋值用变量名:=值的形式.*/DECLARE-声明部分标识v_job VARCHAR2 (9);v_count BINARY_INTEGER DEFAULT0;v_total_sal NUMBER(9,2):=0;v_date DATE:=SYSDATE+7;c_tax_rate CONSTANTNUMBER(3,2):=8.25;v_valid BOOLEANNOT NULL:=TRUE;BEGIN v_job:=MANAGER;-在程序中赋值DBMS_OUTPUT.PUT_LINE(v_job);-输出变量v_job的值DBMS_OUTPUT.PUT_LINE(v_count);-输出变量v_count的值DBMS_OUTPUT.PUT_LINE(v_date);-输出变量v_date的值DBMS_OUTPUT.PUT_LINE(c_tax_rate);-输出变量c_tax_rate的值END;/*PL/SQL:3.根据表的字段类型定义变量变量名表名.字段名%TYPE;A)表名.字段名%TYPE返回对应字段的类型.*/REM查询7788的职务和工资.DECLARE V_JOB EMP.JOB%TYPE;V_SAL EMP.SAL%TYPE;BEGIN SELECTJOB,SAL INTOV_JOB,V_SAL FROM EMP WHEREEMPNO=7788;DBMS_OUTPUT.PUT_LINE(7788的职务为|V_JOB|,工资为|TO_CHAR(V_SAL,L99,999.99);END;REM查询7788的职务和津贴.如果津贴为空,则显示为0./*PL/SQL:4.结合变量的定义和使用在SQL PLUS环境下的全局变量.定义:VARIABLE变量名数据类型;A)NUMBER|CHAR|CHAR(nCHAR|BYTE)|VARCHAR2(nCHAR|BYTE)|NCHAR|NCHAR(n)|NVARCHAR2(n)|CLOB|NCLOB|REFCURSOR B)不可以有初始值C)全局变量的使用:全局变量名*/REM定义全局变量G_NAME-VARIABLE G_NAME VARCHAR2 (4000);DECLARE V_NAME VARCHAR2 (20);BEGIN V_NAME:=V_NAME|TAN;:G_NAME:=:G_NAME|TAN;DBMS_OUTPUT.PUT_LINE(V_NAME:|V_NAME);DBMS_OUTPUT.PUT_LINE(G_NAME:|:G_NAME);END;/*5.记录变量的定义变量名表名|游标名%ROWTYPE;A)记录变量在被赋值的时候必须是某表或者某游标中的所有字段.B)记录变量不可以直接输出C)使用记录变量.字段名的形式输出D)不可以使用记录变量.*的格式.*/REM查询7788的员工姓名,职务,工资.DECLARE REC_EMP EMP%ROWTYPE;BEGIN SELECT*INTO REC_EMP FROM EMP WHEREEMPNO=7788;DBMS_OUTPUT.PUT_LINE(REC_EMP.ENAME|REC_EMP.JOB|REC_EMP.SAL);END;/*6.TABLE类型变量1)自定义TABLE类型TYPE类型名IS TABLE OF数据类型NOT NULLINDEX BY BINARY_INTEGER;A)数据类型指的是自定义类型所能存储的基本数据是什么类型.B)INDEX BYBINARY_INTEGER;以带符号的整数作为索引.2)定义TABLE类型的变量.变量名TABLE类型名;3)使用TABLE变量名(整数);*/DECLARE-1.声明类型TYPE TAB_TYPE IS TABLE OFVARCHAR2 (20)INDEX BYBINARY_INTEGER;-2.声明变量V_T TAB_TYPE;BEGIN V_T (0):=FIRST;V_T (1):=SECOND;V_T (2):=THIRD;DBMS_OUTPUT.PUT_LINE(V_T (2);END;/*6.TABLE类型变量1)自定义TABLE类型TYPE类型名ISTABLEOF数据类型NOT NULLINDEX BYBINARY_INTEGER;A)数据类型指的是自定义类型所能存储的基本数据是什么类型.B)INDEX BYBINARY_INTEGER;以带符号的整数作为索引.2)定义TABLE类型的变量.变量名TABLE类型名;3)使用TABLE变量名(整数);A)该整数可以是负数,0,正数B)没有起始位置C)建议以0或1为起始位置,并且连续存储.*/REM请把7788,7934,7902的员工信息存储到一个TABLE变量中.DECLARE-1.声明类型TYPE TAB_TYPE ISTABLEOFEMP%ROWTYPE INDEXBYBINARY_INTEGER;-2.声明变量V_T TAB_TYPE;BEGIN SELECT*INTOV_T (1)FROMEMP WHEREEMPNO=7788;DBMS_OUTPUT.PUT_LINE(V_T (1).ENAME);END;/*运算符和函数+,-,*,/,*=!=AND NOTOR|BETWEEN.AND.LIKE INIS NULL-MAX,MIN,AVG.只能在SQL中使用.*/*分支结构1.IF IF.THEN.END IF;*/REM如果饭量超过6两,输出能吃;DECLARE V_RICE INT:=6;BEGIN IFV_RICE=6THEN DBMS_OUTPUT.PUT_LINE(能吃!);END IF;END;/*分支结构1.IF IF.THEN.ELSE.END IF;*/REM如果饭量超过6两,输出能吃;否则输出吃得太少了.;DECLARE V_RICE INT:=6;BEGIN IFV_RICE=6THEN DBMS_OUTPUT.PUT_LINE(能吃!);ELSE DBMS_OUTPUT.PUT_LINE(吃得太少了!);END IF;END;/*分支结构1.IF IF.THEN.ELSIF.THEN.ELSIF.THEN.ELSE.END IF;*/REM如果饭量超过6两,输出能吃;超出4两,还可以.;否则输出吃得太少了.;DECLARE V_RICE INT:=5;BEGIN IFV_RICE=6THEN DBMS_OUTPUT.PUT_LINE(能吃!);ELSIF V_RICE=4THEN DBMS_OUTPUT.PUT_LINE(还可以!);ELSE DBMS_OUTPUT.PUT_LINE(吃得太少了!);END IF;END;/*分支结构1.CASE CASE(VAR)WHEN V1THEN.WHEN V2THEN.ELSE.END CASE;A)VAR必须是一个变量或者有变量参与的表达式B)V1,V2,.是类型与VAR一致的常数.*/REM使用CASE结构实现职务转换。 DECLARE v_job VARCHAR2 (10);BEGIN SELECTjob INTOv_job FROMemp WHERE empno=7788;CASE v_job WHENPRESIDENTTHEN DBMS_OUTPUT.PUT_LINE(雇员职务:总裁);WHENMANAGERTHEN DBMS_OUTPUT.PUT_LINE(雇员职务:经理);WHENSALESMANTHEN DBMS_OUTPUT.PUT_LINE(雇员职务:推销员);WHENANALYSTTHEN DBMS_OUTPUT.PUT_LINE(雇员职务:系统分析员);WHENCLERKTHEN DBMS_OUTPUT.PUT_LINE(雇员职务:职员);ELSE DBMS_OUTPUT.PUT_LINE(雇员职务:);END CASE;END;/*分支结构1.表达式结构CASE语句变量:=CASE选择变量名WHEN表达式1THEN值1WHEN表达式2THEN值2WHEN表达式n THEN值n ELSE值n+1END;A)该CASE主要是通过比较选择变量来返回某个具体的值,并把该值赋给某变量.*/DECLARE v_grade VARCHAR2 (10);v_result VARCHAR2 (10);BEGIN v_grade:=B;v_result:=CASE v_grade WHENATHEN优WHENBTHEN良WHENCTHEN中WHENDTHEN差ELSEEND;DBMS_OUTPUT.PUT_LINE(评价等级:|V_result);END;REM如果成绩(0-100):10THEN DBMS_OUTPUT.PUT_LINE(DA LE.);ELSE DBMS_OUTPUT.PUT_LINE(XIAO LE.);END CASE;END;/*基本的LOOP:LOOP.EXITWHEN.;END LOOP;*/REM1100之间的奇数.DECLARE I INT:=1;BEGIN LOOP DBMS_OUTPUT.PUT_LINE(I);I:=I+2;EXIT WHENI=101;END LOOP;END;/*FOR控制变量inREVERSE下限.上限LOOP语句1;语句2;END LOOP;-A)控制变量不需要程序定义,是在FOR语句中隐含定义的.B)控制变量的类型与IN后面的上下限数据类型一致上下限为数值型-控制变量为数值型上下限为日期型-控制变量为日期型上下限为字符型-控制变量为字符型上下限为一集合-控制变量为记录类型C)上限一定要比下限大.D)循环在下限上限之间进行,每循环一次,增加1个单位,一直达到上限为止.E)如果选择了REVERSE,那么从上限开始,每循环一次,减少1个单位,一直达到下限为止.F)LOOP中可以有EXIT,但是,如果存在EXIT,那么,FOR循环可能在LOOP中结束,而与上限下限无关.*/REM显示1100DECLARE-I INT:=1;BEGIN FOR I IN1.100LOOP DBMS_OUTPUT.PUT_LINE(I);END LOOP;END;REM显示1100奇数/*FOR控制变量inREVERSE下限.上限LOOP语句1;语句2;END LOOP;-A)控制变量不需要程序定义,是在FOR语句中隐含定义的.B)控制变量的类型与IN后面的上下限数据类型一致上下限为数值型-控制变量为数值型上下限为日期型-控制变量为日期型上下限为字符型-控制变量为字符型上下限为一集合-控制变量为记录类型C)上限一定要比下限大.D)循环在下限上限之间进行,每循环一次,增加1个单位,一直达到上限为止.E)如果选择了REVERSE,那么从上限开始,每循环一次,减少1个单位,一直达到下限为止.F)LOOP中可以有EXIT,但是,如果存在EXIT,那么,FOR循环可能在LOOP中结束,而与上限下限无关.G)控制变量在LOOP中不可以被赋值.*/REM显示1100REM显示1100
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 压力管道安全培训感受课件
- 2025年机器人行业智能机器人技术应用前景与产业发展研究报告
- 2025年生物医药行业生物医药技术高新发展与健康产业前景研究报告
- 2025年文化传媒行业文化传媒产业发展前景研究报告
- 2025年人工智能在医疗保健行业应用案例与市场前景报告
- 2025年智能医疗行业智能医疗设备市场前景展望研究报告
- 2025年汽车行业共享汽车市场前景研究报告
- 2025年文化行业文创产品市场前景分析研究报告
- 2025年无人机行业无人机应用案例与发展前景研究报告
- 宿迁市2025江苏宿迁市商务局局属事业单位招聘工作人员5人笔试历年参考题库附带答案详解
- 《分子生物学基础知识》课件
- GB/T 45147-2024道路车辆总质量大于3.5 t的车辆气制动系统试验使用滚筒制动试验台获取和使用参考值
- 食管纵隔瘘护理
- 建筑项目水泥采购合同
- 华为ICT大赛网络赛道考试题库(786题)
- 水果采购协议样本
- 中职英语(高教版2021基础模块1)Part01-Unit2-Transportation
- 哲学与人生 第二课 树立科学的世界观2.1
- 2024-2030年中国止痛药品市场供需形势及未来前景动态研究研究报告
- 风电110KV升压站土建工程施工方案
- 2018低压电力线高速载波通信互联互通技术规范第3部分:检验方法
评论
0/150
提交评论