SQL综合实验报告范本
SQL 综合实验报告

华北科技学院计算机系综合性实验实验报告课程名称 SQL SERVER数据库设计实验学期 2010 至 2011 学年第 1 学期学生所在系部计算机系年级 08级专业班级计算机应用技术学生姓名王二斌学号 200807013111 任课教师孙改平实验成绩计算机系制《 SQL SERVER数据库设计》课程综合性实验报告开课实验室:软件一室2010 年12 月7 日.数据表设计设计思想(根据系统需求作数据表设计的简单说明,如包含几个表,每个表的简单功能表是数据库中最重要、最基本、最核心的对象,是实际存储数据的地方。
并简单阐述表的特点:代表实体由行和列组成行和列的顺序是任意的在同一个数据库中,表名是唯一的。
另外,需要简单讲解:行也称为记录,列也称为字段或域。
对于每一个表,用户最多可以定义1024个列,且在同一个表中,列名必须是唯一的。
系统表是不能被删除的。
具体实现(可以是数据表设计抓表结构图).视图设计设计思想(根据系统需求作视图设计,本系统需要做那几个视图,如普通用户想查看那个学生借阅了那本书,什么时间借的,什么时间还的等)视图是从一个或多个表或视图中导出的表,其结构和数据是建立在对表的查询基础上的。
是查看数据库表中数据的一种方法。
强调试图只是一种逻辑对象,是一种虚拟表。
一般地,视图的内容包括:基表的列的子集或行的子集——视图可以是基表的其中一部分;两个或多个基表的联合——视图可以是对多个基表进行联合运算检索的SELECT两个或多个基表的连接——视图可以是通过对若干个基表的连接生成的;基表的统计汇总——视图不仅仅是基表的投影,还可以是对基表的各种复杂运算的结另外一个视图的子集——视图可以基于另外一个视图;.索引的建立设计思想(根据系统需求作索引设计的简单说明,如本系统需要做那几个聚集索引、聚集索引、唯一索引、全文索引等)索引就是加快检索表中数据的方法。
.数据完整性设计设计思想(根据系统需求作数据完整性设计的简单说明,如本系统需要的实体完整性、域完整性、参照完整性等)数据完整性数据完整性是指存储在数据库中的数据的一致性和正确性。
SQL数据库实验报告3

SQL数据库实验报告3一、实验内容(1)掌握在SQL Server管理平台中对表进行插入、修改和删除数据操作的方法。
(2)掌握使用Transact-SQL语句对表进行插入、修改和删除数据操作的方法。
二、实验器材(设备、元器件)Window7操作系统,SQL Server软件三、实验步骤(1)启动SQL Server管理平台,在对象资源管理器中展开studentsdb数据库文件夹。
(2)在studentsdb数据库中包含有数据表student_info、curriculum、grade,这些表的数据结构如图所示在studentsdb数据库中包含有数据表student_info、curriculum、grade,这些表的数据结构如图所示(3)在SQL Server管理平台中创建student_info、curriculum 表。
学生基本情况表student_info课程信息表curriculum①启动SQL Server管理平台,在对象资源管理器中展开studentsdb数据库文件夹。
②在SQL Server管理平台中创建student_info表。
③在SQL Server管理平台中创建curriculum表。
(4)使用Transact-SQL语句CREATE TABLE在studentsdb数据库中创建表学生成绩表grade①新建查询,输入Transact-SQL语句,点击执行②出现如下界面,学生成绩表grade建立成功(5)在SQL Server管理平台中,将student_info表的学号列设置为主键,非空。
(6)student_info、curriculum、grade表中的数据如图所示。
student_info的数据curriculum的数据grade的数据(7)在SQL Server管理平台中为student_info表添加数据(7)使用Transact-SQL语句INSERT INTO...V ALUES 表添加数据。
SQL数据库系统实验报告(含代码、截图)

设有一学籍管理系统,其数据库名为“EDUC”。
初始大小为 10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。
数据库的逻辑文件名为“student_data”, 物理文件名为“student_data.mdf,存放路径为“E:\sql_data”(注意:此文件名必须已经建立的前提下才可以此操作)。
日志文件的逻辑文件名为“student_log”, 物理文件名为“student_log.ldf”,存放路径为“E:\sql_data”。
四.实验步骤1.使用SQL Server Management Studio(简称SSMS)创建数据库。
(1)启动SSMS在开始菜单中:所有程序-SQL Server 2005 -SQL Server Management Studio单击“连接”按钮,便可以进入【SQL Server Management Studio】窗口。
如果身份验证选择的是“混合模式”,则要输入sa的密码。
(2)建立数据库在“对象资源管理器”窗口,建立上述数据库EDUC。
在数据库节点上右击选择新建。
同时建立一个同样属性的数据库EDUC1。
2. 使用向导删除上面建立的数据库。
用SSMS删除建立的数据库EDUC。
3、数据库的分离将刚建好的数据库分离出来,即点击新建的EDUC——任务——分离,将删除连接和更新打一个钩,然后点击确定。
如图所示:4、数据分离出来之后可以附加进去。
即右击数据库——附加——点击添加按钮,找到数据库文件.mdf所存放的路径,然后点击确定,即可以将我们刚所创建的文件添加回去。
五.实验总结通过本次实验,我熟悉了SQL Server 中SQL Server Management Studio的环境,了解了SQL Server 数据库的逻辑结构和物理结构,掌握使用向导创建和删除数据库的方法。
加深了对数据库的认识和理解。
SQL实验报告(优秀范文5篇)

SQL实验报告(优秀范文5篇)第一篇:SQL实验报告实验四触发器实验(一)after触发器(1 1)在l l i neitem 表上定义一个 after 触发器, , 当修改列项目e e xtendedprice d i scountx tax 时, , 要把 s orders 表得to o tal pri ce e 一起修改, , 以保证数据一致性C RE ATE T RIGGERtrig _line ite m_ pr ice_ update on line it em fo rupda teaasbegin i f(UPDATE(ex tend edprice)o r UPDATE(tax)or UPD AT E(di scou nt))begin-—声明游标变量指向 inserted 表d eclarecursor_inserted c urs orrea d_onlyofor select order key,linenu mber,exte nd edpr ice, dis coun t, taxfromin ser ted—-息信找查取获量变明声ﻩ声明变量获取查找信息de clare order key in t, @linenumb erint,exte nd edpricereal,disscount real,tax real—-打开游标epoﻩen cursor_i ns ert ed—-标游取读ﻩ读取游标fe tchnextfrom cur sor _i ns erte dint o@o rderkey, @lin enumber,eext ende dprice, @di scount,t axwwhi le FETC H_S TATUS =0 nigebﻩnﻩ—-声明一个变量保存重新计算得新价格cedﻩﻩecl are @n ew_tota lpri cer ealﻩ select @n ew_t otal price= @ext en dedpr ice *(1 -@di scou nt)*(1 +@tax)—-用新得总价格变量更新 orders 表得 t ot alprice puﻩﻩupdate orde rsse t tot alpri ce= new_totalprice where or derkey=orde rkeyen hctefﻩext f ro m cur sor_i nser ted int o@order ke y, @li nenum ber, @ex tende dp rice,discoun t, @taxdneﻩllaedﻩlocate c ur sor_i nser te deend end ﻩ(2)在在 linei tem表上定义一个 aftr er 触发器, , 当增加一项订单明细时, ,自动修改 s orders 表得 total p rice, 以保证数据一致性CREATE TR IGGER tri g_ lineit em_price_ in sert on l ine item ffor inse rta sbegin ——向指量变标游明声ﻩ声明游标变量指向ins erted 表de clarec ursor_inse rtedcursorread_ onl yﻩ for s ele ct orderkey,linenumbe r,ex te ndedp ric e,di scou nt,t axfrom insserte d--声明变量获取查找信息edﻩeclare @orde rk eyint, @lin enumber int,e xten dedp ricereal, @discountreal, @ta xreal -—ﻩ-打开游标open cursor_i ns erte d--ﻩ-读取游标fe tc hnex tf romcu rsor_ins ertedinto@o rd erkey,li nen umbeerr, ex ten ded pric e,dis count,tax ihwﻩile @@FE TCH_ STATU S=0 ebﻩegin-—格价新得算计新重存保量变个一明声ﻩﻩ声明一个变量保存重新计算得新价格cedﻩclare @n ew_tot alprice realcelesﻩct new _to ta lprice= @extend edp rice *(1-d is count)*(1+tax)—-新更量变格价总得新用ﻩﻩ用新得总价格变量更新orders 表得totalpri ceﻩ u pda teor ders s ett ota lpric e=total pric e+ @new_ tota lpr ice wwhhe re o rderke y=orderkeytefﻩetch next from cursor_ ins erte dinto o rder key, @l inen umber,e xtendeddp ric e, @disc ou nt, @t axeend aedﻩdeall oca te cu rsor_in serted en d(3)在l in e ite m表上定义一个a ft er触发器, , 当删除一项订单明细记录时, ,自动修改 orders 表得 tot a lprice, 以保证数据一致性CREATE TRI GG ER trig _line item_price_de let eon line item fo r de let eAAS begin--声明游标变量指向delet ed 表de clar e curso r_d eleted cursorre ad _on lyesrofﻩﻩele ctord erk ey,line numbe r,extende dp rice,discoun t, taxfromdel eted-ﻩ--声明变量获取查找信息declare ord erkey int,linenum be rint,extendedp ri ce r eal,discou nt real,ta xreal -—ﻩ-打开游标epoﻩen c urso r_ deleted——标游取读ﻩ读取游标efﻩetch next fr om cur sor_delete d in toorder ke y,l inenumb er,ext enddedprice, @di scoun t,taxwh ile@FETCH_STATUS=0begi n-—声明一个变量保存重新计算得新价格ﻩ declare @ne w_ to talpric erealﻩsselec t@new_t otalpr ice= @exte nde dpri ce*(1-@disco unt)*(1+ tax)-ﻩ-—用新得总价格变量更新orders 表得tot alp rice uﻩﻩupd ateorders set t otalpri ce=to talpr ice-@new _totalp rice wh er e order key= @ord erkeyfetchn ext f rom cursor_inse rt ed in to orderkey, @line numbe r,extendeeddprice, @d iscou nt,t ax dneﻩndddeal lo cat e cur sor_inse rted eend((4 4))验证 up d at e触发器—-查瞧号订单得 to ta a l pr i ceselec t*fro o mo o r ders whereorde r key=1 8 30;—-查瞧明细表得相关信息se l ect *f ro mlin ei i te e mw here or de e r key=183 0and l ine num m be e r =1;——验证 e update 触发器updat elineitem set t ax=tax+0、05whe re orderkey=1830;(二)i i n steadof触发器((1))在在 lineit em 表上定义一个ins tead o fupda te触发器, 当修改明细表中得数量量quan ti ty 时, 应先检查供应表par tsupp 得av ai lqty 就是否足够, 不足够则拒绝执行, 否则执行并修改相应数值以保证数据一致性于由于 in steadof 触发器更新某个表会使得该表上其她不满足更新列不能更新,因因用此逆向思维使用 a fter 触发器实现相同效果即先更新 qu antity, 再比较av ailqqtty, 如果满足更新数量, 就修改partsupp 得表得 a vailqty, 如果不满足, 则把lineitem得quantity 更新之后得数据重新修改回来ccreate trigge r trig_lin eit em_quanti ty_ upda teonli neit em f or upda teas begin if UPDATE(qu ant ity)bbegin ——向指别分量变标游明声ﻩ声明游标变量分别指向 i nserted 表与 d el eted 表edﻩdeclare c urso r_inser tedcur sorr ead_on lyfortcelesﻩﻩtorde rkey, partk ey,s uppkey,lin enum ber, quantit yfr om i nserteddecl arecursor_de leted c urs orrea d_ onl yf or select quantityfr om deleted-—息信找查取获量变明声ﻩ声明变量获取查找信息decl are@qu an tity _dif f_lineitem i nt,q uanti ty_pa rtsup p i nt cedﻩclare suppkey int, @par tke y in t,o rd erkey i nt,unenilﻩﻩum ber int ,qty _inserted in t , @qty_deleted int--打开游标ruc nepoﻩrsor_in sert ed poﻩopen cur sor_d eleted-—量变给赋值数标游取读ﻩ读取游标数值赋给变量fﻩfet chnext fromcu rsor_ insert edﻩiinto or de rk ey,pa rtkey, @suppk ey, @line nu mber, @qty _ins erte df et chnext fromcursor _d eletedint o q ty _de lete dwhi le fe tch_st atus=0 gebﻩegin--计算订单明细修改时, 订购数量得变化值inserte d表项-d elet ed表项ssel ect quantity_d if f_ li neit em= @q ty _in se rte d—@@q ty_deleteedﻩ--从parts upp 表获取ava ilq ty值, 注意partsupp 表得主键为(partk ey,suppkeey)tcelesﻩﻩt@quanti ty_p ar tsupp =av ailq ty fro m pa rtsu ppwﻩﻩwh er e suppkey= suppke yand part key= @par tk ey-—断判始开ﻩﻩ开始判断gebﻩbegi nfiﻩf quant ity _d iff_ lin eite m=0ﻩﻩ p rin t“ 更新得数量与原表中得值相同, 不需要更新”e ls eif @quantit y_d iff_lin eitem 〈=q uantity_partsuppﻩbe ginﻩpuﻩﻩpd ate partsupps et avail qty= availqty-@qua ntit y_d iff_li ne item ﻩpus erehwﻩppkey=suppkeyandp artkey= @par tke yﻩﻩ p rint “ 两个表都更新成功’ ﻩﻩﻩneﻩndels eigebﻩﻩinﻩuﻩﻩupdate li nei temsetquantit y=quantity+ @quanti ty_diff_linei temwhe re o rd erke y=@orde rke y and li nenu mber= @liine numberﻩp ri nt '更新失败”ﻩﻩendﻩ e nd efﻩﻩetch ne xtfr om c urso r_i nsertedi nto @ord erke y, @partkey,s upp key, @linenumb er, @qt y_ ins ert edf etch ne xt from curso r_de leted into @qt y_d elet ed dneﻩndd eallocat e cur sor _i nserte ddealloc at e cursor_de le ted eend eend(2)在在 l ineite m表上定义一个 instea d of in sert 触发器, 当插入明细表中一条记录时时, 应先检查供应表par tsupp 得得 ava il qt y就是否足够qu anti ty 得数量c rea te t rig ger tri g_lineitem_q ua nti ty_ insertonline item iinstead of inser t as bbegin-—声明游标变量指向 inserte d表d eclar e cur sor_inserte dcur sorrea d_ only f orsﻩﻩselect or derk ey,pa rtkey,sup pk ey, lin en umber,q uantityf rom ins er ted-—声明变量获取查找信息dec lare quantity int, @av ailq ty i nt, @suppkeyin t, @partkeyinntt, @o rderkey int, @linenu mber int-—标游开打ﻩ打开游标c nepoﻩcurs or_ins erted -ﻩ-—读取游标f etc hnext fro mcursor_insert edint o@orde rkey,partkey,@@ssuppkey, @linenumber,qu antity wh ile @@FETCH_S TATUS= 0igebﻩin--为变量赋值a tcelesﻩavailqtyy==av ai lqt y fr ompartsuppwﻩwhe re suppkey =@su ppk ey and part ke y= partke yﻩ if @quant ity 〈= @avail qt y-—如果可以更新bﻩbegin /ﻩﻩﻩ/*将将 insert ed 表中得记录插入到明细表*/ ﻩsniﻩserti nto l ineite m select *from i nsertedro=yekredroerehwﻩﻩrderk ey andlinenumb er = @linenumber */ﻩﻩ新更时同ﻩ*同时更新 part supp 表得数量*/ﻩﻩuupd ate pa rtsup pset a vailqty=availqty-@quanti tyﻩerehwﻩe sup pke y= @sup pkey and partkey=part key ppr int ’paarts upp 表有足够得货物可以满足 lin eitem 得quan tityy, 插入成功’endelsebeginﻩﻩ p rintt''pa rt sup p表没有足够得货物可以满足 l ineitem 得得q uantity,插入失败’dneﻩfﻩﻩfetc h next from curso r_ins ert ed in to@ord erkey, partkey, suppkey, @liinenumbe r, qu antity eﻩen ddeall ocat ecursor_ inserted end(3)在在 line ite m表上定义一个 inste ad of del ete 触发器,当当删除明细表中记录时时, 同时改变表供应表 partsupp 得ava il qtyy数值 c re ate trigge r tri g_ lin eit em_quanti ty_ del ete o n line item inste ad of del ete as be gin—-声明游标变量指向deleted 表de cla re curs or_ del eted c ursorread _only forlesﻩﻩelect or derke y, par tkey,sup pkey, linenumbe r,quan tity fr om deleted -ﻩ--声明变量decl are s upp key i nt, par tke yint, @orde rkey int,linen umb erint, @quaant it y int—-标游开打ﻩ打开游标opencursor_deleted-—标游取读ﻩ读取游标ffetch next fr omcurs or _del et edin to @ord erkey , @partkey,s uppkeey, @lin en umber,q ua ntitywhi leFFET CH_ STATUS=0 igebﻩin*/*除删ﻩ*删除*/ﻩ de let e fromlineite m where linenu mber= line number and o rde rkey =ordder key*/新更时同ﻩ同时更新 pa rt supp 表得数量*/u pdateparts uppse tavailqt y=a vai lq ty+quant ityﻩ where s uppke y= @s uppkey a nd par tk ey= @p ar tkeyﻩ p rin t’ 删除成功, 并且已经把货物数量归还到 p ar tsup p里“ fﻩﻩfetc h ne xt fr omcurso r_del etedinto @ord er ke y,p ar tkey,@@suppkey, @lin enu mber,quanti ty neﻩnd edﻩea lloc ate cursor_ delete dend(4)验证 update 触发器--查瞧li neit em 得quan tit y select*fr omlin eit em whe re or derk ey =1830and li nenum ber=1;——查询partsupp 表得ava ilqt y se lect * from part supp w here suppk ey =(selectsupp key fr omlin eitem w here ord erkey=18 30)and partk ey=(s elec t part key from lin eite mwh er eorder key =18 30 a nd linenu mber=1)---更新数量过大——更新得值与原值相同---更新到+ + 2 00 数量, , 成功updateli neitem setquant ity=q uanti ty+ 200where order key=1830and lin en umber =1;--更新 +2 00成功后l ineite m得 quanti ty y 变化——更新+200 成功后par ts upp 表得a va ilqty 变化实验到此。
SQL实训报告

SQL实训报告第一篇:SQL实训报告SQL Server 实训报告班级:姓名:学号:实训名称:SQL Server数据库应用技术实训题目:教学信息管理实训目的:通过本次实训,使学生了解开发数据库应用程序的过程;通过数据库设计,加深对数据库基础理论的理解并能灵活运用;掌握利用SQL Server 2000数据库管理系统创建、管理、维护数据库的基本方法及过程;培养开发数据库的设计思维。
实训内容:本人与郭晓峰主要负责‘教学信息管理’系统。
主要包括数据的导入和导出、数据库结构的分析与建立、表关系的添加、查询、外关键字的约束、检查约束、默认值、试图、表存储过程和触发器的学习,以及在表的操作过程中,有查看表信息、查看表属性、修改表中的数据、删除表中的数据及修改表和删除表的操作。
本人主要负责数据的导入,数据库的建立,查询数据库的建立:包括数据附加分离数据导入:导入EXCEL表中各个数据(学生信息表班机信息表学生成绩表授课表教师表课程信息表)查询:查询学生记录数查询成绩平均分上课人数学校人员低于平均分者学生信息低于平均分者自定义函数一总体设计思路当看到这个题目我想到一个完整的教学信息管理应包括:学生信息表、班级信息表、课程信息表、学生成绩表、教师表、授课表等。
在整个系统中有两个实体:学生和老师。
二表结构我的系统有六张表组成:学生信息表列名数据类型宽度允许空值说明学号char4否主键姓名char10是性别char2是默认值:男班级号char8是专业char20是系别char20是联系电话char20是入学日期datetime8是备注char50是班级信息表列名数据类型宽度允许空值说明班级号Char8否主键、外键年级Char8是班主任Char8是教师号char8是课程信息表列名数据类型宽度允许空值说明课程号Char8否主键课程名称Char10是课程类型Char8是学分Char8是课程说明Char10是学生成绩表列名数据类型宽度允许空值说明学号Char8否主键班级号Char8是学期Char8是课程号Char8是课程名称Char8是成绩decimal8是教师表列名数据类型宽度允许空值说明教工号Char8否主键教师姓名Char8是性别Char8是职称Char8是授课表列名数据类型宽度允许空值说明教工号Char8否主键课程号char8是Excel表格主要如下:班级信息学生信息学生成绩教师表授课表课程信息:二数据库的建立:1在开始菜单中选择“程序——MicrosoftSqlServer——企业管理器”选型,就启动了企业管理器,打开工具窗口如图所示2在企业管理器树状目录窗口中展开一个服务器组,选定服务器。
SQL数据库实验报告实验二

SQL数据库实验报告实验二第一篇:SQL数据库实验报告实验二实验2SQL Server数据库的管理1.实验目的(1)了解SQL Server 数据库的逻辑结构和物理结构的特点。
(2)掌握使用SQL Server管理平台对数据库进行管理的方法。
(3)掌握使用Transact-SQL语句对数据库进行管理的方法。
2.实验内容及步骤(1)在SQL Server管理平台中创建数据库。
① 运行SQL Server管理平台,在管理平台的对象资源管理器中展开服务器。
② 右击“数据库”项,在快捷菜单中选择“新建数据库”菜单项。
在新建数据库对话框的数据库名称文本框中输入学生管理数据库名studentsdb,单击“确定”按钮。
(2)选择studentsdb数据库,在其快捷菜单中选择“属性”菜单项,查看“常规”、“文件”、“文件组”、“选项”、“权限”和“扩展属性”等页面。
(3)打开studentsdb数据库的“属性”对话框,在“文件”选项卡中的数据库文件列表中修改studentsdb数据文件的“分配的空间”大小为2MB。
指定“最大文件大小”为5MB。
修改studentsdb数据库的日志文件的大小在每次填满时自动递增5%。
(4)单击“新建查询”打开查询设计器窗口,在查询设计器窗口中使用Transact-SQL语句CREATE DATABASE创建studb数据库。
然后通过系统存储过程sp_helpdb查看系统中的数据库信息。
(5)在查询设计器中使用Transact-SQL语句ALTER DATABASE 修改studb数据库的设置,指定数据文件大小为5MB,最大文件大小为20MB,自动递增大小为1MB。
(6)在查询设计器中为studb数据库增加一个日志文件,命名为studb_Log2,大小为5MB,最大文件大小为10MB。
(7)使用SQL Server管理平台将studb数据库的名称更改为student_db。
(8)使用Transact-SQL语句DROP DATABASE删除student_db数据库。
实验三SQL(二)SQL语言进行简单查询实验报告范文

实验三SQL(二)SQL语言进行简单查询实验报告范文实验目的:1.掌握SQL查询语句的一般格式2.掌握简单数据查询操作。
3.熟练掌握各种查询条件的表示。
4.掌握排序和分组操作在SQL语句中的实现。
5.掌握集函数的使用。
实验内容;1.创建学生表tudent、课程表coure和选课表SC,并输入数据(注意数据的完整性。
);(可以使用实验一中已经建立的表和数据)2.对各表中的数据进行不同条件的查询;1)查询全体学生的学号和姓名2)3)4)5)6)7)8)9)查询全体学生的详细记录查询所有选修过课程的学生学号查询考试有不及格的学生学号查询不是信息系(IS)、计算机系(CS)的学生性别、年龄、系别查询选修了4号课的学生学号和成绩,结果按成绩降序排列查询每个课程号和相应的选课人数查询计算机系(CS)的学生姓名、年龄、系别查询年龄18-20岁的学生学号、姓名、系别、年龄;10)查询姓刘的学生情况11)查询既选修1号课程,又选修2号课程的学生学号12)查询学生的姓名和出生年份(今年2003年)13)查询没有成绩的学生学号和课程号14)查询总成绩大于200分的学生学号15)查询每门课程不及格学生人数16)查询不及格课程超过3门的学生学号17)查询年龄在10到19岁之间的学生信息18)查询全体学生情况,按所在系升序排列,同一个系的学生按年龄降序排列19)查询选了1号课程的学生平均成绩20)查询选了3号课程的学生的最高分21)查询每个同学的总成绩实验步骤与过程:1.创建学生表tudent、课程表coure和选课表SC,使用实验一中已经建立的表和数据。
2.并输入数据,设置主键。
3.建立索引及三表之间关系。
4.按照SQL语句格式及题目要求输入语句进行以下查询:1、查询全体学生的学号和姓名;2、查询全体学生的详细记录;3、查询所有选修过课程的学生学号;4、查询考试有不及格的学生学号;5、查询不是信息系(IS)、计算机系(CS)的学生性别、年龄、系别;6、查询选修了4号课的学生学号和成绩,结果按成绩降序排列;7、查询每个课程号和相应的选课人数;8、查询计算机系(CS)的学生姓名、年龄、系别;9、查询年龄18-20岁的学生学号、姓名、系别、年龄;10、查询姓刘的学生情况;11、查询既选修1号课程,又选修2号课程的学生学号;12、查询学生的姓名和出生年份(今年2003年);13、查询没有成绩的学生学号和课程号;14、查询总成绩大于200分的学生学号;15、查询每门课程不及格学生人数;16、查询不及格课程超过3门的学生学号;17、查询年龄在10到19岁之间的学生信息;18、查询全体学生情况,按所在系升序排列,同一个系的学生按年龄降序排列;19、查询选了1号课程的学生平均成绩;20、查询选了3号课程的学生的最高分;21、查询每个同学的总成绩实验结果:利用实验一中所建立的表设置主键,建立索引及三表之间关系。
SQL数据库实验报告

