数据库存储过程_第1页
数据库存储过程_第2页
数据库存储过程_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、存储过程一、目的和要求1、 掌握存储过程的使用方法2、 掌握触发器的使用方法二、准备1、 了解存储过程的使用方法2、 了解触发器的使用方法3、 了解逻辑表的使用准备工作:1、 附加数据库 yggl 2、 删除里面所有的参照关系3、 给 employees 标增加一列(workyear ),并输入数据三、内容( 创建存储过程)1) 创建存储过程 p1。检查编号为“ 000001”的员工是否存在,如果存在,显示该员工的所有信息,如果不存在,显示“该员工不存在!”createprocedurep1ygidaschar( 6)= '000001'asbeginifexists(sele

2、ct*fromemployeeswhereemployeeid=ygid )select*fromemployeeswhereemployeeid= ygidelseprint' 该员工不存在!'endp12) 创建存储过程 p2。根据职工编号检查该员工是否存在,如果存在,显示该员工的所有信息,如果不存在,显示“该员工不存在! ”。createprocedurep2ygidaschar( 6)asbeginifexists(select*fromemployeeswhereemployeeid=ygid )select*fromemployeeswhereemployeeid=

3、 ygidelseprint' 该员工不存在!'end3) 调用该存储过程 p2,检查编号为“ 108991”的员工是否存在。 exec p2 '108991'14) 创建存储过程 p3,根据职工号比较两个员工的实际收入,输出实际收入较高的员工的职工号。并调用该存储过程比较 000001 、 108991的实际收入。createprocedurep3id1aschar( 6 ), id2aschar( 6 )asbegindeclares1 floatdeclares2 floatselects1=( selectincome- outcomefromsalar

4、ywhereemployeeid=id1 )selects2=( selectincome- outcomefromsalarywhereemployeeid=id2 )ifs1> s2select*fromemployeeswhereemployeeid= id1elseselect*fromemployeeswhereemployeeid= id2endexecp3'000001', '108991'5) 创建存储过程p4,要求当一个员工的工作年份大于6 年时将其转到 经理办公室 部门去工作。createprocedurep4employeeidcha

5、r( 6 )asbegindeclareworkyearintselectworkyear=workyearrfromemployeeswhereemployeeid=employeeidifworkyear> 6updateemployeessetdepartmentid=3whereemployeeid= employeeidendexecp4'000001'6)创建存储过程p5,通过该存储过程可以添加员工记录。createprocedurep5employeeidchar( 6 ), name char( 10 ),birthdaydatetime, sex bit

6、, addresschar( 20 ), zipchar( 6),phonenumberchar( 12 ), emailaddresschar( 30 ), departmentidchar( 3),workyearintasbegininsertintoemployees( employeeid, name , birthday, sex , address, zip, phonenumber, emailaddress, departmentid, workyearr)values( employeeid, name, birthday, sex , address, zip , pho

7、nenumber, emailaddress, departmentid, workyear)end2p5'123456', 'kss', '1992-2-2', '1', 'korea', '000000', '9000', '', '4', '6'7) 为员工表增加一个 “职称” 列,并输入 (工程师 副高级工程师 高级工程师) 数据。 然后,创建存储过程,根据员工编号检查员工职称并根据职称增加员工的工资(工程师-300,副高级工程师 -500,高级工程师 -800。)createprocedurep6 BH char ( 6 )asbegindeclarea char ( 12 )seta=( select职称 fromemployeeswhereemployeeid= BH)if ( a= ' 工程师 ' )updatesalarysetincome= income+300whereEmployeeID= BHelseif( a= ' 副高级工程师 ' )updatesalarysetincome= income+500whereEmployeeID= BH

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论