数据库 实验报告5 ESQL

合集下载

sql数据库实验报告

sql数据库实验报告

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 实验报告

数据库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实验报告__数据库的基本操作

数据库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数据库系统实验报告(含代码、截图)

设有一学籍管理系统,其数据库名为“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实验报告(优秀范文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语句操作数据实验时间: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)找出所有零件的名称、颜色、重量。

数据库 实验报告5 ESQL

数据库 实验报告5 ESQL

数据库实验报告5 ESQL试验内容:编写嵌入式C 程序,编程实现了对“同学课程数据库”的拜访和操作:对Student 表中的年龄举行更新。

系统每输出一个同学记录,咨询用户是否更新。

假如要更新,就输入新的年龄。

一. 试验环境介绍。

试验五是在之前完成的试验一的基础上举行的。

系统配置为:CPU: P3 800 内存:512MB 硬盘:30G软件系统:WINDOWS 2000 ADV ANCED SERVER 。

在试验一中,我们已经胜利安装了KingbaseES V4.1,形成本试验所需要的环境。

其中安装路径为C:\Program Files 名目下。

二.编写含嵌入式C 程序test ,扩展名为.pc 。

EXEC SQL BEGIN DECLARE SECTION; /*说明主变量deptname ,HSno ,HSname ,char deptname[20]; *HSsex ,HSage ,NEW AGE 。

*/ char HSno[9];char HSname[20];char HSsex[2];int HSage;int NEWAGE;EXEC SQL END DECLARE SECTION; /*声明部分结束*/long SQLCODE;EXEC SQL INCLUDE sqlca; /*定义SQL 通信区*/int main(void){int count = 0;char yn; /*变量yn 代表yes 或者no*/printf("Please choose the department name(CS/MA/IS): "); /*为主变量deptname 赋值*/ scanf("%s",EXEC SQL CONNECT TO 同学课程数据库@localhost:54321 USER"SYSTEM"/"MANAGER"; /*衔接数据库TEST*/EXEC SQL DECLARE SX CURSOR FOR /*说明游标,为查询和更新做预备*/ SELECT Sno, Sname, Ssex, SageFROM StudentWHERE SDept = :deptname;EXEC SQL OPEN SX; /*打开游标。

SQL数据库实验报告

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 从句来以特定的顺序抽取数据的方法等等。

数据库实验sql语法实验报告

数据库实验sql语法实验报告

数据库实验sql语法实验报告数据库实验SQL语法实验报告本次数据库实验主要涉及SQL语法的学习和应用,通过对实验指导书中所给出的数据库进行操作,对SQL语法有了更加深入的理解和掌握。

以下是本次实验的具体内容和结果。

一、实验环境实验环境为Windows 10操作系统,使用MySQL Workbench 8.0作为数据库管理工具。

二、实验步骤1.创建数据库和表格首先需要创建一个新的数据库,使用以下命令:CREATE DATABASE experiment;然后,创建一个新的表格,使用以下命令:CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(50),age INT,gender VARCHAR(10));2.插入数据接下来,插入一些数据到students表格中,使用以下命令:INSERT INTO students (id, name, age, gender) VALUES (1, '张三', 18, '男'),(2, '李四', 19, '女'),(3, '王五', 20, '男'),(4, '赵六', 21, '女');3.查询数据现在,我们可以查询students表格中的数据,使用以下命令:SELECT * FROM students;这个命令将会返回students表格中的所有数据,包括id,name,age和gender。

4.更新数据如果需要更新students表格中的某一条数据,可以使用以下命令:UPDATE students SET age=22 WHERE id=4;这个命令将会将id为4的数据的age字段更新为22。

5.删除数据如果需要删除students表格中的某一条数据,可以使用以下命令:DELETE FROM students WHERE id=3;这个命令将会删除id为3的数据。

数据库sql 实验报告

数据库sql 实验报告

数据库sql 实验报告数据库SQL 实验报告一、引言数据库是计算机科学中的一个重要概念,它用于存储和管理大量的数据。

SQL (Structured Query Language)是一种用于访问和操作数据库的标准语言。

本实验旨在通过实际操作,加深对数据库和SQL的理解,并掌握基本的SQL语句。

二、实验目的1. 熟悉数据库的基本概念和原理;2. 掌握SQL的基本语法和常用操作;3. 实践数据库设计和数据查询。

三、实验环境本实验使用MySQL数据库管理系统,并在Windows操作系统下进行。

四、实验过程与结果1. 数据库创建和表设计首先,我们创建一个名为"students"的数据库,并在其中创建一个名为"grades"的表。

表中包含学生姓名、学号、科目和成绩等字段。

2. 数据插入接下来,我们向"grades"表中插入一些数据,以模拟学生成绩的记录。

通过使用INSERT INTO语句,我们可以将数据插入到表中。

3. 数据查询在数据库中,查询是最常用的操作之一。

我们可以使用SELECT语句来实现对数据的查询。

例如,我们可以查询某个学生的成绩,或者按照科目进行排序等。

4. 数据更新有时候,我们需要对已有的数据进行更新。

使用UPDATE语句可以实现对表中数据的修改。

例如,我们可以将某个学生的成绩从80分修改为90分。

5. 数据删除当某个数据不再需要时,我们可以使用DELETE语句将其从表中删除。

例如,我们可以删除某个学生的成绩记录。

六、实验总结通过本次实验,我对数据库和SQL有了更深入的理解。

数据库作为存储和管理大量数据的工具,为我们提供了方便快捷的数据操作方式。

SQL作为一种标准语言,具备强大的数据查询、更新和删除功能。

在实验过程中,我学会了创建数据库和表,插入数据,进行数据查询、更新和删除等基本操作。

然而,数据库和SQL的学习仅仅是一个开始。

在实际应用中,我们还需要了解更多高级的数据库概念和技术,如索引、事务处理和数据备份等。

sql数据库实训报告

sql数据库实训报告

sql数据库实训报告SQL数据库实训报告。

一、实训背景。

本次实训是针对SQL数据库的设计与应用进行的,旨在通过实际操作,加深对SQL数据库的理解与掌握,提高数据库设计与管理能力。

二、实训内容。

1. 数据库设计与创建。

在实训开始阶段,我们首先学习了数据库的设计原理与方法,包括实体关系模型(ERM)的绘制,数据库表的设计,以及数据类型的选择等。

在此基础上,我们使用SQL语句创建了一个包含多个表的数据库,并进行了数据的插入与查询操作。

2. 数据库查询与管理。

接着,我们学习了SQL语言的基本语法与常用查询命令,包括SELECT、UPDATE、DELETE、INSERT等,以及各种条件筛选、排序、分组与连接操作。

通过实际练习,我们掌握了如何编写高效、准确的SQL查询语句,并对数据库中的数据进行管理与维护。

3. 数据库应用与优化。

在实训的最后阶段,我们将学习如何将数据库应用到实际的项目中,包括数据库的备份与恢复、性能优化、索引设计等方面的内容。

通过这些内容的学习,我们将能够更好地应对实际项目中的数据库管理与应用需求。

三、实训收获。

通过本次实训,我对SQL数据库的设计与应用有了更深入的理解与掌握。

我不仅学会了如何设计与创建数据库,还能够编写复杂的SQL查询语句,并对数据库进行有效管理与优化。

这些知识与技能对我的职业发展将起到重要的推动作用。

四、实训反思。

在实训过程中,我深刻体会到了理论与实践相结合的重要性。

通过实际操作,我才真正理解了课堂上学到的知识,并且能够运用到实际工作中。

同时,我也意识到数据库设计与管理是一个复杂而又细致的工作,需要不断地学习与实践,才能够不断提高自己的能力与水平。

五、实训展望。

在未来的学习与工作中,我将继续深入学习数据库相关的知识,不断提升自己的数据库设计与管理能力。

我希望能够在实际项目中应用所学到的知识,为企业的数据管理与应用提供更加专业、高效的解决方案。

六、结语。

通过本次实训,我对SQL数据库有了更加全面的认识与掌握,我相信这些知识与技能将成为我未来发展的重要基础。

数据库实验报告范本(3篇)

数据库实验报告范本(3篇)

第1篇实验名称:数据库设计与实现实验日期:2023年4月15日实验班级:计算机科学与技术专业1班实验学号:12345678一、实验目的1. 理解数据库设计的基本原理和方法。

2. 掌握数据库概念结构、逻辑结构和物理结构的设计。

3. 学会使用数据库设计工具进行数据库设计。

4. 能够使用SQL语句进行数据库的创建、查询、更新和删除等操作。

二、实验内容1. 数据库概念结构设计- 分析需求,确定实体和实体间的关系。

- 设计E-R图,表示实体、属性和关系。

2. 数据库逻辑结构设计- 将E-R图转换为关系模式。

- 设计关系模式,确定主键、外键等约束。

3. 数据库物理结构设计- 选择合适的数据库管理系统(DBMS)。

- 设计数据库表结构,包括字段类型、长度、索引等。

- 设计存储策略,如数据文件、索引文件等。

4. 数据库实现- 使用DBMS创建数据库。

- 创建表,输入数据。

- 使用SQL语句进行查询、更新和删除等操作。

三、实验步骤1. 数据库概念结构设计- 分析需求,确定实体和实体间的关系。

- 设计E-R图,表示实体、属性和关系。

2. 数据库逻辑结构设计- 将E-R图转换为关系模式。

- 设计关系模式,确定主键、外键等约束。

3. 数据库物理结构设计- 选择合适的数据库管理系统(DBMS)。

- 设计数据库表结构,包括字段类型、长度、索引等。

- 设计存储策略,如数据文件、索引文件等。

4. 数据库实现- 使用DBMS创建数据库。

- 创建表,输入数据。

- 使用SQL语句进行查询、更新和删除等操作。

四、实验结果与分析1. 数据库概念结构设计- 实体:学生、课程、教师、成绩。

- 关系:学生与课程之间有选课关系,教师与课程之间有授课关系。

2. 数据库逻辑结构设计- 学生表(学号,姓名,性别,年龄,班级号)。

- 课程表(课程号,课程名,学分,教师号)。

- 教师表(教师号,姓名,性别,年龄,职称)。

- 成绩表(学号,课程号,成绩)。

数据库学习实验报告(3篇)

数据库学习实验报告(3篇)

第1篇一、实验目的本次实验旨在通过实际操作,加深对数据库基础知识的理解,掌握数据库的基本操作,包括数据库的创建、表的设计、数据的插入、查询、修改和删除等。

通过本次实验,提高对SQL语言的实际应用能力,为后续深入学习数据库知识打下坚实的基础。

二、实验环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 5.73. 开发工具:MySQL Workbench三、实验内容1. 数据库的创建与删除2. 表的设计与数据类型3. 数据的插入、查询、修改和删除4. 索引与视图的应用四、实验步骤1. 数据库的创建与删除(1)创建数据库```sqlCREATE DATABASE db_student;```(2)删除数据库```sqlDROP DATABASE db_student;```2. 表的设计与数据类型(1)创建学生表```sqlCREATE TABLE student (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50),age INT,gender ENUM('男', '女'),class VARCHAR(50));```(2)创建课程表```sqlCREATE TABLE course (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50),credit INT);```3. 数据的插入、查询、修改和删除(1)插入数据```sqlINSERT INTO student (name, age, gender, class) VALUES ('张三', 20, '男', '计算机科学与技术');INSERT INTO course (name, credit) VALUES ('高等数学', 4);```(2)查询数据```sql-- 查询所有学生信息SELECT FROM student;-- 查询年龄大于20岁的学生信息SELECT FROM student WHERE age > 20;-- 查询课程名称为“高等数学”的课程信息SELECT FROM course WHERE name = '高等数学';```(3)修改数据```sql-- 修改学生张三的年龄为21岁UPDATE student SET age = 21 WHERE name = '张三';-- 修改课程“高等数学”的学分UPDATE course SET credit = 5 WHERE name = '高等数学';```(4)删除数据```sql-- 删除学生张三的信息DELETE FROM student WHERE name = '张三';-- 删除课程“高等数学”的信息DELETE FROM course WHERE name = '高等数学'; ```4. 索引与视图的应用(1)创建索引```sql-- 创建学生表id字段的索引CREATE INDEX idx_student_id ON student(id); -- 创建课程表name字段的索引CREATE INDEX idx_course_name ON course(name); ```(2)创建视图```sql-- 创建包含学生姓名和课程名称的视图CREATE VIEW student_course_view ASSELECT , FROM studentJOIN course ON student.class = course.id;```(3)查询视图数据```sql-- 查询视图中的数据SELECT FROM student_course_view;```五、实验总结通过本次实验,我深入了解了数据库的基本操作,掌握了SQL语言的运用。

数据库SQL语句实验报告

数据库SQL语句实验报告

《数据库原理及应用》实验报告SQL语句部分总成绩:实验一熟悉SQL SERVER,数据定义实验实验一成绩:一、实验目的1、利用查询分析器创建数据库2、利用查询分析器用SQL语言定义基本表、索引并进行相关操作二、实验步骤及内容在以下实验中,使用学生-课程数据库,它描述了学生的基本信息、课程的基本信息及学生选修课程的信息。

1.创建学生课程数据库5.将以上创建表S、C、SC的SQL命令以.SQL文件的形式保存在磁盘上。

6、在表S上增加“出生日期”属性列。

7、删除表S的“年龄”属性列。

8、删除S姓名列的唯一值约束。

9、修改SC表成绩属性列为精确数字型。

10、在表S上,按“Sno”属性列的唯一值方式建立索引。

11、删除表SC,利用磁盘上保存的.SQL文件重新创建表SC。

12、创建教材P74页习题5中SPJ数据库中的四个关系:S、P、J、SPJ。

三、实验结果:1.创建学生课程数据库create database Studend;create table S(Sno CHAR(9)PRIMARY KEY,Sname CHAR(20)UNIQUE,Ssex CHAR(2),Sage smallint,Sdept char(20),);3.创建课程关系表C :课程号课程名先行课学分Cno Cname Cpno ccreditcreate table C(Cno char(4)primary key,Cname CHAR(40),Cpno char(4),Ccredit SMALLINT,);学号课程号成绩Sno Cno grade create table SC(Sno char(9),Cno char(4),Grade smallint,);5.将以上创建表S、C、SC的SQL命令以.SQL文件的形式保存在磁盘上。

6、在表S上增加“出生日期”属性列。

alter table S add Sbirthday datetime;7、删除表S的“年龄”属性列。

数据库sql实验报告

数据库sql实验报告

数据库sql实验报告前⾔⼀、课程设计⽬的1.掌握数据库基本原理,理解关系数据库的设计⽅法和设计思路。

2.设计⼀个数据库应⽤系统。

3.完成所设计系统数据库的概念设计、逻辑设计与物理设计。

4.SQL Server2005的操作与使⽤。

5.数据库的建⽴与管理、数据表的建⽴与操作等。

6.SQL查询语⾔的使⽤与编程。

7.培养对所学知识的综合运⽤的能⼒。

⼆、课程设计的基本要求1、构建学⽣信息管理系统后台数据库;2、根据设计任务和基本信息,制定数据库设计实施的实际⽅案;3、进⾏数据库代码的编写、开发,处理中间各个环节过程中遇到的问题,即使修正设计实施⽅案,与项组员积极沟通解决问题;4、解决开发过程中遇到的技术性问题及关键性代码;5、运⾏结果,调试系统。

系统背景资料说明本次数据库实训我们组要完成的是学⽣信息管理系统的后台数据库设计,这是⼀个典型的PPS进存销系统,该系统通⽤性极强,覆盖学⽣的课程、销售、库存、管理等各个环节。

该系统的主要内容是以医药公司的库存管理、销售管理、进货管理、供应商管理、客户管理功能为核⼼。

系统需求分析操作系统:操作系统:Microsoft Windows 2000 Server/NT 及以上版本。

DBMS名称:SQL Sever 2005;DBMS版本:主数据库:数据库名:student;包含⼀个主数据⽂件和⼀个事务⽇志⽂件。

主数据⽂件逻辑名为:student_data,操作系统⽂件名为:student_data.mdf事务⽇志⽂件逻辑名为:student_log,操作系统⽂件名为:student_log.ldf主数据⽂件初始容量⼤⼩为10MB,最⼤容量⽆限制,⽂件增长量为:10%。

事务⽇志⽂件初始容量⼤⼩为10MB,最⼤容量⽆限制,⽂件增长量为:10%。

学⽣表:学⽣(学号、姓名、性别、出⽣⽇期、专业、班级、所属学院)课程表:课程(课程号、课程名、学时、学分)学⽣选修课表:学⽣选修课(学号、课程号、成绩)学⽣德育考评表:学⽣德育考评(学号、德育考评分、智育考评分、体育考评分)学⽣综合评定情况表:学⽣综合评定情况(学号、综合考评分、名次)学⽣表课程表学⽣选修课表学⽣德育考评表学⽣综合评定情况表数据库实现⼀、T-SQL代码1、主数据的创建:create database studenton primary(name=student_data,filename='E:\st\student_data.mdf',size=10MB,maxsize=unlimited,filegrowth=10%)log on(name=student_log,filename='E:\st\student_log.ldf',size=10MB,maxsize=unlimited,filegrowth=10%)go2、表的创建:(1)学⽣表:use studentgocreat table 学⽣(学号 char(12) constraint pk_xs primary key, 姓名 char(8),性别 char(2),出⽣⽇期 datetime,专业 varchar(20) not null,班级 varchar(20)所属学院 varchar(30)Go(2)课程表:use studentgocreate table 课程(课程号 char(4) constraint pk_kc primary key,课程名 char(20) not null,学时 tinyint,学分 smallint)go(3)学⽣选修课表:use studentgocreate table 学⽣选修课(学号 char(12) constraint fk_xsxxkxh references 学⽣(学号),课程号 char(4) constraint fk_xsxxkkch references 课程(课程号), 成绩 tinyint) go(4)学⽣德育考评表:use studentGocreate table 德育考评(学号 char(12) constraint fk_dykpxh reference学⽣(学号),德育考评分 tinyint,体育考评分 tinyint,智育考评分 tinyint)go(5)学⽣综合评定情况表:use studentgocreate table 学⽣综合评定情况(学号 char(12) constraint fk_xszhpdqkxh references 学⽣(学号),综合考评分 tinyint,名次 char(2))go3、⼀班学⽣表视图创建:use studentgocreate view view1asselect dbo.学⽣.学号, dbo.学⽣.姓名, dbo.学⽣.性别, dbo.学⽣.出⽣⽇期, dbo.学⽣.专业, dbo.学⽣.班级, dbo.学⽣.所属学院from dbo.学⽣where (班级='2009级1班')go4、存储名次⼤于等于22名学⽣综合评定情况:use studentgocreate procedure cj_xmasselect 学⽣.学号,姓名,综合考评分,名次from 学⽣,学⽣综合评定情况where 学⽣.学号=学⽣综合评定情况.学号 and 名次>='22'go5、建⽴⼀个名为del_xs的delete触发器use studentgocreate trigger del_xson 学⽣for deleteasdelete 学⽣选修课 where 学号 in (select 学号 from deleted) go⼆、运⾏结果1、按个⼈或者班级查询学⽣的综合考评分及名次:2、查询学⽣的各个部分分数构成情况3、能够对基本数据进⾏修改参考⽂献:《数据库原理与技术》清华⼤学出版社申时凯戴祖诚致谢:感谢王亚宁⽼师的悉⼼指导、感谢⼩组成员的团结奋战.。

数据库SQL实验报告_数据库的基本操作

数据库SQL实验报告_数据库的基本操作

数据库SQL实验报告_数据库的基本操作一、实验目的本次实验旨在通过实际操作,深入理解和掌握数据库的基本操作,包括创建数据库、创建表、插入数据、查询数据、更新数据和删除数据等,从而提高对数据库管理系统的应用能力和实践操作技能。

二、实验环境本次实验使用的数据库管理系统是 MySQL 80,操作系统为Windows 10。

三、实验内容及步骤(一)创建数据库1、打开 MySQL 命令行客户端,输入以下命令创建一个名为“my_database”的数据库:```sqlCREATE DATABASE my_database;```2、输入以下命令查看已创建的数据库:```sqlSHOW DATABASES;```(二)创建表1、使用以下命令切换到“my_database”数据库:```sqlUSE my_database;```2、创建一个名为“students”的表,包含“id”(整数类型,主键,自增)、“name”(字符串类型,长度为 50)、“age”(整数类型)和“grade”(整数类型)列:```sqlCREATE TABLE students (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),age INT,grade INT);```1、向“students”表中插入以下数据:```sqlINSERT INTO students (name, age, grade) VALUES ('张三', 20, 80),('李四', 21, 85),('王五', 19, 90);```(四)查询数据1、查询“students”表中的所有数据:```sqlSELECT FROM students;```2、查询年龄大于 20 岁的学生信息:```sqlSELECT FROM students WHERE age > 20;```1、将“张三”的年龄更新为 21 岁:```sqlUPDATE students SET age = 21 WHERE name ='张三';```(六)删除数据1、删除“grade”小于 80 的学生记录:```sqlDELETE FROM students WHERE grade < 80;```四、实验结果(一)创建数据库成功创建了名为“my_database”的数据库,并通过“SHOW DATABASES”命令验证了其存在。

关系数据库语言SQL实验报告

关系数据库语言SQL实验报告

数据库系统教程上机实验报告学院:计算机科学与工程学院专业:计算机科学与技术指导老师:戴祖雄班级:计算机一班学号:0905010124姓名:范佳滨2011年10月26日关系数据库语言SQL实验实验目的1.了解SQL的特点。

2.熟悉关系数据库的标准语言——结构化查询语句SQL(Structured Query Language)。

3.熟悉并掌握SQL的数据定义、数据查询、数据更新、视图操作以及嵌入式SQL。

实验一:一.实验工具1.Microsoft Server 2000.二.实验步骤1.打开SQL Server 服务管理器,点击开始。

2.打开 SQL Server Enterprise Manager(企业管理器),在Microsoft SQL Servers\SQL Server\Windows NT\数据库目录下创建自己的数据,并为其命名,如mydata。

3.打开SQL查询分析器,选择自己的数据库,然后就可以在数据库里添加内容了。

4.基本表的创建:1)创建教师表CREATE TABLE T(T# CHAR(4) NOT NULL,TNAME CHAR(10) NOT NULL,CLASS CHAR(30),PRIMARY KEY(T#));2)创建课程表CREATE TABLE C(C# CHAR(4),CNAME CHAR(30) NOT NULL,T# CHAR(4),PRIMARY KEY(C#),FOREIGN KEY(T#) REFERENCES T(T#));3)创建学生表CREATE TABLE S(S# CHAR(4) NOT NULL,SNAME CHAR(10) NOT NULL,AGE SMALLINT,SEX CHAR(2),PRIMARY KEY(S#));4)创建学生所选课的成绩表CREATE TABLE SC(S# CHAR(4),C# CHAR(4),SCORE SMALLINT,PRIMARY KEY(S#,C#),FOREIGN KEY(S#) REFERENCES S(S#),FOREIGN KEY(C#) REFERENCES C(C#));5. 数据的更新1) 插入教师表的信息INSERT INTO T (T#,TNAME,CLASS)VALUES('T1','DAI','数据库');INSERT INTO TVALUES('T2','XIAO','计算机基础');INSERT INTO TVALUES('T3','TANG','操作系统');INSERT INTO TVALUES('T4','SONG','微机原理');INSERT INTO TVALUES('T5','WEI','VHDL')INSERT INTO TVALUES('T6','WANG','汇编语言');2)插入课程表信息INSERT INTO C (C#,CNAME,T#)VALUES('C1','数据库','T1');INSERT INTO CVALUES('C2','计算机基础','T2');INSERT INTO CVALUES('C3','操作系统','T3');INSERT INTO CVALUES('C4','微机原理','T4');INSERT INTO CVALUES('C5','VHDL','T5');INSERT INTO CVALUES('C6','汇编语言','T6');3)插入学生信息INSERT INTO S(S#,SNAME,AGE,SEX)VALUES('S1','FAN','21','男');INSERT INTO SVALUES('S2','JIANG','20','女');INSERT INTO SVALUES('S3','WANG','20','男');INSERT INTO SVALUES('S4','TIAN','18','男');INSERT INTO SVALUES('S5','LUO','19','女');INSERT INTO SVALUES('S6','LIU','25','男');4)插入学生成绩INSERT INTO SCVALUES('S1','C6','92');INSERT INTO SCVALUES('S2','C5','88');INSERT INTO SCVALUES('S3','C4','95');INSERT INTO SCVALUES('S4','C3','90');INSERT INTO SCVALUES('S5','C2','93');INSERT INTO SCVALUES('S6','C1','99');四.实验结果1.显示学生所选课程成绩表所有内容SELECT * FROM SC;2.显示课程表的所有内容SELECT * FROM C;3.显示学生表的所有内容SELECT * FROM S;4.显示教师表的内容SELECT * FROM T;5.数据修改如修改老师姓名:UPDATE TSET TNAME = 'MA' WHERE T# = 'T1';6 . 数据删除如删除学生成绩DELETE FROM SCWHERE SCORE = '92';7.表的删除,等。

数据库原理与应用实验报告SQL语言数据查询—数据定义

数据库原理与应用实验报告SQL语言数据查询—数据定义

《数据库原理及应用》电子实验报告题目:SQL语言数据定义日期姓名实验环境:Windows 7,Sql Server2005实验目的:1.熟悉Sql Server2005环境2.掌握基本表的定义、删除和修改3.掌握索引的建立和删除实验内容:1.Sql Server2005的启动Sql Server2005的启动方法:⑴单击“开始”按钮→“所用程序”→“Microsoft SOL Server 2005”→“SQL Server Management Studio”。

之后将会出现如图1所示的“连接到服务器”的窗口。

⑵安装时将 Sql Server2005 的快捷图标放到桌面或锁定到任务栏打开Sql Server2005界面(如下图)单击‘连接’,进入界面(如下图)点击‘新建查询’,进入空白页面,编写程序。

2. 定义基本表的语句格式1)create语句SQL 语言使用CREATE TABLE语句定义基本表,其基本格式如下:CREATE TABLE <表名>(<列名> <数据类型>[ <列级完整性约束条件> ][,<列名> <数据类型>[ <列级完整性约束条件>] ] …[,<表级完整性约束条件> ] );<表名>:所要定义的基本表的名字<列名>:组成该表的各个属性(列)<列级完整性约束条件>:涉及相应属性列的完整性约束条件<表级完整性约束条件>:涉及一个或多个属性列的完整性约束条件2)drop语句当某个基本表不再需要时,可以使用DROP TABLE语句删除它。

其一般格式为:DROP TABLE <表名> [RESTRICT | CASCADE];基本表删除后:①数据、表上的索引都删除②表上的视图往往仍然保留,但无法引用删除基本表时,系统会从数据字典中删去有关该基本表及其索引的描述。

数据库实验报告五

数据库实验报告五

姓名:学号:
专业班级:日期:
实验五:数据完整性
一、实验目的
在课程结束时,使用sql server2008用PRIMARY KEY、CHECK、FOREIGN KEY……REFERENCES、NOT NULL、UNIQUE等关键字验证sql server2008的实体完整性、参照完整性及用户定义完整性。

二、实验内容
1、在sql server2008中用PRIMARY KEY子句保证实体完整性;
2、在sql server2008中用FOREIGN KEY……REFERENCES子句保证参照完整性;
3、在sql server2008中用短语NOT NULL、UNIQUE、CHECK、DEFAULT保证用户定义完整性。

三、实验步骤
1、在企业管理器中为实验二所建立的数据库Student各表加完整性约束:
(1)定义每个表的主键;
详细步骤:
(2)SC表与Student表、Course表间的ForeignKey(外码)约束;
详细步骤:
(3)实现学生性别只能是“男”或“女”的check(检查)约束;
详细步骤:
2种方法:
1.)使用sql server2008可视化操作:
2.)使用T-SQL语句:
Alter table student
Add check (ssex= '男' or ssex= '女')
(4)SC表的成绩字段的缺省值为0
详细步骤:
2种方法:
1.)sql server2008可视化操作:
2.)使用T-SQL语句:
Alter table sc
Add default (0)
For grade
四实验小结。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如果没有进行区分,则会报错。 2. 预编译时,在定义主变量部分报错。如:ERROR: Syntax error at or near “char”。
答:这是因为在定义主变量时,varchar 型和 char 型变量的长度定义必须使用方括号而 不是原来用的圆括号,例如 deptname[20]不能定义为 deptname(20),改为方括号后即可顺利 通过。 3. 在连接数据库时,EXEC SQL CONNECT TO dbname@hostname:port [USER user-name]; 如果写成 EXEC SQL CONNECT TO 学生课程数据库@localhost:54321 “system”/”manager”; 出错。
char HSsex[2];
int
HSage;
int
NEWAGE;
EXEC SQL END DECLARE SECTION;
/*声明部分结束*/
long SQLCODE;
EXEC SQL INCLUDE sqlca;
/*定义 SQL 通信区*/
int main(void)
{
int
count = 0;
printf("UPDATE AGE(y/n)?");
do
{
scanf("%c",&yn);
}while(yn != 'N' && yn != 'n' && yn != 'Y' && yn != 'y');
if(yn == 'y' || yn == 'Y')
/*如果选择修改的操作。*/
{
printf("INPUT NEW AGE:");
行编译了。本实验直接使用命令行的方式对该 C 程序进行编译和链接。 (1)编译。 在编译过程中需要使用到 cl.exe 程序,cl.exe 是 Visual C++ 的编译器名称。如果安装
Visual C++在 C:\Program Files\Microsoft Visual Studio\VC98 下,则其编译器 cl.exe 所在路径 应该是 C:\Program Files\Microsoft Visual Studio\VC98\Bin。在 cl 后面可以加上各类参数命令, 进行不同的操作。本实验中使用到的“/c”命令是表示只编译,不链接,相当于在 Visual C++ 6.0 中,选择"Build"菜单下的"Compile"。编译命令如下:
二.编写含嵌入式 C 程序 test,扩展名为.pc。 EXEC SQL BEGIN DECLARE SECTION;
/*说明主变量 deptname,HSno,HSname,
char deptname[20];
*HSsex,HSage,NEWAGE。*/
char HSno[9];
char HSname[20];
《数据库系统概论》实验报告
题目:实验五 通过嵌入式 SQL 访问数据库 姓名 Vivian 日期 2006-1-1
实验内容:
编写嵌入式 C 程序,编程实现了对“学生课程数据库”的访问和操作:对 Student 表中 的年龄进行更新。系统每输出一个学生记录,询问用户是否更新。如果要更新,就输入新的 年龄。 一. 实验环境介绍。
/*其中参数 0 代表 SUCCESS*/ /*如果是第一行的话,先打出行头*/
printf("\n%-10s %-20s %-10s %-10s\n", "Sno", "Sname", "Ssex", "Sage");
printf("%-10s %-20s %-10s %-10d\n", HSno, HSname, HSsex, HSage);
char yn;
/*变量 yn 代表 yes 或者 no*/
printf("Please choose the department name(CS/MA/IS): "); /*为主变量 deptname 赋值*/
scanf("%s", &deptname);
EXEC SQL CONNECT TO 学生课程数据库@localhost:54321 USER
实验五是在之前完成的实验一的基础上进行的。 系统配置为:CPU: P3 800 内存:512MB 硬盘:30G
软件系统:WINDOWS 2000 ADVANCED SERVER。 在实验一中,我们已经成功安装了 KingbaseES V4.1,形成本实验所需要的环境。其中 安装路径为 C:\Program Files 目录下。
/*关闭游标。*/
EXEC SQL COMMIT WORK;
/*提交更新。*/
EXEC SQL DISCONNECT 学生课程数据库; /*断开连接。*/
}
三.对 C 程序进行处理,生成可执行文件。 本实验是在 windows 环境下对 C 程序进行预编译和编译、链接的。没有给出 Linux 环
境下的编译过程,读者如果有兴趣,可以自行实验。 1. 预编译。
scanf("%d",&NEWAGE);
/*用户输入新年龄,存放在主变量
EXEC SQL UPDATE Student
*NEWAGE 中。*/
SET Sage = :NEWAGE
WHERE CURRENT OF SX; /*对 Student 表中的年龄进行更新。*/
}
Hale Waihona Puke } EXEC SQL CLOSE SX;
cl /c /DWIN32 /I"C:\Program Files\Basesoft\KingbaseES\4.1\include" /Fotest.obj test.c (2)链接。 由于在编译时我们选用“/c”命令只对 test.c 进行了编译并没有进行链接,而该 C 程序执 行需要链接 esql.lib 函数库,所以在链接时我们需要指定这个库文件的路径。链接命令如下: link /out:test.exe test "C:\Program Files\Basesoft\KingbaseES\4.1\lib\esql.lib" 最后生成可执行文件 test.exe,即可实现具体功能。
/*打开游标。*/ /*用循环结构逐条处理结果集的记录*/
EXEC SQL FETCH SX INTO :HSno, :HSname, :HSsex,:HSage; /*游标向前推进一行,取结果送主变量*/
if (sqlca.sqlcode != 0)
break; if(count++ == 0)
本实验中,test.pc 存放在 C:\Program Files\Basesoft\KingbaseES\4.1\bin 目录下,与预处 理程序 esqlc 存放在同一目录下,这样做的目的是便于之后的三步处理过程,不需要特别指 定存放路径。如果存放在其他目录下,只需要在文件名前指定完整路径即可。
(1)“开始”—〉“运行”,输入 cmd 命令,进入命令行编辑器。 (2)命令行编辑器默认的路径为 C:\Documents and Settings\[用户名]>,我们首先需要 转到预处理程序 esqlc 所在的目录下。键入: cd C:\Program Files\Basesoft\KingbaseES\4.1\bin。 (3)进行预编译。
esqlc -I "C:\Program Files\Basesoft\KingbaseES\4.1\include" -o test.c test.pc (4)如果预编译成功,则自动生成一个.c 文件。结果提示可能会有一个“WARNING: EXEC SQL SQLCA: SQL language extension”,但对结果不造成影响。 2. 编译和链接。 经过预处理之后,生成了标准的 C 语言程序 test.c,就可以使用标准的 C 语言编译器进
答:在语法说明中连接数据库给出了三种指定用户名和口令的方式。但是在前面一定要 加上 USER 才是正确的,很容易忽略 USER 这个关键字造成预编译无法通过。
遇到的问题和解决方案:
1. 在进行预编译时,键入命令 esqlc -i "C:\Program Files\Basesoft\KingbaseES\4.1\include" -o test.c test.pc 出错。 答:这是由于大小写没有注意区分的原因。-I 的语法要求使用大写,而-o 是使用小写。
"SYSTEM"/"MANAGER";
/*连接数据库 TEST*/
EXEC SQL DECLARE SX CURSOR FOR /*说明游标,为查询和更新做准备*/
SELECT Sno, Sname, Ssex, Sage
FROM Student
WHERE SDept = :deptname;
EXEC SQL OPEN SX; for ( ; ; ) {
相关文档
最新文档