一、实验名称:带条件查询二、日期三、实验目的和内容(这是实验报告极其重要的内容。
)1.SQL Server工具的环境和使用;2.利用SELECT语句实现简单的查询需求;3.掌握使用逻辑操作符来抽取基于多个满足条件的记录4.掌握使用范围操作符、列表操作符、模式匹配操作符、为空操作符来抽取满足条件的记录的方法5.掌握使用ORDER BY 从句来以特定的顺序抽取数据的方法6.掌握使用TOP 关键字仅抽取行的前面集合7.掌握使用DISTINCT 关键字消除重复行四、实验过程及结果(给出实验主要的步骤和实验结果,包括算法或代码)1.SELECT EmployeeID,Rate,rank()OVER(ORDER BY Rate desc)AS RANK FROM HumanResources.EmployeePayHistory2.SELECT EmployeeID,Rate,dense_rank()OVER(ORDER BY Rate desc)AS rankFROM HumanResources.EmployeePayHistory3. SELECT Title,convert(char(10),HireDate,2)As'Hire Date'FROM HumanResources.Employee4. SELECT EmployeeID,upper(Title)AsDesignation,datediff(yy,Birthdate,getdate())As AgeFROM HumanResources.Employee WHERE Title='Marketing Manager'OR Title='Marketing Specialist'5.SELECT EmployeeID,EndDate FROM HumanResources.EmployeeDepartmentHistory WHERE EndDate IS NULL6.SELECT EmployeeID,Title,LoginID FROM HumanResources.Employee WHERE Title IN('Recruiter','Stocker')7.SELECT DISTINCT Title FROM AdventureWorks.HumanResources.Employee WHERE Title LIKE'PR%'五、实验体会(包括有疑问的)这次实验,我了解了.SQL Server工具的环境和使用,学习了使用逻辑操作符来抽取基于多个满足条件的记录.,以及使用范围操作符、列表操作符、模式匹配操作符、为空操作符来抽取满足条件的记录的方法使用ORDER BY 从句来以特定的顺序抽取数据的方法等等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华北科技学院计算机系综合性实验
实验报告
课程名称SQL SERVER数据库设计
实验学期2010至2011学年第1学期学生所在系部计算机系
年级08级专业班级计算机应用技术
学生姓名王二斌学号200807013111
任课教师孙改平
实验成绩
计算机系制
《SQL SERVER数据库设计》课程综合性实验报告
开课实验室:软件一室2010年12月7日
实验题目图书借阅系统数据库设计
一、实验目的
通过该实验把数据库的理论知识(数据库和数据表的设计理论、数据完整性的实现、存储过程、触发器、数据库安全等)应用到具体的综合实例中,达到数据库知识整合的目的。
二、设备与环境
硬件:多媒体计算机
软件:WindowsXP以上的操作系统、Visual Basic或其它可视化语言及SQL Server2008版本
三、实验内容及要求
1.数据库设计
要求数据库设计要合理,对数据库设计作必要的说明并抓图。
数据库名必须与自己真实姓名有关,所有同学不能同名。
图不要太大,看清即可。
2.数据表设计
要求数据表设计要合理,要符合数据库设计的理论范式,对数据表设计作必要的说明并抓图。
数据表名必须与自己真实姓名有关,所有同学不能同名。
3.视图设计
要求根据系统需求作必要的视图设计,如在一次查询中涉及到多个表,应该创建视图。
不可以只取一个表的几个字段就算创建视图。
4.索引设计
要求根据系统需求作必要的索引设计,本系统需要的聚集索引、非聚集索引、唯一索引、全文索引等。
5.数据完整性设计
根据系统需求作必要的数据完整性设计,本系统需要的实体完整性体现、域完整性体现、参照完整性体现等。
6.存储过程和触发器设计
根据系统需求作必要的存储过程和触发器设计,本系统需要的存储过程和触发器设计。
必要的存储过程和触发器设计都要写全说明,图可以是一个表的完整存储过程或触发器。
7.备份与恢复设计
根据系统需求作必要的备份与恢复设计,如需要对那些内容备份,备份策略、由谁来做备份、什么时间做备份等。
8.数据库安全设计
根据系统需求作必要的数据库安全设计,如本系统分几级用户、分别是什么角色成员具有什么操作权限等。
四、实验结果及分析
1.数据库设计
设计思想(根据系统需求作数据库设计的简单说明)
数据库是数据的集合。
数据库技术是研究数据库的结构、存储、设计、管理和应用的一门软件学科。
而数据库管理系统(Database Management System,DBMS)是位于用户与操作系统之间的一层数据管理软件。
数据库是存储数据和数据库对象的操作系统文件,是数据库系统的主要组件,是数据库管理系统的核心。
数据库对象包括表、函数、视图、存储过程、规则等等。
数据库的存储结构分为逻辑存储结构和物理存储结构两种。
数据库的逻辑存储结构指的是数据库是由哪些性质的信息所组成。
实际上,SQL Server的数据库是由诸如表、视图、索
.数据表设计
设计思想(根据系统需求作数据表设计的简单说明,如包含几个表,每个表的简单功能
表是数据库中最重要、最基本、最核心的对象,是实际存储数据的地方。
并简单阐述表的特点:
代表实体
由行和列组成
行和列的顺序是任意的
在同一个数据库中,表名是唯一的。
另外,需要简单讲解:
行也称为记录,列也称为字段或域。
对于每一个表,用户最多可以定义1024个列,且在同一个表中,列名必须是唯一的。
系统表是不能被删除的。
具体实现(可以是数据表设计抓表结构图)
.视图设计
设计思想(根据系统需求作视图设计,本系统需要做那几个视图,如普通用户想查看那个学生借阅了那本书,什么时间借的,什么时间还的等)
视图是从一个或多个表或视图中导出的表,其结构和数据是建立在对表的查询基础上的。
是查看数据库表中数据的一种方法。
强调试图只是一种逻辑对象,是一种虚拟表。
一般地,视图的内容包括:
基表的列的子集或行的子集——视图可以是基表的其中一部分;
两个或多个基表的联合——视图可以是对多个基表进行联合运算检索的SELECT
两个或多个基表的连接——视图可以是通过对若干个基表的连接生成的;
基表的统计汇总——视图不仅仅是基表的投影,还可以是对基表的各种复杂运算的结另外一个视图的子集——视图可以基于另外一个视图;
.索引的建立
设计思想(根据系统需求作索引设计的简单说明,如本系统需要做那几个聚集索引、非聚集索引、唯一索引、全文索引等)
索引就是加快检索表中数据的方法。
.数据完整性设计
设计思想(根据系统需求作数据完整性设计的简单说明,如本系统需要的实体完整性、域完整性、参照完整性等)
数据完整性
数据完整性是指存储在数据库中的数据的一致性和正确性。
在这里只需要简单提一下:数据完整性的设计是数据库设计好坏的一项重要指标。
约束
简单讲解约束的定义及类型。
约束是通过限制列中的数据、行中的数据和表之间数据来保证数据完整性的非常有效的方法。
约束的类型分为:缺省约束、检查约束、主键约束、惟一性约束、外键约束。
.存储过程和触发器设计
设计思想(根据系统需求作必要的存储过程和触发器设计的简单说明)
存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行
分类
触发器设计:
验证模式:
五、体会
通过本次实验了从用户需求分析,数据库设计到上机编程等过程进一步理解和掌握了数据库的各方面的知识,通过上机操作和调试程序,提高理论联系实际和动手实践操作能力。
掌握了sQL Server数据库管理系统的基本功能和建立数据库各种对象的方法,通过此次上机知道了自己的不足并加以学习和改正,让知识更加融汇与实践相结合。
六、参考文献
可写1—5个参考书名、作者、出版社等
于慧龙解玲《基于保护轮廓数据库系统安全性》中南大学铁道校区科研所2002.7
张文艺《数据库的安全与隐患及对策》人民邮电出版社2003.1
闪四清《SQL Server2000数据库管理》北京希望电子出版社2001.4
赵晓林《Oracle数据库安全策略》北京希望电子出版社2000.8
郑阿奇《SQLServer实用教程》(第3版)电子工业出版社2008.。