版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
克拉玛依职业技术学院·信息工程系《数据库及应用》课程设计报告第18页-克拉玛依职业技术学院数据库课程设计报告课程设计名称:数据库课程设计学期:14-15-1班级:软件1331班姓名:刘吉轩指导老师:田娟、魏军一、课程设计(实习)目的课程设计是课程教学中的一项重要内容,是完成教学计划达到教学目标的重要环节,是教学计划中综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。《数据库及应用》是一门实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。一是与《JAVA程序设计》、《JAVA高级程序设计》相结合完成中小应用程序开发;二是为后续的《JSP程序设计》、《J2EE程序设计》课程打好基础。本课程设计的目的旨在帮助学生掌握设计数据库、使用T-SQL语言、创建与管理数据库和表、查询数据、使用视图与索引、使用存储过程和游标、使用触发器和事务、数据库的安全性管理、备份与还原数据库等内容,培养学生应用所学知识分析问题,解决问题的能力。二、时间安排周数实习内容时间分配备注第一周创建与管理数据库2014-12-15课程设计内容以学生自主完成为主,教师辅导为辅。创建与管理数据表查询数据使用视图与索引2014-12-16使用存储过程和游标2014-12-17使用触发器和事务数据库的安全性管理2014-12-18备份与还原数据库课程设计答辩2014-12-19(上午)课程设计报告2014-12-19(下午)三、课程设计(实习)内容1、创建与管理数据库(1)创建数据库createdatabasekqglonprimary(Name='kqgl_data',filename='c:\kqgl_data.mdf',size=5mb,maxsize=500mb,filegrowth=20%)logon(Name='kqgl_log',filename='c:\kqgl_log.idf',size=5mb,maxsize=unlimited,filegrowth=10%)(2)修改数据库1)alterdatabasekqgladdfile(Name='kqgl_data1',filename='c:\kqgl\kqgl_data1.mdf',size=3mb,maxsize=unlimited,filegrowth=10%)2)修改恢复模式为“完整”alterdatabasekqglsetrecoveryfull3)启用“自动关闭”alterdatabasekqglsetauto_closeon
4)启用“自动收缩”alterdatabasekqglsetauto_shrinkon
(3)查看并检查数据库信息
(4)分离数据库(2)创建与管理数据表1)创建“部门信息”表,参数见表1usekqglgocreatetablebmxx(bmbhchar(10)notnull,bmmcchar(20)notnull,bmzgchar(10)null,bmrssmallintnull)列名数据类型可否为空部门编号Char(10)Notnull部门名称Char(20)Notnull部门主管Char(10)null部门人数Smallintnull2)创建表“员工信息”,参数见表2usekqglgocreatetableygxx(ygbhchar(10)notnull,ygxmchar(20)notnull,bmbhchar(10)null,xbchar(2)null,csrqdatetimenull,jgchar(10)null,dzchar(10)null,lxdhchar(20)null,jbgzmoneynull,sfzhmchar(18)null)列名数据类型可否为空员工编号Char(10)Notnull员工姓名Char(10)Notnull部门编号Char(10)null性别Char(2)null出生日期Datetimenull籍贯Char(10)null地址Char(10)null联系电话Char(20)null基本工资Moneynull身份证号码Char(18)null3)创建表“考勤信息”参数见表3usekqglgocreatetablekqxx(ygbhchar(10)notnull,bmbhchar(10)null,ndchar(10)null,yfchar(2)null,dytstinyintnull,qqtstinyintnull,bjtstinyintnull,sjtstinyintnull,kgtstinyintnull,txtstinyintnull,cdtstinyintnull,zttstinyintnull,cctstinyintnull,ysjbtstinyintnull,xxrjbtstinyintnull)列名数据类型可否为空员工编号Char(10)Notnull部门编号Char(10)null年度Char(10)null月份Char(10)null当月天数tinyintnull全勤天数tinyintnull病假天数tinyintnull事假天数tinyintnull旷工天数tinyintnull调休天数tinyintnull迟到天数tinyintnull早退天数tinyintnull出差天数tinyintnull延时加班天数tinyintnull休息日加班天数tinyintnull4)创建表“工资信息”,参数见表4usekqglgocreatetablegzxx(ygbhchar(10)notnull,bmbhchar(10)null,ndchar(10)null,yfchar(2)null,jbgzmoneynull,byjjmoneynull,jbfmoneynull,bjkkmoneynull,sjkkmoneynull,kgkkmoneynull,wjkkmoneynull,clbzmoneynull,jbyldkmoneynull,zfgjjdkmoneynull,yyfbxmoneynull,sfgzmoneynull,)列名数据类型可否为空员工编号Char(10)Notnull部门编号Char(10)null年度Char(10)null月份Char(10)null基本工资moneynull本月奖金moneynull加班费moneynull病假扣款moneynull事假扣款moneynull旷工扣款moneynull违纪扣款moneynull差旅补助moneynull基本医疗代扣moneynull住房公积金代扣moneynull医药费报销moneynull实发工资moneynull(3)创建主键约束1)分析各表结构,合理创建主键约束表1:usekqglgoaltertablebmxxaddconstraintpk_bmxxprimarykey(bmbh)表2:usekqglgoaltertableygxxaddconstraintpk_ygxxprimarykey(ygbh)表3:usekqglgoaltertablekqxxaddconstraintpk_kqxxprimarykey(bmbh,ygbh)2)、分析各字段特点,合理创建唯一约束。表1:usekqglgoaltertablebmxxaddconstraintunique_bmbhunique(bmbh)usekqglgoaltertableygxxaddconstraintunique_ygbhunique(ygbh)3)、分析各表结构及各字段特点,合理创建外键约束。表1:usekqglgoaltertablebmxxaddconstraintfk_gzxx_bmbhforeignkey(bmbh)referencesbmxx(bmbh)表2:usekqglgoaltertablebmxxaddconstraintfk_gzxx_ygxxforeignkey(ygbh)referencesygxx(ygbh)表3:usekqglgoaltertablekqxxabmrsconstraintfk_kqxx_gzxxforeignkey(ygbh)referencesgzxx(ygbh)4)、分析各字段特点,合理创建检查约束。表1:usekqglgoaltertablebmxxabmrsconstraintcheck_bmrscheck(bmrs>10andbmrs<20)表2:usekqglgoaltertableygxxabmrsconstraintcheck_jbgzcheck(jbgz<8000)表3:usekqglgoaltertablekqxxabmrsconstraintcheck_yfcheck(yf<8)表4:usekqglgoaltertablegzxxabmrsconstraintcheck_sfgzcheck(sfgz>5000)5)、分析各字段特点,合理创建默认值约束。部门信息表:usekqglgoaltertablebmxxabmrsconstraintdefault_bmrsdefault'8'forbmrs员工信息表:usekqglgoaltertableygxxabmrsconstraintdefault_bmbhdefault'1000'forbmbh考勤信息表usekqglgoaltertablekqxxabmrsconstraintdefault_yfdefault'6and8'foryf工资信息表:usekqglgoaltertablegzxxabmrsconstraintdefault_jbgzdefault'2000'forjbgz(4)创建规则与默认值1)、分析各字段特点,合理创建规则并绑定。部门信息表:1)创建:usekqglgocreaterulebmrs_ruleas@bmrs>=0and@bmrs<=102)绑定:usekqglgoexecsp_bindrule'bmrs_rule','bmxx.bmrs'员工信息表:1)创建:usekqglgocreaterulejbgz_ruleas@jbgz>=3000and@jbgz<=100002)绑定:usekqglgoexecsp_bindrule'jbgz_rule','ygxx.jbgz'考勤信息表:1)创建:usekqglgocreateruledyts_ruleas@dyts>=1and@dyts<=312)绑定:usekqglgoexecsp_bindrule'dyts_rule','kqxx.dyts'工资信息表:1)创建:usekqglgocreaterulesfgz_ruleas@sfgz>=5000and@sfgz<=100002)绑定:usekqglgoexecsp_bindrule'sfgz_rule','gzxx.sfgz'2)、分析各字段特点,合理创建默认值并绑定。部门信息表:1)创建:usekqglgocreatedefaultbmmc_defas25802)绑定:usekqglgoexecsp_bindefault'bmmc_def','bmxx.bmmc'员工信息表:1)创建:usekqglgocreatedefaultjbgz_defas30002)绑定:usekqglgoexecsp_bindefault'jbgz_def','ygxx.jbgz'考勤信息表:1)创建:usekqglgocreatedefaultdyts_defas502)绑定:usekqglgoexecsp_bindefault'dyts_def','kqxx.dyts'工资信息表:1)创建:usekqglgocreatedefaultjbf_defas5002)绑定:usekqglgoexecsp_bindefault'jbf_def','gzxx.jbf'(5)添加数据并验证约束。表1usekqglgoinsertintobmxx(bmbh,bmmc,bmzg,bmrs)values('1303110','人事部','张三','5')insertintobmxx(bmbh,bmmc,bmzg,bmrs)values('1303111','水利部','张三丰','7')insertintobmxx(bmbh,bmmc,bmzg,bmrs)values('1303112','信息部','王员琪','10')insertintobmxx(bmbh,bmmc,bmzg,bmrs)values('1303113','网络部','胡雪婷','5')insertintobmxx(bmbh,bmmc,bmzg,bmrs)values('1303114','研发','王杰','5')2、创建查询(2)创建查询1)查询出所有员工的姓名、年龄和身份证号码。USEkqglgoselectygxmas'员工姓名',datediff(year,csrq,getdate())as'年龄',sfzhmas'身份证号码'fromygxx2)查询出所有男性员工的信息。USEkqglgoselect*fromygxxwherexb='男'3)查询出基本工资在2000-3500元之间的员工的姓名和部门名称。usekqglgoselectygxm,bmmcfromygxxinnerjoinbmxxonygxx.bmbh=bmxx.bmbhwherejbgzbetween'2000'and'3500'4)查询年龄在30岁以上的员工的姓名和工资信息。usekqglgoselect*fromygxxinnerjoingzxxonygxx.ygbh=gzxx.ygbhwheredatediff(year,csrq,getdate())>305)查询某一部门的所有员工考勤信息。usekqglgoselect*fromkqxxinnerjoinbmxxonkqxx.bmbh=bmxx.bmbhwherebmmc ='人事部'6)查询某一部门本月所有记录的员工编号和姓名。usekqglgoselectygxm,ygxx.ygbhfromygxxinnerjoinkqxxonkqxx.ygbh=ygxx.ygbhwherecdts>07)查询上月延时加班天数最多的员工的姓名和部门名称usekqglgoselecttop(1)ygxx.ygxm,bmmcfromygxxinnerjoinbmxxonygxx.bmbh=bmxx.bmbhinnerjoinkqxxonygxx.ygbh=kqxx.ygbhorderbyysjbtsdesc8)查询出上月加班天数最多的部门名称和部门主管。9)查询某一部门的最高基本工资、最低基本工资及平均基本工资usekqglgoselectmax(jbgz)as'最高基本工资',min(jbgz)as'最低基本工资',avg(jbgz)as'平均基本工资'fromgzxxinnerjoinbmxxongzxx.bmbh=bmxx.bmbhwherebmmc='网络部'10)查询部门人数超过所有部门平均人数的部门编号和部门名称。11)查询某一部门的所有女性员工的姓名、身份证号码及工资累计。usekqglgoselectygxm,sfzhm,jbgzfromygxxinnerjoinbmxxonygxx.bmbh=bmxx.bmbhwherebmmc='网络部'andxb='女'12)查询本年度发工资累计最少的10位员工的编号、部门名称和实发工资累计。13)查询上月奖金最高的员工所在部门的其他员工的编号和奖金。3、视图与索引(1)附加数据库附加数据库“考勤管理”;(2)创建视图1)、创建以部门排序的员工通讯清单视图,要求显示“部门名称”、“员工姓名”、“地址”和“联系电话”信息,以“v_员工通讯清单”为视图名保存。usekqglgocreateviewv_员工通讯清单asselecttop(10)bmmc,ygxm,zz,lxdhfrombmxxinnerjoinygxxonbmxx.bmbh=ygxx.bmbhorderbybmxx.bmbhasc2)、创建女性职工统计视图,要求显示“部门名称”和“员工姓名”信息,以“v_女性职工统计”为视图名保存。usekqglgocreateviewv_女性职工统计asselectbmmc,ygxmfrombmxxinnerjoinygxxonygxx.bmbh=bmxx.bmbhwherexb='女'3)、创建职工年龄统计视图,要求显示“部门名称”、“员工姓名”和“年龄”信息,以“v_职工年龄统计”为视图名保存。usekqglgocreateviewv_职工年龄统计asselectbmmc,ygxm,datediff(year,csrq,getdate())as'年龄'frombmxxinnerjoinygxxonygxx.bmbh=bmxx.bmbh4)、修改“v_职工年龄统计”视图,要求显示“部门名称”、“员工姓名”和“职工生日”信息,以“v_职工生日”为视图名保存。usekqglgocreateviewv_职工生日asselectbmmcas'部门名称',ygxmas'员工姓名',csrqas'职工生日'frombmxxinnerjoinygxxonygxx.bmbh=bmxx.bmbh5)、创建以部门为单位的员工工资汇总视图,要求显示“部门名称”和“工资总额”信息,以“v_员工工资总汇”为视图名保存。usekqglgocreateviewv_员工工资总汇asselectbmmcas'部门名称',sum(bmrs*sfgz)as'员工工资总汇'frombmxxinnerjoingzxxongzxx.bmbh=bmxx.bmbhgroupbybmmc6)、创建职工出勤统计视图,要求包括“员工编号”、“员工姓名”、“部门名称”、“年度”、“月份”、“病假天数”、“事假天数”、“旷工天数”、“调休天数”、“迟到天数”、“早退天数”、“出差天数”、“延时加班天数”和“休息日加班天数”信息,以“v_职工出勤统计”为视图名保存。usekqglgocreateviewv_职工出勤统计asselectygxx.ygbh,ygxm,bmmc,nd,yf,bjts,sjts,kgts,txts,cdts,ztts,ccts,ysjbts,xxrjbtsfrombmxxinnerjoinkqxxonbmxx.bmbh=kqxx.bmbhinnerjoinygxxonbmxx.bmbh=ygxx.bmbh7)、利用“v_职工年龄统计”视图和“v_职工生日”视图创建职工年龄与生日统计视图,要求显示“员工姓名”、“部门名称”、“年龄”和“职工生日”信息,以“v_年龄与生日”为视图名保存。usekqglgocreateviewv_年龄与生日asselectbmmc,ygxm,年龄,职工生日fromv_职工年龄统计innerjoinv_职工生日onv_职工年龄统计.ygxm=v_职工生日.员工姓名8)、利用“v_年龄与生日”视图和“员工信息表”创建视图,要求显示“部门名称”、“员工姓名”、“职工生日”、“住址”和“联系电话”信息,以“v_员工通讯(生日)”为视图名保存。usekqglgocreateviewv_员工通讯(生日)asselectbmmc,ygxx.ygxm,zz,lxdh,职工生日fromv_年龄与生日innerjoinygxxonv_年龄与生日.ygxm=ygxx.ygxm(3)创建索引1)、在“员工信息”表中创建基于“联系电话”的非聚集索引“ix_联系电话”。usekqglgocreatenonclusteredindexix_联系电话onygxx(lxdh)2)、查看“员工信息”表中的索引并重新组织索引。usekqglgoexecutesp_helpindexygxx4、存储和游标(1)附加数据库附加数据库“考勤管理”;(2)使用存储过程1)、创建名为“pr_workinf”的存储过程,用于检索所有员工当年中各个月份的全勤天数,要求显示“员工编号”、“姓名”、“月份”和“全勤天数”;usekqglgocreateprocedurepr_workinfasselectygxx.ygbh,ygxm,yf,qqtsfromygxxinnerjoinkqxxonygxx.ygbh=kqxx.ygbh2)、修改“pr_workinf”存储过程代码,用于检索所有员工当年中各个月份的全勤天数和实发工资,要求显示“员工编号”、“姓名”、“月份”、“全勤天数”和“实发工资”;usekqglgoalterprocedurepr_workinfasselectygxx.ygbh,ygxm,kqxx.yf,qqts,sfgzfromygxxinnerjoinkqxxonygxx.ygbh=kqxx.ygbhinnerjoingzxxonygxx.ygbh=gzxx.ygbh3)、使用“sp_help”、“sp_helptext”和“sp_depends”查看存储过程“pr_workinf”;1.usekqglgoexecutesp_helppr_workinf2.usekqglgoexecutesp_helptextpr_workinf3.usekqglgoexecutesp_dependspr_workinf4)、修改“pr_workinf”存储过程代码,能够检索任一员工当年中任意月份平均出勤日工资;1.usekqglgoselectygxm,(gzxx.sfgz/kqxx.qqts)as'平均出勤日工资'fromygxxinnerjoinkqxxonygxx.ygbh=kqxx.ygbhinnerjoingzxxonygxx.ygbh=gzxx.ygbh2.usekqglgocreateprocedurepr_ygavgasselectygxm,(gzxx.sfgz/kqxx.qqts)as'平均出勤日工资'fromygxxinnerjoinkqxxonygxx.ygbh=kqxx.ygbhinnerjoingzxxonygxx.ygbh=gzxx.ygbh3.usekqglgoexecutepr_ygavg按照书上要求:usekqglgocreateprocedurepr_ygavg1@ygbhchar(10),@qqtstinyint,@ygavgintoutputasselect@ygavg=gzxx.sfgz/kqxx.qqtsfromygxxinnerjoingzxxonygxx.ygbh=gzxx.ygbhinnerjoinkqxxonygxx.ygbh=kqxx.ygbh执行代码:usekqglgodeclare@ygavgtinyintexecutepr_ygavg1'111','30',@ygavgoutputselect'员工编号为:'+'111'+'5月份平均出勤日工资是:'+str(@ygavg)5)、查看“pr_workinf”存储过程的属性;usekqglgoexecutesp_helppr_ygavgexecutesp_helptextpr_ygavgexecutesp_dependspr_ygavg6)、定义一个变量存储“pr_workinf”存储过程的输出参数,带参数执行存储过程,显示查询结果;1.usekqglgocreateprocedurepr_workinf1@ygbhchar(10),@qqtstinyint,@workinfintoutputasselect@workinf=gzxx.sfgz/kqxx.qqtsfromygxxinnerjoingzxxonygxx.ygbh=gzxx.ygbhinnerjoinkqxxonygxx.ygbh=kqxx.ygbh2.usekqglgodeclare@workinftinyintexecutepr_workinf1'111','30',@workinfoutputselect'员工编号为:'+'111'+'5月份平均出勤日工资是:'+str(@workinf)3.使用游标1)定义一个游标“cur_depart”,用于逐行输出部门名称和部门主管。2)打开游标3)提取第一行数据4)如果提取数据无措的情况下,循环显示部门名称和部门主管。5)关闭游标6)释放游标usekqglgodeclare@bmmcchar(10),@bmzgchar(10)declarecur_departcursorforselectbmmc,bmzgfrombmxxopencur_departfetchnextfromcur_departinto@bmmc,@bmzgwhile@@fetch_status=0beginselect@bmmcas'部门名称',@bmzgas'部门主管'selectbmmc,bmzgfrombmxxfetchnextfromcur_departinto@bmmc,@bmzgendclosecur_departdeallocatecur_depart四、课程设计(实习)总结课程设计心得体会及总结
一个星期的时间非常快就过去了,这一个星期不敢说自己有多大的进步,获得了多少知识,但起码是了解了项目开
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026瑞士医药制造行业市场供需态势研究与发展战略分析报告
- 2026中国药食同源产品传统文化价值挖掘与现代消费趋势报告
- 2026中国智能胰岛素泵用户使用习惯与品牌忠诚度调研
- 2026叶黄素酯在保健食品配方中的协同效应与创新应用
- 2026中国通信网络服务行业市场深度调研及发展趋势与投资前景研究报告
- 2026汽车行业投资发展分析及融资策略研究报告
- 失眠考试题目及答案解析
- 2026中国叶黄素酯产品生命周期管理与迭代创新策略
- 2026农业无人机设备行业市场供需分析及投资评估规划分析研究报告
- 2026年彭水苗族土家族自治县事业单位人员招聘考试模拟试题及答案解析
- 2026年全国公共营养师之二级营养师考试专项特训题(附答案)
- 工程咨询机构档案归档管理规范
- 2026福建泉州交发集团(第一批)校园招聘89人笔试备考题库及答案详解
- 2026年广东省中考语文试卷(含详细答案解析)
- 23J916-1 住宅排气道(一)
- DL∕T 2447-2021 水电站防水淹厂房安全检查技术规程
- 电力线路安装合同范本
- 公有云技术及应用高职全套教学课件
- 预防艾滋病、梅毒和乙肝母婴传播工作规范(2020年版)
- 电子元器件封装识别与手工焊接技术-2
- 瑶浴功效与作用讲义课件
评论
0/150
提交评论