




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库复习资料(仅供参考)1.选择:(各章都有。有一部分是课后习题)。15个30分。2.判断:(类型未知) 5个10分。3.SQL语句:4个20分(1).创建用户,指定默认表空间,临时表空间,以及在各个表空间的配额,设置口令到期,对用户进行锁定和解锁。.注释:下划线部分按要求自己输入创建用户create user用户名identified by初始密码Default tablespace默认表空间名Temporary tablespace临时表空间名Quota 10M on rsers /*指定允许使用的默认表空间配额为10M*/Quota 128K on users /*指定允许使用的临时表空间配额为128K*/Alter user exercise account lock; /*锁定exercise用户*/(2).创建表空间设置空间大小,初始值。2.创建表空间创建永久性表空间Create tablespace exer_tabspaceDatafile D:oracledataexer_tabspace.dbf size 100M /*指定路径与大小*/Autoextend on next 10M maxsize 1000MExtent management local;创建临时表空间Create temporary tablespace school_temp Tempfiled:oracledataschool_temp.dbf Size 20M reuse Autoextend on Maxsize 100MExtent management local;(3)创建序列。修改序列最大值,增量,缓冲 是否循环。CREATE SEQUENCE dept_deptno INCREMENT BY 1 /*表示序列的增量*/ START WITH 91 /*序列的开始位置*/ MAXVALUE 100 /*序列生成的最大值*/ NOCACHE /*不缓冲*/ NOCYCLE; /*不循环*/(4).导入一个表,导出存放的位置,是否按照直接路径导出。EXPORT导出三种方法1表方式Exp userid=vendition/vendition direct=y tables=(商品信息);file=e:oradatavendition_merchlog= e:oradatavendition_merch.log2用户方式Exp用户名/密码 file=e:oradatavendition_2007_6_21log= e:oradatavendition.log3.数据库方式Exp userid=system/abc123direct=y full=yfile=e:oradatafull_database_2007_6_21 导出路径log= e:oradatafull_database.log 日志路径direct=y表示按照直接路径导出导入是IMP。导出是EXP4编程3个40分1 创建对象类型,按照说明写对象的主体。成员函数和功能实现。参考课件栈是一个有序集合。栈有一个栈顶和一个栈底。栈中的每一项都只能在栈顶添加或删除。所以,最后一个被加入栈的项会被最先删除。(可以把栈想象成自助餐厅中的盘子。)压栈和退栈操作能够对栈进行后进先出(LIFO)更新。栈能应用在很多地方。例如,它们可以用在系统编程中控制中断优先级并对递归进行管理。最简单的栈实现就是使用整数数组,数组的一端代表了栈顶。PL/SQL提供了VARRAY数据类型,它能让我们声明变长数组。要声明变长数组属性,必须先定义变长数组类型。但是,我们不能再对象说明中定义类型,所以,只能单独的定义变长数组类型,并指定它的最大长度,具体实现如下: CREATE TYPE IntArrayAS VARRAY(25)OF INTEGER;编写对象类型说明CREATE TYPE stack AS OBJECT( max_size INTEGER, top INTEGER, POSITION intarray, MEMBER PROCEDURE initialize, MEMBER FUNCTION FULL RETURN BOOLEAN, MEMBER FUNCTION empty RETURN BOOLEAN, MEMBER PROCEDURE push(n IN INTEGER), MEMBER PROCEDURE pop(n OUT INTEGER);编写对象类型体CREATE TYPE BODY stack AS MEMBER PROCEDURE initialize IS BEGIN top := 0; POSITION := intarray(NULL); max_size := POSITION.LIMIT; POSITION.EXTEND(max_size - 1, 1); END initialize; MEMBER FUNCTION FULL RETURN BOOLEAN IS BEGIN RETURN(top = max_size); END FULL; MEMBER FUNCTION empty RETURN BOOLEAN IS BEGIN RETURN(top = 0); END empty;MEMBER PROCEDURE push(n IN INTEGER) ISBEGIN IF NOT FULL THEN top := top + 1; POSITION(top) := n; ELSE raise_application_error(-20101, stack overflow); END IF;END push;MEMBER PROCEDURE pop(n OUT INTEGER) ISBEGIN IF NOT empty THEN n := POSITION(top); top := top - 1; ELSE raise_application_error(-20102, stack underflow); END IF;END pop;END;对象类型实例:有理数有理数能够表现成两个整数相除的形式,一个分子和一个分母。编写对象说明CREATE TYPE rational AS OBJECT( num INTEGER, den INTEGER, MAP MEMBER FUNCTION CONVERT RETURN REAL, MEMBER PROCEDURE normalize, MEMBER FUNCTION reciprocal RETURN rational, MEMBER FUNCTION plus(x rational) RETURN rational, MEMBER FUNCTION LESS(x rational) RETURN rational, MEMBER FUNCTION times(x rational) RETURN rational, MEMBER FUNCTION divby(x rational) RETURN rational, PRAGMA RESTRICT_REFERENCES(DEFAULT, RNDS, WNDS, RNPS, WNPS);PL/SQL不允许操作符重载。所以我们必须定义方法plus(),less()(minus是保留关键字),times()和divby()来替代操作符+、-、*和/。创建下面的独立存储函数,它们会被方法normalize()调用:CREATE FUNCTION gcd(x INTEGER, y INTEGER) RETURN INTEGER AS ans INTEGER;BEGIN IF (y = x) AND(x MOD y = 0) THEN ans := y; ELSIF x =number2 then DBMS_output.put_line(number1=number 2);Else DBMS_output.put_line(number1number 2); end if; end;2 按要求编制程序:从键盘输入两个整数,判断两个整数的大小,并输出结果。Set serveroutput onAllept num1 promptplease input the first integer:Allept num2 promptplease input the second integer:DeclareNumber 1 integer:=&num1;Number 2 integer:=&num2;i integer :=0;beginloop number1:=number1+1; if number1=number2 then i :=i+1; exit;else i :=i+1; end if;end loop;DBMS_output.put_line(i);End2 按要求编制程序:从键盘输入两个整数(从小到大),将第一个整数每次加1,一直到等于第二个整数为止,统计输出循环次数。Set serveroutput onDelare Cursor c1 is select empno,sal from emp order by sal for update of sal; e_eno emp.empno%type; e_sal emp.sal%type; s_sal number;begin select sum(sal,into s_sal from emp); While s_sal500000 loopOpen c1; LoopFetch c1into e_eno,e_sal;exit inner when c1%not found;Update emp set sal=sal*1.1 where current of c1;S_sal :=s_sal+e_sal*0.1; Exit outer when s_sal500000;End loop;Close c1;End loop;End;1 按要求编制程序: 根据SCOTT用户的emp表中数据,为职工涨工资。从最低工资涨,增加幅度为10%,涨完工资后,每月发放工资总额为50万元。Set serveroutput onCreate table tax(enpno number (4) not null, ename varchar2(10), Stax number(7,2),memssage varchar2(30);Declare Record emp% rowtype; Cursor emp_cursor is select * from emp; V_tax emp.sal%type; V_message varchar2(30); Over_sal exception;Begin Open emp_cursor; Fetch emp_cursor into record; While emp_cursor%foundLoopBeginIf record sal4000 then Raise over_sal;Else v_tax :=record sal*0.1;end if; v_message :=;exception when over_sal then v_tax :=record sal*0.2; v_massage :=sal is too high!;when others then null;end;insert into tax(empno,ename,stax,memessage)values (record.empno,record.ename,v_tax,v_message);fetch empcursor into record;end loop;close emp_cursor;commit;end;1 按要求编制程序: 对SCOTT用户的EMP表中的每一个雇员按不同情况征收个人所得税。将各雇员的雇员号(empno)、姓名(ename)及所得税(stax)存放于名为TAX的表中。如果工资高于4000元,征收20%的税,并触发自定义的异常将该情况说明写入TAX的备注(memo)字段。否则,均征收10%的税。Set serveroutput onCreate or repace procedure tempprocedure as tname emp.ename%type;Begin Select ename into tname from emp where empno=7788; DBMS_outpu.pu_line(tname);End;1 按要求编制程序:创建一个过程,定义一个同EMP表中的ENAME相同类型的变量tname,将EMP表中7788雇员的姓名送入变量tname中,然后输出结果。Create or replace function get_deptno w_emp_no inemp.empno%type; Return number IsV_emp_deptno emp.deptno%type;Begin Select deptno into v_emp_deptno from emp where empno=v_emp_no;Return (v_emp_deptno);1 按要求编制程序:创建一个函数,获取EMP表中某雇员的部门号。Cre
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 子宫肌瘤中西医课件
- 年前安全培训物业课件
- 2025年青州市事业单位考试真题
- 工业安全锁培训资料课件
- 平面设计盛宴课件
- 姓氏歌课件刘碧珍
- Fmoc-pro-osu-N-Fmoc-L-proline-N-succinimidyl-ester-生命科学试剂-MCE
- 工业安全培训平台课件
- 北京市第十八中学招聘教师笔试真题2024
- 农发行乌兰察布市兴和县2025秋招无领导模拟题角色攻略
- 济宁市“技能状元”职业技能竞赛-全市煤化工行业技能大赛化学检验工参考题库
- 邢台城市介绍课件
- 怎样写好硬笔字-硬笔书法教程课件 4-1 硬笔隶书笔画技法
- 旅行社旅游突发公共事件应急预案
- 统编版中考语文一轮复习:义务教育语文课程常用字表(3500字注音版)(2022版课标)
- 建筑工程技术专业《房屋建筑学》课程标准
- 人教版部编版统编版一年级语文上册汉语拼音5《gkh》课件
- DL-T1083-2019火力发电厂分散控制系统技术条件
- 《2024年北京市医疗服务收费目录》
- 意外险医疗险重疾险
- 便利店陈列培训
评论
0/150
提交评论