sql语句的实验报告
- 格式:docx
- 大小:39.46 KB
- 文档页数:21
sql数据库实验报告目录1. 实验概述 (2)1.1 实验目的 (2)1.2 实验背景 (3)1.3 实验内容 (4)1.4 实验环境 (5)2. 数据库设计 (5)2.1 数据库概念 (6)2.2 表结构设计 (8)2.2.1 表1名称及字段定义 (9)2.2.2 表2名称及字段定义 (10)2.3 关系约束 (11)3. SQL语句操作 (12)3.1 数据插入 (13)3.2 数据查询 (14)3.2.1 根据条件查询 (15)3.2.2 聚合函数查询 (16)3.2.3 连接查询 (17)3.3 数据更新 (18)3.4 数据删除 (20)4. 实验结果展示 (21)4.1 SQL语句执行结果 (22)4.2 数据分析及解释 (22)4.2.1 查询结果的意义 (24)4.2.2 数据之间的关系性分析 (24)5. 实验总结与展望 (25)5.1 实验总结 (26)5.2 总结得到的经验与教训 (27)5.3 进一步研究建议 (29)1. 实验概述本实验旨在通过实践操作,实验内容涵盖了常见数据库操作,包括表创建、数据插入、查询、修改和删除。
通过完成实验,我们将学习如何使用SQL语句来管理和处理数据库数据,掌握常用的 SELECT、INSERT、UPDATE、DELETE 语句以及 JOIN 操作等,并熟悉数据库的操作流程和概念。
本实验旨在提升 SQL 数据库操作技能,并为后续更深入的数据库学习和应用打下基础。
您可以根据实际实验内容对以上段落进行修改和完善,具体修改点包括:明确实验的主题和目标,例如:实验主题可能是某个特定数据库管理系统(如MySQL、PostgreSQL等)的应用,目标可能是学习该数据库特定的功能特性。
1.1 实验目的本次实验旨在通过实际操作,验证和巩固SQL语言在关系型数据库管理中的应用能力,并加深对数据库设计、数据操作以及数据查询与分析的理解。
具体实验目的包括:学习SQL基础:掌握SQL语言的基本语法和常用命令,包括数据类型定义、表格创建、插入、更新和删除操作。
数据库sql 实验报告数据库SQL实验报告1. 引言数据库是现代信息系统中不可或缺的组成部分,它提供了有效地存储和管理数据的能力。
结构化查询语言(SQL)是一种用于管理和操作关系型数据库的标准化语言。
本实验报告旨在通过实际操作和实验结果的分析,探讨SQL在数据库中的应用和效果。
2. 实验目的本次实验的主要目的是熟悉和掌握SQL语言的基本操作,包括数据的查询、插入、更新和删除等。
通过实验,我们可以进一步了解SQL语言的特点和使用方法,加深对数据库管理系统的理解。
3. 实验环境本次实验使用的数据库管理系统为MySQL,它是一种开源的关系型数据库管理系统。
MySQL提供了强大的功能和灵活的配置选项,被广泛应用于各种规模的应用程序中。
4. 实验步骤4.1 数据库连接在实验开始之前,我们首先需要建立与数据库的连接。
通过使用MySQL提供的连接函数,我们可以指定数据库的主机地址、用户名和密码等信息,以便进行后续的操作。
4.2 数据库创建在连接成功后,我们可以使用SQL语句创建一个新的数据库。
通过指定数据库的名称和字符集等属性,我们可以灵活地创建适合自己需求的数据库。
4.3 数据表创建数据库中的数据以表的形式进行组织和存储。
在本次实验中,我们将创建一个名为"students"的数据表,用于存储学生的基本信息。
通过指定表的字段和属性,我们可以定义每个字段的数据类型和约束条件。
4.4 数据插入在数据表创建完成后,我们可以使用SQL语句向表中插入数据。
通过指定插入的字段和对应的值,我们可以将具体的数据添加到表中。
在插入数据时,我们还可以使用事务来确保数据的完整性和一致性。
4.5 数据查询数据查询是SQL语言的核心功能之一。
通过使用SELECT语句,我们可以从表中检索所需的数据。
SELECT语句可以使用不同的条件和运算符进行过滤和排序,以满足不同的查询需求。
4.6 数据更新和删除除了查询,SQL语言还提供了更新和删除数据的功能。
数据库SQL实验报告__数据库的基本操作一、实验目的1.理解数据库SQL语言的基本操作;2.学会使用数据库SQL语言进行数据的增删改查操作。
二、实验环境1. 操作系统:Windows 10;2.数据库管理系统:MySQL;3. 开发工具:Navicat for MySQL。
三、实验内容本次实验主要涉及数据库的基本操作,包括创建数据库、创建数据表、插入数据、更新数据、删除数据以及查询数据等。
1.创建数据库步骤一:打开Navicat for MySQL,并点击左上角的“新建连接”按钮;步骤二:填写连接信息,包括主机、端口、用户名和密码,并点击“连接”按钮;步骤三:点击“新建数据库”按钮,填写数据库的名称,并点击“确定”按钮。
2.创建数据表步骤一:在已连接的数据库上点击右键,选择“新建数据表”;步骤二:填写数据表的名称,并点击“确定”按钮;步骤三:填写数据表的字段信息,包括字段名、数据类型、长度、索引、主键等,并点击“确定”按钮。
3.插入数据4.更新数据5.删除数据6.查询数据步骤一:在数据表上点击右键,选择“查看数据”;步骤二:在弹出的查询窗口中填写查询条件,并点击“确定”按钮。
四、实验结果通过以上基本操作,成功创建了一个数据库,并在数据库中创建了一个数据表。
插入了一条数据,并成功地更新和删除了数据。
最后,使用查询操作查看了数据库中的数据。
五、实验总结通过本次实验,我深入了解了数据库SQL语言的基本操作,学会了使用数据库SQL语言进行数据的增删改查操作。
在实验过程中,我发现通过SQL语句进行数据库操作更加灵活、方便且高效。
还学会了使用Navicat for MySQL这样的数据库管理工具,提高了数据库的操作效率。
通过实验,我对数据库的基本原理和操作有了更深入的了解,为日后的数据库开发和管理打下了坚实的基础。
sql 实验报告SQL(Structured Query Language)是一种用于管理和操作关系型数据库的编程语言。
在本次实验中,我们学习了SQL的基本语法和常用操作,并通过实际案例进行了实践。
本文将介绍实验过程、实验结果以及对SQL的个人理解和感悟。
实验过程在实验过程中,我们首先学习了SQL的基本语法,包括创建表、插入数据、查询数据、更新数据和删除数据等操作。
然后,我们使用MySQL数据库管理系统进行实验。
通过编写SQL语句,我们创建了一个名为"Employees"的表,并插入了一些员工数据。
接着,我们进行了各种查询操作,如按条件查询、排序、聚合等。
最后,我们还学习了如何更新和删除数据。
实验结果通过实验,我们成功创建了一个名为"Employees"的表,并插入了一些员工数据。
我们可以通过查询语句获得特定条件下的员工信息,如按照年龄查询、按照性别查询等。
我们还学习了如何对数据进行排序,以及如何使用聚合函数计算平均值、最大值和最小值等。
此外,我们还学习了如何使用UPDATE语句更新数据和使用DELETE语句删除数据。
个人理解和感悟通过这次实验,我对SQL的基本语法和操作有了更深入的理解。
SQL作为一种强大的数据库查询语言,可以方便地对关系型数据库进行管理和操作。
通过编写SQL语句,我们可以轻松地实现各种复杂的查询和数据操作。
SQL的语法简洁明了,易于学习和使用。
它提供了丰富的功能和灵活的操作方式,能够满足不同场景下的需求。
在实验过程中,我发现SQL的语法规则十分严格,一旦出现语法错误,就无法正确执行查询或操作。
因此,我在编写SQL语句时更加注重细节,避免出现错误。
同时,我也学会了如何优化SQL语句,提高查询效率。
通过使用索引和合理设计表结构,我们可以加快查询速度,提升系统性能。
此外,我还了解到SQL在实际应用中的广泛性和重要性。
无论是企业的数据管理还是个人的数据分析,SQL都扮演着重要的角色。
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语句操作数据实验时间:2013.4.16学生姓名:班级:软件学号:一、实验目的1、熟悉SQL Server 2005的基本环境2、使用对象资源管理器管理数据库、基本表、视图、索引等对象3、锻炼学生对SQL Server 2005基本操作能力二、实验内容1、使用对象资源管理器创建SPJ数据库(1)更改主数据库文件的增长模式,改为按5MB自动增长;(2)更改事务日志文件的增长模式,改为按1MB自动增长。
2、在数据库中创建S, P, J, SPJ四个关系模式:S ( SNO, SNAME, STATUS, CITY )P(PNO, PNAME, COLOR, WEIGHT)J(JNO, JNAME, CITY)SPJ(SNO, PNO, JNO, QTY)【说明:供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成;零件表P由零件代码(SNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成;供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成。
】3、建立数据库关系图。
将建好的数据库和表转化为SQL语句,以sql脚本方式保存。
4、使用对象资源管理器向表中插入下列数据。
SP表5、使用SQL语言完成如下操作:1)求供应工程J1零件的供应商号码SNO。
2)求供应工程J1零件P1的供应商号码SNO。
3)求供应工程J1零件为红色的供应商号码SNO。
4)求没有使用天津供应商生产的红色零件的工程号JNO。
5)求至少用了供应商S1所供应的全部零件的工程号JNO。
6)找出所有供应商的姓名和所在城市。
7)找出所有零件的名称、颜色、重量。
sql实训报告SQL实训报告1. 介绍•目的:本报告旨在总结和分析SQL实训的过程和成果。
•简介:SQL实训是为了提升学习者的SQL数据库操作能力和实践经验而进行的一系列任务和练习。
2. 实训内容•数据库搭建:–使用MySQL数据库,版本为xxxx。
–数据库结构设计:包括表的设计、字段的定义、关系的建立等。
•SQL操作练习:–数据表操作:创建、删除、修改、管理等。
–数据查询:基本查询、条件查询、排序查询、多表联合查询等。
–数据更新:插入、修改和删除操作。
•实训任务:–针对具体需求,完成一系列SQL查询和操作任务。
–涉及不同类型的查询和操作,包括但不限于统计查询、子查询、数据更新等。
3. 实训过程•实训环境搭建:–安装MySQL数据库软件,并进行相关配置。
–创建数据库和数据表,并导入相应的数据。
•实训任务完成:–按照要求,使用SQL语句对数据库进行查询和操作。
–调试和优化SQL语句,确保查询和操作的准确性和效率。
•实训经验总结:–理解数据库的结构和原理,对于设计数据库和编写SQL语句有一定的指导作用。
–熟练掌握SQL的基本语法和常用函数,能够快速写出正确的SQL语句。
–通过实践,对于各类查询和操作的使用场景有了更深刻的理解和掌握。
4. 实训成果•数据库设计:–描述数据库结构和关系的ER图。
–列出数据库中的数据表及其字段定义。
•SQL查询和操作:–列出各个任务的要求和实现情况。
–给出相应的SQL语句和结果展示。
•总结和反思:–分析实训过程中遇到的问题和解决方法。
–总结实训的收获和不足。
5. 改进计划•针对已完成的实训,提出改进和扩展的思考和计划。
•进一步提高SQL操作技能的探索和实践。
以上为本次SQL实训的报告内容概要,详细的内容请参考实训报告正文部分。
1. 介绍•目的:本报告旨在总结和分析SQL实训的过程和成果。
•简介:SQL实训是为了提升学习者的SQL数据库操作能力和实践经验而进行的一系列任务和练习。
SQL实验报告总结
一周紧张的SQL实训结束了,通过这一周的实训我学会了许多东西。
使我对数据库有了更新的认识,知道了数据库的重要性,也掌握了许多对数据库的操作方法,包括数据库的创建、表的创建、数据的查询、数据的修改、数据的删除、数据的导入/导出等等虽然最后交
实验成果不是C版的,但是通过次实训同时也对C有了更深一步的了解,学会了在C中连接SQL,也算也有了些收获。
后来还是用的ASP
格式的,在做ASP格式的查询时遇到了很多问题通过与同组的同学交流讨论之后基本上都解决了。
但是最重要的是在这次的修改过程中学到了更多的知识。
实训中遇到了一些问题,通过与同学的交流以及向老师请教,基本上解决了网页修改的问题。
虽然实训中遇到了很多问题,但是同时我也学会了在书本上学不到的东西。
最后通过这次实训让我懂得了,为人做事一定要认真仔细,谨慎细心。
通过实训体会的老师传授给我们的知识我们应该耐心的去学习。
我相信通过实训会为我以后的工作和学习奠定了良好的基础。
实训课是在学习与探索中度过的,通过这一次锻炼,我学到了许多知识,也认识到了自己的一些不足之处,但无论对我以后的学习还是工作都有很好的帮助。
最后我还懂得了团队精神的重要性,在实践能力上也得到了提高真正地做到了学以致用对我来说受益匪浅。
同时更要感谢老师的教导。
一、实验名称:带条件查询二、日期三、实验目的和内容(这是实验报告极其重要的内容。
)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 从句来以特定的顺序抽取数据的方法等等。
信息工程学院数据库原理与应用(SQL Server 2008) 实习报告一、实习题目 : SQL 语句综合训练二、实验目的:本次实验是一个综合练习,通过训练,使学生全面掌握SQL SERVER 2008的基本操作语句和功能。
三.实习任务:综合练习二有某个学生运动会比赛信息的数据库,保存了如下的表:运动员(运动员编号,运动员姓名,运动员性别,所属系名)项目(项目编号,项目名称,项目比赛地点)成绩(运动员编号,项目编号,积分)请用SQL语句完成如下功能:1.建立数据库,数据库名称为y_x_c2. 建立数据表,并满足如下条件:(1)定义各个表的主码、外码约束(2)运动员的姓名和所属系别不能为空值。
(3)积分要么为空值,要么为6,4,2,0,分别代表第一,二,三名和其他名次的积分。
3.往表中插入数据:运动员(1001,李明,男,计算机系;1002,张三,男,数学系 1003,李四,男,计算机系;1004,王二,男,物理系1005,李娜,女,心理系;1006,孙丽,女,数学系)项目( x001,男子五千米,1操场;x002,男子标枪,1操场x003,男子跳远,2操场;x004,女子跳高,2操场x005,女子三千米,3操场)成绩( 1001,x001,6;1002,x001,4;1003,x001,2;1004,x001,0;1001,x003,4;1002,x003,6;1004,x003,2;1005,x004,6;1006,x004,4)4.完成如下查询(1)求出目前总积分最高的系名,及其积分。
(2)找出在1操场进行比赛的各项目名称及其冠军的姓名。
(3)找出参加了张三所参加的所有项目的其他同学的姓名。
5.建立视图文件,查询每个项目的项目名称、运动员姓名和所属系名。
6.经查张三因为使用了违禁药品,其成绩都记0分,请在数据库中做出相应修改。
7.经组委会协商,需要删除女子跳高比赛项目。
8.新建一个服务器用户user2,使user2可以访问数据库y_x_c,对运动员表有查询和修改权限,没有插入和删除权限,对项目表有查询权限,没有插入、修改、删除的权限,对成绩表有查询、插入、修改、删除权限。
竭诚为您提供优质文档/双击可除sql语句的实验报告篇一:sQL语言实验报告《数据库原理及应用》实验报告sql语句部分班级:11-37-06学号:姓名:总成绩:实验一熟悉sqlserver,数据定义实验实验一成绩:一、实验目的1、利用查询分析器创建数据库2、利用查询分析器用sql语言定义基本表、索引并进行相关操作二、实验步骤及内容在以下实验中,使用学生-课程数据库,它描述了学生的基本信息、课程的基本信息及学生选修课程的信息。
1.创建学生课程数据库6、在表s上增加“出生日期”属性列。
7、删除表s的“年龄”属性列。
8、删除s姓名列的唯一值约束。
9、修改sc表成绩属性列为精确数字型。
10、在表s上,按“sno”属性列的唯一值方式建立索引。
11、删除表sc,利用磁盘上保存的.sql文件重新创建表sc。
12、创建教材p74页习题5中spj数据库中的四个关系:s、p、j、spj。
三、实验结果:1.创建学生课程数据库createdatabasestudend;5.将以上创建表s、c、sc的sql命令以.sql文件的形式保存在磁盘上。
(snochar(9)primarykey,snamechar(20)unique,ssexchar(2 ),sagesmallint,sdeptchar(20),);3.创建课程关系表c:(cnochar(4)primarykey,cnamechar(40),cpnochar(4),ccre ditsmallint,);(snochar(9),cnochar(4),gradesmallint,);5.将以上创建表s、c、sc的sql命令以.sql文件的形式保存在磁盘上。
6、在表s上增加“出生日期”属性列。
altertablesaddsbirthdaydatetime;7、删除表s的“年龄”属性列。
altertablesdropcolumnsage;8、删除s姓名列的唯一值约束。
altertablesdropuq__s__7d78a4e7;9、修改sc表成绩属性列为精确数字型。
altertablescaltercolumngradeint;10、在表s上,按“sno”属性列的唯一值方式建立索引。
createuniqueindexstusnoons(sno);11、删除表sc,利用磁盘上保存的.sql文件重新创建表sc。
droptablesc;12、创建教材p74页习题5中spj数据库中的四个关系:s、p、j、spj。
实验二数据更新实验实验二成绩:一、实验目的1、熟悉和掌握数据表中数据的插入、修改、删除操作和命令的使用2、加深理解表的定义对数据更新的作用二、实验步骤及内容(一)利用查询分析器在表中插入数据打开在实验一中建立的“学生课程”数据库;在“scdb”数据库中的student、course、sc表中插入数据;student表的内容:snosnamessexsagesdept95001李勇男20cs95002刘晨女19is95003王敏女18macourse表的内容cnocnamecpnocredit1数据库542数学null23信息系统144操作系统null35数据处理null2sc表的内容snocnograde9500119295001265950013889500229095002380(二)修改表中的数据在插入数据后的三张表s、c、sc中进行相关的更新操作:1、将student 表中‘李勇’的名字改为‘李明’;2、将student表中‘王敏’的年龄改为20岁;3、将所有学生的年龄增加1岁;4、修改学生的学号‘95002’为‘95005’,注意表之间的关系,保持一致性;5、把选修了“2”号课程,且成绩低于70分的成绩提高5%;6、将“cs”系全体学生的成绩置零;(三)删除表中的数据1、把选修了“2”号课程,且成绩低于70分的学生的成绩删除掉;2、删除学号为“95003”的相关信息;3、删除is系选修了2号课程的选课记录;4、删除“cs”系的全体学生的选课记录;5、删除整张表的数据,注意表之间的关系,保持一致性。
篇二:数据库原理及应用实验报告之sql语言(一)sql定义语言实验目的:1.熟练掌握sql语言进行基本表结构的创建。
2.熟练应用sql语言进行表结构的修改。
3.掌握sql语言进行基本表的删除。
4.掌握sql语言进行索引的建立和删除5.选择具体的数据库管理系统进行实现(access或sqlserver)实验内容和要求:1.切换到access的sql视图或者打开sqlserver查询分析器进行定义操作2.用sql语言createtable语句创建学生表student、课程表course和选课表sc;(字段类型及长度参照实验一)3.用sql语言alter语句修改表结构;a)student表中sno设为非空和唯一;b)student表中增加一个字段sbirth,类型设置为日期时间类型,增加一个address字段,类型为文本(字符);c)删除student表中address字段;d)course表中cno 字段设为非空和唯一;4.重新定义一个简单表,然后用sql语言drop语句删除该表结构;5.用sql语言createindex语句定义表student的sname 字段的降序索引;6.用sql语言createindex语句定义表sc的grade字段的升序索引;7.用sql语言drop语句删除索引;8.输入部分数据,并试着修改其中的错误;实验过程与步骤:(1)创建学生表student的实现如下:createtablestudent(snochar(8),snamechar(8),ssexchar(2),sagesmallint,sdeptchar(20));(2)创建课程表course的实现如下:createtablecourse(cnochar(3),cnamechar(20),cponchar(3),creditnumeric(2,1));(4)创建选课表sc实现如下:createtablesc(snochar(8),cnochar(3),gradenumeric(4,1));(5)表建完后,就是对表结构的操作,可用drop删除表的某一列,createindex创建索引,用addconstraint添加属性等,具体操作详见压缩包对实验内容的实现的命令。
实验分析总结:建表很容易,主要是对表中索引的创建和对表中某一属性的设置使用不是很熟练,不过这一节都是基础的操作,较为简单,不像对表中信息的操作,颇为复杂,但还是得勤加练习,以达熟能生巧的地步。
篇三:sql语言的应用实验报告南京邮电大学篇四:sql实验报告南京信息工程大学实验(实习)报告实验(实习)名称数据库和表的创建与管理实验(实习)日期20XX.10.21得分指导教师方忠进系计算机专业网络工程年级20XX班次1姓名陈雯雯学号20XX2346003内容一使用向导创建和删除数据库一.实验目的1.熟悉sqlserver20XX中sqlservermanagementstudio 的环境2.了解sqlserver20XX数据库的逻辑结构和物理结构3.掌握使用向导创建和删除数据库的方法二.实验内容50mb,数据库自动增长,增长方式是设有一学籍管理系统,其数据库名为“educ”,初始大小为10mb,最大为按5%比例增长;日志文件初始为2mb,最大可增长到5mb,按1mb增长。
数据库的逻辑文件名为“student_data”,物理文件名为“student_data.mdf,存放路径为“e:\sql_data”。
日志文件的逻辑文件名为“student_log”,物理文件名为“student_log.ldf”,存放路径为“e:\sql_data”。
(1)使用向导创建上诉描述的数据库。
使用sqlservermanagementstudio(简称ssms)创建数据库。
(2)使用向导删除上面建立的数据库。
用ssms删除添加建立的数据库educ1。
三.实验步骤(详细)(一)使用向导创建上诉描述的数据库。
使用sqlservermanagementstudio(简称ssms)创建数据库1.启动ssms在开始菜单中:所有程序-sqlstudioserver20XX-sqlservermanagement单击“连接”按钮,便可以进入【sqlservermanagementstudio】窗口。
如果身份验证选择的是“混合模式”,则要输入sa的密码。
2.建立数据库在“对象资源管理器”窗口,建立上述数据库educ。
在数据库节点上右击选择新建。
同时建立一个同样属性的数据库educ1。
3.修改数据库名,数据库逻辑名,初始大小,增长方式等(二)使用向导删除上面建立的数据库。
用ssms删除添加建立的数据库educ1。
内容四一.实验目的1.了解表的结构特点。
2.学会在企业管理器中修改表的定义。
修改数据库基本表的定义3.学会使用sql语句修改表的定义。
二.实验内容修改列属性(1)用企业管理器将student表中的birthday字段设为不能为空(notnull)。
(2)用sql语句将student表中的属性snochar(8)改成varchar(20)类型。
添加列(1)用企业管理器在course表中添加一列year,类型为varchar(4),默认值为空。
(2)用sql语句在year字段添加约束,year的属性值在20XX-20XX之间。
删除列(1)用sql语句将course表中的year字段删除。
三.实验步骤(详细)1.修改列属性步骤1:用企业管理器将student表中的birthday字段设为不能为空(notnull)。
方法:右键点击表student,单击“修改”,将birthday 属性的“允许空”修改为“否”步骤2:由于sno为主键,要用sql语句将student表中的属性snochar(8)改成varchar(20)类型,则需要先删除主键,修改后再添加主键代码:useeducgoaltertablestudentdropconstraintpk_studenta ltertablestudentaltercolumnsnovarchar(20)notnullaltertablestudentad dconstraintpk_studentprimarykey(sno)2.(1)步骤:展开course子目录,右键点击-新建列,加入year和类型添加列(2)步骤:新建查询,在查询编辑窗口输入:useeduc altertablecourseaddconstraintyearcheck(yearbetween20XXand20XX)然后执行。