实验五SQL语言-数据更新操作报告
- 格式:doc
- 大小:292.15 KB
- 文档页数:5
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语言的基本语法和常用命令,包括数据类型定义、表格创建、插入、更新和删除操作。
实验5实验项目名称:SQL的数据更新(2课时,验证)实验主要内容及方法:sql数据的插入、修改和删除实验要求:(1) 掌握sql数据插入、修改和删除语句的一般格式。
;(2) 掌握sql数据插入、修改和删除使用方法。
实验目的:熟练掌握sql数据插入、修改和删除的使用。
实验设备:装有SQL SERVER2000的电脑实验步骤:(1) 启动SQL查询分析器;(2) 选择SQL SERVER后,按确认;(3) 选择数据库;(4) 验证如下例题:实验内容:一:程序1.建立History_Student t表create table History_Student( Sno CHAR(10) primary key,Sname CHAR(10) NOT NULL,Ssex CHAR(4),Sage INT,Sdept CHAR(10));二:执行1.INSERTINTO History_StudentSELECT *FROM S;原来History_Student表为空,执行后2.UPDATE SSET Sage=22WHERE Sno=’S03’;执行前:执行后3.UPDATE SSET Sage=1+Sage;执行前:执行后:4.UPDATE scSET Grade=0WHERE ‘数学’=(SELECT SdeptFROM SWHERE S.Sno=sc.Sno); 执行前:执行后:5.DELETEFROM scWHERE Sno=’S04’AND Cno=’C02’;执行前:执行后:结果不变,原因是因为学号为s04的同学没选课号为c02的课6.DELETEFROM scWHERE '数学'=(SELECT SdeptFROM SWHERE S.Sno=sc.Sno);执行前:执行后:7.DELETEFROM sc执行前:执行后实验心得:经过此次实验,我基本掌握掌握sql数据插入、修改和删除的使用。
实验5SQL语言——更新操作命令实验5 SQL 语言——更新操作命令1实验5 S Q L 语言——更新操作命令实验示例1、INSERT 命令1.插入单个元组的INSERT 语句的格式为:INSERT [INTO] <表名> [(<属性列1>[,<属性列2>...]) VALUES (<常量1> [,<常量2>]...)(1)按关系模式的属性顺序安排值[例1] 如插入学号、姓名、年龄、性别、系名分别为'98011'、'张静'、27、'女'、'CS'的新学生。
USE JXGL GOInsert Into Student Values('98011','张静',27,'女','CS'); GO执行结果如图5-1所示。
图5-1 在查询分析器中通过INSERT 命令插入一记录(2)按指定的属性顺序,也可以只添加部分属性(非Null 属性为必须明确指定值)。
[例2] 插入学号为'98012'、姓名为'李四'、年龄为16的学生信息。
数据库原理与应用实验指导2Insert Into Student(Sno,Sname, Sage) Values('98012', '李四',16); --新插入的记录在Ssex,Sdept 列上取空值。
执行结果如图5-2所示。
图5-2 在企业管理器中通过INSERT 命令插入一记录[注意](1)从篇幅考虑,其余更新命令的执行窗口与运行状况类似于上两图,将不再列出。
(2)在INSERT 语句中,VALUES 列表中的表达式的数量,必须与表中的列数匹配,表达式的数据类型必须可以和表格中的对应各列的数据类型兼容。
如果表格中存在定义为NOT NULL 的数据列,那么该列的值必须出现在VALUES 的列表中。
第1篇一、实验背景随着信息技术的快速发展,数据已经成为企业和组织的重要资产。
数据的更新和维护是保证数据质量和准确性的关键环节。
本实验旨在验证数据更新方法的有效性,并通过实际操作了解数据更新过程中的关键步骤和注意事项。
二、实验目的1. 掌握数据更新的基本方法;2. 了解数据更新过程中的关键步骤;3. 分析数据更新对数据质量的影响;4. 评估数据更新方法的效率和可靠性。
三、实验环境1. 操作系统:Windows 102. 数据库:MySQL 5.73. 数据库连接工具:Navicat4. 实验数据:某公司员工信息表四、实验步骤1. 数据库连接使用Navicat连接到MySQL数据库,选择实验数据所在的数据库。
2. 数据查询在Navicat中执行以下SQL语句,查询实验数据表中的部分数据:SELECT FROM employee WHERE id BETWEEN 1 AND 10;3. 数据更新(1)使用UPDATE语句更新数据执行以下SQL语句,将id为2的员工的姓名修改为“张三”:UPDATE employee SET name = '张三' WHERE id = 2;(2)使用INSERT语句插入数据执行以下SQL语句,向实验数据表中插入一条新记录:INSERT INTO employee (id, name, age, department) VALUES (11, '李四', 25, '财务部');(3)使用DELETE语句删除数据执行以下SQL语句,删除id为3的员工记录:DELETE FROM employee WHERE id = 3;4. 数据验证执行以下SQL语句,查询更新后的数据表,验证数据更新是否成功:SELECT FROM employee;五、实验结果与分析1. 数据更新方法验证通过执行UPDATE、INSERT和DELETE语句,成功实现了数据的更新。
实验SQL数据更新语句一、实验目的本次实验了解SQL Server 2005的启动,熟悉如何使用SSMS和5@1.建立数据库和表,并加深对于完整性的理解。
一.二、背景知识在使用数据库的过程中,接触最多的就是数据库中的表。
表是数据存储的地方,是数据库中最重要的部分,管理好表也就管理好了数据库。
表是由行和列组成的。
创建表的过程主要就是定义表的列的过程。
表的列名在同一个表中具有唯一性,同一列的数据属于同一种数据类型。
除了用列名和数据类型来指定列的属性外,还可以定义其它属性:是否为空、默认值、标识符列、全局唯一标识符列等。
约束是SQL Server提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件。
在SQL Server中有5种约束:主关键字约束(Primary Key Constraint)、外关键字约束(Foreign Key Constraint)、惟一性约束(Unique Constraint)x 检查约束(Check Constraint)和默认约束(Default Constraint) 0...三、实验目的加深对SQL数据更新(插入、修改及删除)语句的基本语法格式的掌握掌握单个元组及多个元组的插入、修改及删除操作的实现过程加深对更新操作时数据库中数据一致性问题的了解加深对约束条件在数据更新操作执行中的作用问题的了解。
实验报告要求1、写出与上述任务相对应的SQL更新语句(实验报告上写出3、5、10的SQL语句)2、并记录在实验过程中遇到的问题、解决办法及心得体会。
五、实验内容方法一:在SSMS中插入、删除及修改数据,方法二:在查询编辑器中写SQL插入、删除及修改数据设有一个SPJ数据库,包括S, P, J, SPJ四个关系模式:S (SNO, SNAME, STATUS, CITY)dlim-S dbo. F dbo. JP (PNO, PNAME, COLOR, WEIGHT)PNAM;vardnar(2D)08L8Cbi3l(4)0WEIGm-int H□J (JNO, JNAME, CITY)列名数据类型允许空供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商(STATUS)、供应商所在城市(CITY)组成;零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;工程项目表1由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成;供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。
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的数据查询1、实验目的熟悉SQL语句的数据查询语言,能够SQL语句对数据库进行单表查询、连接查询、嵌套查询、集合查询和统计查询。
2、实验内容实验内容主要是对数据库进行查询操作,包括如下四类查询方式:单表查询查询的目标表达式为所有列、指定的列或指定的列的运算三种不同。
使用DISTINCT保留字消除重复行。
对查询结果排序和分组。
集合分组使用集函数进行各项统计。
连接查询笛卡儿连接和等值连接。
自连接。
外连接复合条件连接。
多表连接。
嵌套查询通过实验验证对子查询的两个限制条件。
体会相关子查询和不相关子查询的不同。
考察四类谓词的用法,包括:第一类,IN、NOT IN;第二类,带有比较运算符的子查询;第三类,SOME、ANY或ALL谓词的子查询,查询最大值和最小值;第四类,带有EXISTS谓词的子查询,实现“所有”等情况集合运算使用保留字UNION进行集合或运算。
采用逻辑运算符AND或OR来实现集合交和减运算。
3、实验步骤以University_Mis数据库为例,该数据库中有四张如实验一,其中Score是每门课的考试成绩,Scredit是学生所有考试合格课程所获得的积分总数,Ccredit每门课程的学分数。
在数据库中,存在这样的联系:学生可以选择课程,一个课程对应一个教师。
在表Reports中保存学生的选课记录和考试成绩。
1请先输入如下元组,再对数据库进行有关的查询操作:图、Students表图、Teachers表图、Courses表图、Reports表2查询性别为“男”的所有学生的名称并按学号升序排列。
查询学生的选课成绩合格的课程成绩,并把成绩换算为积分。
积分的计算公式为:[1+(考试成绩-60)*]*Ccredit。
考试成绩>=60。
查询学分是3或4的课程的名称。
查询所有课程名称中含有“算法”的课程编号。
查询所有选课记录的课程号。
统计所有老师的平均工资。
实验五SQL语言-数据更新操作报告SQL(结构化查询语言)是一种被广泛使用的关系型数据库管理系统查询和编程语言,可以用来操纵数据和其他数据库对象的结构和内容。
本实验采用SQL语言进行对关系型数据库表中的数据更新操作,经过实验室所做操作、实验结果、验证和总结,最终更新操作成功。
实验内容:1. 使用查询语句检查关系表: 首先使用“SELECT * FROM table_name”这样的语句检查表中的内容,确定需要更新的信息,以及数据的形式等。
这样可以确保编写更新语句时,能够正确地更新所需的信息。
2. 编写更新语句: 将检查的结果作为基础,用“UPDATE table_name setcolumn_name = value”这样的语句来修改表中数据项的值,确认这些修改后的值是符合要求的。
3. 在SQL Shell中运行更新语句: 将上述步骤得到的更新语句复制到SQL Shell中,运行,并检查结果。
4. 更新操作验证: 更新操作完成后,应在SQL Shell中通过“SELECT * FROMtable_name”这样的语句,对关系表中的数据项进行再次检查,以确认更新操作的正确性。
5. 总结实验: 通过上述步骤,在关系型数据库表中进行了更新操作,运用了SQL语言相关的操作,并能够准确高效的完成数据更新。
本次实验使用SQL语言进行对关系型数据库表中的数据更新操作,通过查询语句、编写更新语句、在SQL Shell中运行语句、更新操作验证和总结实验等步骤,最终成功地实现了数据更新操作。
这也体现出SQL语言在数据库操作中的强大功能,也让我们对关系型数据库的操作更加熟悉,更能巧妙的应用在各种场合里。
数据查询与更新实验报告本次数据查询与更新实验,我们通过使用SQL语言,掌握了大量的数据查询与更新的操作方法。
在本次实验中,我们学习了数据查询的基本步骤并掌握了各种数据查询方式,包括简单查询、条件查询、排序查询、目录查询、并集查询、交集查询和差集查询。
同时,我们还学习了如何利用SQL语言进行数据更新,包括添加、修改和删除数据等方面。
在实验中,我们使用了具体的数据库及表格进行操作。
首先,我们创建了一个名为“students”的数据库,并在其中添加了一个名为“student”的表格,用于存储学生的信息。
在插入数据时,我们学习了如何通过SQL语言向表格中添加数据,并掌握了如何在插入数据时保证数据的唯一性和数据的正确性。
在数据查询方面,我们掌握了基本的SELECT语句的用法,并学习了SELECT语句的各种限定方式,以达到我们需要查询的结果。
我们还学习了如何通过子查询进行复杂的数据查询,并掌握了如何在查询中利用逻辑运算符和比较运算符等方式来进行查询筛选。
同时,我们还学习了如何利用GROUP BY和ORDER BY子句对数据进行分类及排序查询。
在数据更新方面,我们学习了如何使用INSERT, UPDATE和DELETE语句来进行数据的添加、修改和删除操作,并了解了利用各种子查询语句进行数据更新的方法。
在实际操作中,我们试图通过修改数据来实现数据的更新,并考虑到更新数据时对数据完整性的影响。
我们还通过实例操作学习了如何使用SQL事务处理,确保数据的一致性。
在本次实验中,我们还通过使用SQL实现了数据的备份和恢复操作,并尝试了利用批处理进行数据管理的方式。
我们还学习了如何处理存储过程和触发器,以实现对数据的自动化管理。
综上所述,本次实验对我们学习SQL语言的数据查询和更新操作有了很大的帮助。
我们掌握了SQL语言的基本语法以及各种数据查询和更新的方法,为我们今后在数据库管理和数据分析方面的工作提供了坚实的基础。
同时,我们也意识到数据查询与更新在各种实际工作中的极其重要性,并应该时刻保证数据的正确性、完整性及一致性,以确保数据的有效性和可信度。
实 验 报 告
专业:计算机应用技术 班级:08计专(1)班 学号:200813131134 姓名:熊少容 课程名称:数据库原理与应用 学年200 9-201 0学期1 /2 课程类别 专业必修 限选 任选 实践 实验时间2010 年 6月3日 实验名称
实验五 SQL 语言-数据更新操作
实验目的和要求
1. 通过上机实验进一步加深对SQL 数据更新(插入,修改及删除)语句的基本语法格式的掌握。
2. 通过上机实验掌握单个元组插入操作的实现过程。
3. 通过上机实验掌握多个元组插入操作的实现过程。
4. 通过上机实验掌握单个元组修改操作的实现过错。
5. 通过上机实验掌握多个元组修改操作的实现过程。
6. 通过上机实验掌握单个元组删除操作的实现过程。
7. 通过上机实验掌握多个元组删除操作的实现过程。
8. 通过上机实验加深对更新操作是数据库中一致性问题的了解。
9. 通过上机实验加深对约束调焦在数据库更新操作执行中的作用问题的了解。
实验软硬件要求
安装windows xp 和sql server 2000的计算机
实验内容、方法和步骤(可附页)
见附页
实验结果(可附页)
见附页
小结
通过本次实验进一步加深对SQL 数据更新(插入,修改及删除)语句的基本语法格式的掌握,在实验过程中遇到了一些问题,在经过反复的思考之后,渐渐地把哪些问题解决了,以后学习数据库还要花很多的心思,多思考,多动手。
评定成绩: 批阅教师: 年 月 日
√ √
实验内容,方法和步骤:
实验内容:
1.在s表中插入元组“s6,华誉,40,020*******”。
2.在j表中插入元组“j8,传感器厂”。
3.对每个供应商,求他为各种工程供应零件的总数量,并将此结果列入数据库。
4.将p表中pno值为p6的元组的color属性值改为绿,weight属性值改为60。
5.将spj表中前4个元组的qty属性值统一改为30。
6.将s表中city属性名含有“京”或“津”的相应属性值增加100。
7.将供应商s2为“一汽”工程项目所供应的零件数量修改为2000。
8.将全部红色零件的颜色修改为浅红色。
9.由s5供给j4的零件p6改为由s3供应,请在数据库中作必要的修改。
10.在spj表中新增一名为SDATE的属性列,对该表中的每一组合在SDATE属性列上填上
实验当时的日期和时间。
11.删除所在城市为“广州”的供应商记录。
12.删除所有零件名称中第一个字为“螺”字的零件记录,并在供应情况表中删除相应的
记录。
13.删除s3和s4两供应商为“三建”工程供应“螺母”或“螺丝刀”零件的相应供应情况
数据信息。
实验方法,步骤与结果:
第一题
1)打开查询分析器,输入如下Transact-SQL语句:
use shiyan,insert into s,values('s6','华誉','40','广州','020*******')
2)执行后显示“所影响的行数为1行”
3)查询数据库“shiyan”中的s表,显示如下结果:
在s表插入新元组成功。
第二题
1)在查询分析器输入如下Transact-SQL语句:
use shiyan,insert into j(jno,jname),values('j8','传感器厂')
2)执行后显示“所影响的行数为1行”
3)查询数据库“shiyan”中的j表,显示如下结果:
在j表插入新元组成功。
第三题
1)在查询分析器输入如下Transact-SQL语句:
use shiyan,create table TotalQTY ofS(SNO char(4) not null unique,,TotalQTY int);insert into TotalQTY ofS,select sno,sum(qty),rom spj,roup by sno
2)后显示“所影响的行数为5”
3)查询数据库“shiyan”中的数据表,多了一个TotalQTY ofS表,打开该表显示如下结果:
第四题
1)在查询分析器输入如下Transact-SQL语句:
use shiyan,update p,set color='绿',weight=60,where pno='p6'
2)执行后显示“所影响的行数为1行”
3)查询数据库“shiyan”中的p表,显示如下结果:
在p表修改属性成功。
第五题
1)在查询分析器输入如下Transact-SQL语句:
use shiyan,update spj,set qty=300,from (select top 4 * from spj order by sno) as table1
where spj.sno=table1.sno
2)执行后显示“所影响的行数为4行”
3)查询数据库“shiyan”中的spj表,显示如下结果:
第六题
1)在查询分析器输入如下Transact-SQL语句:
use shiyan,update s,set status=status+100,where city like '%京%'or city like '%津%'
2)执行后显示“所影响的行数为4行”
3)查询数据库“shiyan”中的spj表,显示如下结果:
第七题
1)在查询分析器输入如下Transact-SQL语句:
use shiyan,pdate spj,set qty=2000,where sno='s2' and jno=(select jno,from j,where jname='一汽') 2)执行后显示如下结果:
第八题
1)在查询分析器输入如下Transact-SQL语句:
use shiyan,update p,set color='浅红',where color='红'
2)执行后显示“所影响的行数为3行”
3)查询数据库“shiyan”中的p表,显示如下结果:
第九题
1)在查询分析器输入如下Transact-SQL语句:
use shiyan,pdate spj,et sno='s3',here sno='s5' and jno='j4' and pno='p6'
2)执行后示“所影响的行数为1行”
3)查询数据库“shiyan”中的p表,显示如下结果:
第十题
1)在查询分析器输入如下Transact-SQL语句:
use shiyan,alter table spj,add SDA TE datetime
再输入以下脚本:
update spj,set SDA TE=getdate()
执行后属性列增加成功。
第十一题
1)在查询分析器输入如下Transact-SQL语句:
use shiyan,delete,from s,where city='广州'
2)执行后示“所影响的行数为0行”
第十二题
1)在查询分析器输入如下Transact-SQL语句:
use shiyan,delete,from spj,where pno in(select pno,from p,where pname like '螺%') delete,from p,where pname like '螺%'
2)执行后示“所影响的行数为0行所影响的行数为4 行”
3)查询数据库“shiyan”中的p表,显示如下结果:
第十三题
1)在查询分析器输入如下Transact-SQL语句:
use shiyan,delete,from spj,where (sno='s3' or sno='s4') and jno in (select jno,from j where jname='三建') ,and pno in (select pno,from p,
where pname='螺母' or pname='螺丝刀')
2)执行后示“所影响的行数为0行”
因为前面已经你给把第一个字为“螺”字的零件记录删除了,所以再输入该脚本的时候不会对spj表产生影响。