欢迎来到天天文库
浏览记录
ID:56778982
大小:40.00 KB
页数:9页
时间:2020-07-09
《经典sql-高级-实验三.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验三、1.建立一个表(表名自定),表结构与EMP相同,没有任何记录。createtablemy_empasselect*fromemp;2.用Insert语句输入5条记录,并提交。3.扩大该表的记录数到约40条,并使雇员号不重复;每个雇员都有所属部门,雇员在同一部门的经理是同一人。insert….update…commit4.建立一个与DEPT表结构和记录完全相同的新表,并与前项新表建立参照完整性约束。altertablemy_deptadd(constraints1primarykey(deptno));altertablemy_empadd(constraints2for
2、eignkey(deptno)referencesdept(deptno));5.对在‘NEWYORK’工作的雇员加工资,每人加200。6.*如果雇员姓名与部门名称中有一个或一个以上相同的字母,则该雇员的COMM增加500。updatemy_empasetcomm=NVL(comm,0)+500wherea.ename<>(selecttranslate(a.ename,b.dname,CHR(27))frommy_deptbwhereb.deptno=a.deptno);--a.deptno与b.deptno必须有主外键连接,否则可能出错,为什么?commit;7.删除部门号
3、为30的记录,并删除该部门的所有成员。deletefromempwheredeptno=30;deletefromdeptwheredeptno=30;commit8.新增列性别SEX,字符型。altertableempadd(sexchar(2));9.修改新雇员表中的MGR列,为字符型。该列数据必须为空altertableempmodify(mgrvarchar2(20));10.试着去删除新表中的一个列。altertablemy_empdrop(comm);实验四、1.查询部门号为30的所有人员的管理层次图。selectlevel,enamefromempconnectb
4、ymgr=priorempnostartwithdeptno=30andjob='MANAGER';2.查询员工SMITH的各个层次领导。selectlevel,enamefromempconnectbypriormgr=empnostartwithENAME='SMITH';3.查询显示EMP表各雇员的工作类型,并翻译为中文显示用decode函数4.*查询显示雇员进入公司当年是什么属相年(不考虑农历的年份算法)用decode函数5.建立一个视图myV_emp,视图包括myEMP表的empno、ename、sal,并按sal从大到小排列。createviewmyV_EMPass
5、electempno,ename,salfromemp;6.定义一个mySeq,对selectmySeq.nextval,my_emp.*frommy_emp的执行结果进行说明。7.定义序列mySeq、myEMP、myV_emp的同义词,能否用同义词对上述对象进行访问。8.在myEMP表中建立ename的唯一性索引。9.如何在sql*plus中,运行sql的脚本(即后缀为.sql的文件)实验五、1.观察下列PL/SQL的执行结果declaresemp%rowtype;beginselect*intosfromempwhereename='KING';DBMS_OUTPUT.PU
6、T_LINE(s.empno
7、
8、s.ename
9、
10、s.job
11、
12、s.sal);END;2.编写一个PL/SQL,显示ASC码值从32至120的字符。beginforiin32..120loopdbms_output.put_line(chr(i));endloop;end;3.计算myEMP表中COMM最高与最低的差值,COMM值为空时按0计算。declarevar1number;var2number;val_commnumber;beginselectmax(nvl(comm,0))intovar1frommyemp;selectmin(nvl(comm,0))intovar
13、2frommyemp;val_comm:=var1-var2;dbms_output.put_line(val_comm);end;4.根据表myEMP中deptno字段的值,为姓名为‘JONES’的雇员修改工资;若部门号为10,则工资加100;部门号为20,加200;其他部门加400。declarec1number;c2number;beginselectdeptnointoc1fromempwhereename=’JONES’;ifc1=10thenc2:=100;elsifc1=20t
此文档下载收益归作者所有