SQL数据库实验报告2
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实验报告(优秀范文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实验二报告数据库原理及应用实验报告实验2、sql的数据查询2.1实验目的熟悉sql语句的数据查询语言,能够sql语句对数据库进行单表查询、连接查询、嵌套查询、集合查询和统计查询。
2.2实验内容实验内容主要是对数据库进行查询操作,包括如下四类查询方式:(1)单表查询查询的目标表达式是所有列、指定列或指定列的操作。
?使用不同的保留字来消除重复行。
?对查询结果进行排序和分组。
集合分组使用集函数进行各项统计。
(2)连接查询笛卡尔连接和等效连接。
?自动连接。
?外部连接复合条件连接。
?多表连接。
(3)嵌套查询通过实验验证了子查询的两个限制。
?体验相关子查询和无关子查询之间的差异。
?调查四种谓词的用法,包括:第一类,in、notin;第二种类型是带有比较运算符的子查询;第三种类型是一些、任何或所有谓词的子查询,它查询最大值和最小值;第四类是带有exists谓词的子查询,它实现了“all”和其他情况(例如王红的“all”课程和女生的“all”选修课)(4)集合运算使用保留字联合进行收集或操作。
采用逻辑运算符and或or来实现集合交和减运算。
2.3实验步骤以university_mis数据库为例,该数据库中有四张来自实验1的表,其中score是每门课的考试成绩,scredit是学生所有考试合格课程所获得的积分总数,ccredit每门课程的学分数。
在数据库中,存在这样的联系:学生可以选择课程,一个课程对应一个教师。
在表reports中保存学生的选课记录和考试成绩。
在查询数据库之前,请输入以下限定元组图1.1、qidd_students表图1.2。
Qidd_uu教师表图1.3、qidd_courses表图1.4。
Qidd_uu报告表(1)查询性别为“男”的所有学生的名字并按学号升序排列。
(2)查询学生的选课结果、合格的课程结果,并将结果转换为分数。
完整的的计算公式为:[1+(考试成绩-60)*0.1]*ccredit。
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语句操作数据实验时间: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实验报告2011-S2
要求:
1.文件格式要求:
a. 将实验成果放入一个文件夹中,文件夹的内容包括:本实验报告、分离后的数
据库、如有查询代码(.sql文件)和其它文件也一并放入。
b. 文件夹以“学号姓名班级_S2”为文件名。
其中,S1表示这是实验1的报告,S
大写,以后的实验报告以类似方法编号顺延,注意:你的学号放在姓名前。
c. 注意:所有文件保存后关闭,然后再打包成RAR文件,以免提交的内容丢失或
打不开。
2.提交方式和时间:一周内完成,不得超过两周。
完成后将文件包发到我邮箱
bbwhs@。
3.报告格式和内容要求:
a. 内容和格式整齐。
大标题采用黑体四号字加粗,小标题采用小四号字加粗。
正
文采用五号宋体,单倍行距。
b. 贴图时请剪裁到适当大小,要保证打印时可以看清,但也不要太大以免“越界”。
c. 不要在报告中写与实验内容无关的话,内容要有条理、完整、并能突出重点,
要将遇到的主要问题说明。
4.主动查阅资料,坚持自己亲手完成实验,弄清每个步骤和相关原理。
(最新版)SQL数据库实验报告
西安邮电大学数据库课内实验报告书学院名称:计算机学院学生姓名:高丹专业名称:计算机科学与技术班级:1106班学号: (22)时间:2013.4—2013.5实验2 定义表和数据库完整性一、实验目的1.了解SQL Server 2000的基本数据类型、空值的概念,以及表的结构特点。
2. 学会使用T_SQL语句和企业管理器创建表结构和修改表结构。
3. 学会使用SQL Server 2000提供的数据完整性功能,并在创建表时定义表的数据完整性。
通过实验进一步理解数据完整性的概念及分类。
二、实验内容用T_SQL语句在Market数据库中创建客户基本信息表Cuetomers、货品信息表Goods、订单信息表Orders,它们的定义如下/*基本表的定义与创建*/CREATE TABLE Customers(CustomerID int IDENTITY(1,1)PRIMARY KEY,CName varchar(8)NOT NULL,Address varchar(50),City varchar(10),Tel varchar(20)UNIQUE,Company varchar(50),Birthday datetime,Type tinyint DEFAULT 1);CREATE TABLE Goods(GoodsID int CONSTRAINT C1PRIMARY KEY,GoodsName varchar(20)NOT NULL,Price money,Decription varchar(200),Storage int,Provider varchar(50),Status tinyint DEFAULT(0));CREATE TABLE Orders(OrderID int IDENTITY(1,1)CONSTRAINT C2PRIMARY KEY,GoodsID int NOT NULL REFERENCES Goods(GoodsID)ON DELETE CASCADE,/*表级完整性约束条件,参照约束为Goods(GoodID),删除时进行级联删除*/CustomerID int NOT NULL FOREIGN KEY(CustomerID)REFERENCES Customers(CustomerID)ON DELETE NO ACTION,/*表级完整性约束条件,参照约束为Customers(CustomerID),删除时不删除参照表中的被引用行*/Quantity int NOT NULL CONSTRAINT C3CHECK(Quantity> 0),Ordersum money NOT NULL,OrderData datetime DEFAULT(getdate()));实验3 表数据的插入、修改和删除一、实验目的掌握使用T_SQL语句和企业管理器对数据进行插入、修改和删除数据的操作,并体会数据完整性约束的作用,加深对数据完整性及其约束的理解。
数据库应用 实验报告2 查询操作及SQL语言应用
实验报告二 查询操作及SQL 语言应用实验类型:基本学时:4(分两次完成)班级:无机非(2) 日期:3月24日请输入你的班级和做实验的日期。
按照《数据库技术及应用——习题与实验指导》第一部分实验指导中“实验六 查询操作”和“实验二 SQL 语言应用”的实验内容,边完成各项实验操作,边按要求填写该实验报告。
一、实验目的1. 了解查询类型。
2. 掌握创建单表和多表选择查询的操作方法。
3. 掌握创建生成表查询的操作方法。
4. 掌握创建更新查询的操作方法。
5. 掌握创建SQL 查询的操作方法。
二、实验报告内容1. 打开自备优盘保存位置的“学号 姓名 英才学校数据库”,参照P.31图1-6-11~图1-6-14的表格内容,分别给“学号 姓名 英才学校数据库”数据库表中“学院”、“系”、“班级”和“学生”表输入数据(其中必须有自己院、系和班级的真实信息的记录),并将四张“表”粘贴到此:姓名:潘红星 错误!未找到引用源。
学号:1002010211错误!未找到引用源。
并将实验操作结果粘贴到此:级_学生查询”),并将实验操作结果粘贴到此:4.预习P.7“实验二SQL语言应用”中实验2-9~实验2-18的操作提示,参照P.33“实验六查询操作”中实验6-3~实验6-12的操作提示,使用查询“设计视图”创建SQL查询,并将定义中的每一个SQL编辑器窗口和查询结果的窗口粘贴到此:“查询1”(SQL编辑窗口)检索每位学生的姓名及生日“查询1”(选择查询窗口)检索出每位学生的姓名及生日“查询2”(SQL编辑窗口)检索男、女学生的人数“查询2”(选择查询窗口)检索出男、女学生的人数日“查询3”(SQL编辑窗口)检索每位学生所在班级“查询3”(选择查询窗口)检索出每位学生所在班级“查询4”(SQL编辑窗口)检索“软件工程”专业的全体学生“查询4”(选择查询窗口)检索出“软件工程”专业的全体学生“查询5”(SQL编辑窗口)检索每位学生所在学院、系和班级“查询5”(选择查询窗口)检索出每位学生所在学院、系和班级“查询6”(SQL编辑窗口)统计“J101”系全体男同学的人数“查询6”(选择查询窗口)统计出“J101”系全体男同学的人数“查询7”(SQL编辑窗口)检索男学生数3人及3人以上的班级“查询7”(选择查询窗口)检索出男学生数3人及3人以上的班级“查询8”(SQL编辑窗口)检索“计算机”学院院长姓名和电话以及系主任“查询8”(选择查询窗口)检索出“计算机”学院院长姓名和电话以及系主任“查询9”(SQL编辑窗口)检索“计算机”学院每位学生信息“查询9”(选择查询窗口)检索出“计算机”学院每位学生信息“查询10”(SQL编辑窗口)检索每个学生所选课程的成绩《信息技术应用》电子实验报告二 查询操作及SQL 语言应用将此电子实验报告以自己的学号姓名和实验序号为文件名(如:070000001张三 实验二)保存后上传到FTP 服务器“查询10” (选择查询窗口)检索出每个学生所选课程的成绩三、保存和上传实验报告注意将“学号 姓名 英才学校数据库”数据库文件保存在自备优盘的相应文件夹中,后续实验将反复应用。
实验2:SQL实验报告
实验2:SQL实验报告数据库原理与应用实验报告请提交纸质版实验报告!!!姓名:班级:学号: [实验名称]:SQL [实验日期]:[实验目的]:(1)掌握使用SQL语句创建表、修改表、删除表以及对表中数据进行增加、删除、修改、查询的方法。
(2)掌握使用SQL进行创建视图、查询视图以及创建索引等方法。
[实验要求]:请根据以下题目写出相应SQL语句。
[实验步骤描述]:表1 Users表(用户信息表)列名 username realname age balance 列名 goodsno goodsname price storage 列名 buyno username goodsno quantity buydate 含义用户名真实名称年龄账户余额含义商品编号商品名称价格库存数量含义交易记录编号用户名商品编号购买数量购买日期数据类型 VARCHAR(20) VARCHAR(16) TINYINT DECIMAL(7,2) 表2 Goods表(商品信息表)约束 PRIMARY KEY NOT NULL 大于0小于150 默认值为0 约束 PRIMARY KEY NOT NULL 大于0 大于0 约束 PRIMARY KEY FOREIGN KEY, NOT NULL FOREIGN KEY, NOT NULL 大于0 数据类型 CHAR(5) VARCHAR(20) DECIMAL(7.2) INT 表3 Buy表(购物记录表)数据类型 INT VARCHAR(20) CHAR(5) INT DATETIME数据库原理与应用实验报告1.按照表1、2、3中的要求创建表Users、Goods和Buy。
2.修改表Users,添加列address,变长字符串,最长30位。
3.修改表Goods,添加列weight,整型,列unit,定长字符串,最大长度4位。
4.删除表Users中的列address。
5.查询所有商品的goodsno和goodsname。
SQL实验报告二
实验二 SQL语言应用一、实验目的:熟练掌握基本表的定义、删除与修改,为后继学习作准备。
二、实验属性了解并掌握SQL查询分析器及企业管理器的使用;掌握基本表的定义、删除与修改。
三、实验仪器设备及器材预习教材第三章,熟悉SQL语句。
进一步熟悉SQL Server2000 开发环境。
四、实验要求1.预习教材第三章,熟悉SQL语句。
2.熟悉SQL Server2000 开发环境。
3.掌握单表查询语句的一般格式。
;4.掌握单表无条件、有条件查询及查询结果排序与分组。
5.掌握多表连接、嵌套和集合查询语句的一般格式及各种使用方法。
五、实验原理SQL语言应用。
六、实验步骤:一、单表查询1 无条件查询1查询全体学生的详细记录。
命令SELECT * FROM Student,结果如图:2查询全体学生的姓名(Sname)、学号(Sno)、所在系(Sdept)。
命令select * from Sc,结果如图:3查询全体学生的姓名(Sname)、出生年份及学号(Sno)。
命令SELECT Sname,2008-SageBirthday,SnoFROM Student4查询全体学生的姓名、出生年份和学号,要求用小写字母表示学号中的字母。
命令SELECT Sname,2008-SageBirthday,LOWER(Sno)Sn05查询选修了课程的学生学号。
命令SELECT SnoFROM Sc;2 条件查询1查询数学系全体学生的学号(Sno)和姓名(Sname)。
命令:2 查询所有年龄在18~22岁(包括18岁和22岁)之间的学生姓名(Sname)及年龄(Sage)。
命令:SELECT Sno,SnameFROM Student WHERE Sdept='数学' ;结果如图:3 查询年龄在18~22岁(包括18岁和22岁)之间的学生姓名(Sname)及年龄(Sage)。
(换一种方法实现)命令:(1)SELECT Sno,SnameFROM Student WHERE Sage BETWEEN 18and 22(2)SELECT Sno,SnameFROM Student WHERE Sage>=18 and Sage<=22结果如图:4 查询年龄不在18-22岁之间的学生姓名(Sname)及年龄(Sage)。
sql数据库实训报告
sql数据库实训报告SQL数据库实训报告。
一、实训背景。
本次实训是针对SQL数据库的设计与应用进行的,旨在通过实际操作,加深对SQL数据库的理解与掌握,提高数据库设计与管理能力。
二、实训内容。
1. 数据库设计与创建。
在实训开始阶段,我们首先学习了数据库的设计原理与方法,包括实体关系模型(ERM)的绘制,数据库表的设计,以及数据类型的选择等。
在此基础上,我们使用SQL语句创建了一个包含多个表的数据库,并进行了数据的插入与查询操作。
2. 数据库查询与管理。
接着,我们学习了SQL语言的基本语法与常用查询命令,包括SELECT、UPDATE、DELETE、INSERT等,以及各种条件筛选、排序、分组与连接操作。
通过实际练习,我们掌握了如何编写高效、准确的SQL查询语句,并对数据库中的数据进行管理与维护。
3. 数据库应用与优化。
在实训的最后阶段,我们将学习如何将数据库应用到实际的项目中,包括数据库的备份与恢复、性能优化、索引设计等方面的内容。
通过这些内容的学习,我们将能够更好地应对实际项目中的数据库管理与应用需求。
三、实训收获。
通过本次实训,我对SQL数据库的设计与应用有了更深入的理解与掌握。
我不仅学会了如何设计与创建数据库,还能够编写复杂的SQL查询语句,并对数据库进行有效管理与优化。
这些知识与技能对我的职业发展将起到重要的推动作用。
四、实训反思。
在实训过程中,我深刻体会到了理论与实践相结合的重要性。
通过实际操作,我才真正理解了课堂上学到的知识,并且能够运用到实际工作中。
同时,我也意识到数据库设计与管理是一个复杂而又细致的工作,需要不断地学习与实践,才能够不断提高自己的能力与水平。
五、实训展望。
在未来的学习与工作中,我将继续深入学习数据库相关的知识,不断提升自己的数据库设计与管理能力。
我希望能够在实际项目中应用所学到的知识,为企业的数据管理与应用提供更加专业、高效的解决方案。
六、结语。
通过本次实训,我对SQL数据库有了更加全面的认识与掌握,我相信这些知识与技能将成为我未来发展的重要基础。
SQL语言实验报告2
一、实验目的与要求本实验课程的目的:掌握程序文件的建立、编辑和运行的方法,掌握分支结构、循环结构和过程调用的程序设计方法,利用程序对数据中的数据进行管理。
本实验课程的基本要求:1)创建、编辑程序文件2)调用程序文件3)利用分支结构设计程序文件4)利用循环结构设计程序。
二、实验方案1. 先做实验书上P42-45面的实验8-1,8-3,8-42. 已知成绩.dbf含有学号、平时成绩、考试成绩、等级等字段,前三个字段已存有某班学生的数据,平时成绩、考试成绩均填入了百分制数。
请以平时成绩20%、考试成绩80%的比例确定等级并填入等级字段。
等级评定办法是:90分以上为优,75~89为良,60~74为及格,60分以下不及格。
请编程实现。
三、实验结果和数据处理1. 先做实验书上P42-45面的实验8-1,8-3,8-4(1)实验8-1 创建和编辑程序文件(程序1.prg)(2)实验8-3 利用分支结构设计程序(程序2.prg),实现如下功能:输入任意数X,X大于0时,求2X,若X小于0,则求X的平方。
确,若密码正确,显示“登陆成功”,若密码不正确可重试,但只能有3次机会,否则结束程序。
考试成绩均填入了百分制数。
请以平时成绩20%、考试成绩80%的比例确定等级并填入等级字段。
等级评定办法是:90分以上为优,75~89为良,60~74为及格,60分以下不及格。
请编程实现。
编程前的表格(等级字段尚未填入):编程实现等级字段的自动填入:四、结论通过老师的悉心教导和本人努力学习,本人掌握了程序文件的建立、编辑和运行的方法,掌握了分支结构、循环结构和过程调用的程序设计方法,能利用程序对数据中的数据进行管理了。
五、问题与讨论问题:无。
实验心得体会:其实SQL并不难,只要多些练习就可以很熟练地掌握了。
O(∩_∩)O哈哈~。
SQL数据库实验报告2
南京理工大学紫金学院实验报告书课程名称:《数据库系统》实验题目:实验2用SQL语句创建数据库和表班级: 0906012 学号: 090601257姓名:朱书宏指导教师:叶庆生一、实验目的1.更熟悉SQL语句对数据库的查询命令2. 对数据库的实际运用有一定的认识3.熟悉SQL的操作界面二、实验内容1.根据下列数据库模式Product(marker, model, type)PC(model, speed, ram, hd, rd, price)Laptop(model, speed, ram ,hd, screen, price)Printer(model, color, type, price)用SQL语句写出后面的查询,并使用习题1提供的资料写出查询结果。
* a) 找出所有价格在$1200以下的PC机的型号、速度和硬盘大小。
* b) 要求同(a),但是重命名列speed为megahertz以及列hd为gigabytes。
c) 找出所有打印机制造厂商。
d) 找出价格在$2000以上的手提电脑的型号、内存大小和屏幕尺寸。
* e) 找出关系Printer中所有彩色打印机元组,注意属性color是一个布尔类型。
f) 找出价格少于$2000并拥有12X或16X DVD的PC机的型号、速度和硬盘尺寸。
把rd属性看作一个字符串属性。
* g) 查询硬盘容量至少在30G的手提电脑制造商及电脑的速度。
* h) 查询制造商B制造的任意类型的所有产品的型号和价格。
i) 查询只卖手提电脑不卖PC的厂商。
! j) 查询出现在两种或两种以上PC中的硬盘的尺寸。
! k) 查询每对具有相同速度和RAM的PC机,每一对只出现一次。
例如,如果(i,j)符合,则(j,i)就不能出现在结果中出现。
!!l) 查询生产至少两种速度大于等于1000的计算机(PC或手提)的厂商。
2.根据下列数据库模式Classes ( class , type , country , numCuns , bore , displacement )Ships( name , class , launched )Battles( name , date )Outcomes ( ship , battle , result )用SQL语句写出后面的查询,并使用习题2给出的数据库模式和资料写出查询结果。
SQL 数据库实验报告2
3.在数据库名称中输入 TSGL4.点击确定,TSGL数据库建立完成,出现如下界面。
(2)建立readers(读者信息表)readers表结构列名描述数据类型允许空值说明ReaderID 读者编号Char(10) NO 主键Name 读者姓名Char(8) YESRederType 读者类型Int YES 外键BorrowedQuantity 已借数量int YES点击“TSGL”左上角“新建查询”处,创建语句:Create table readers(ReaderID char(10) primary key,Name char(8),RederType int,BorrowedQuantity int );输入完毕后,点击执行,确认语句无误后,点击保存。
(3)建立books(图书信息表)books 表的结构列名含义数据类型允许空值说明BookID 图书编号char(15) NO 主键Name 图书名称varchar(50) YESAuthor 作者char(8) YESPublisher 出版社varchar(30) YES PublishedDate 出版日期smalldatetime YESPrice 价格real YES点击“TSGL”左上角“新建查询”处,创建语句:Create table books(BookID char(15) primary key,Name varchar(50),Author char(8),Publisher varchar(30),PublishedDate smalldatetime,Price real);输入完毕后,点击执行,确认语句无误后,点击保存。
(4)建立borrowinf(借阅信息表)borrowinf表的结构列名含义数据类型允许空值说明ReaderID 读者编号char(10) NO主键(外键) BookID 图书编号char(15) NOBorrowedDate 借阅日期datetime NOReturnDate 归还日期datetime YES点击“TSGL”左上角“新建查询”处,创建语句:Create table borrowinf(ReaderID char(10),BookID char(15),BorrowedDate datetime not null,ReturnDate datetime,Primary key(ReaderID,BookID),Foreign key(ReaderID)references readers(ReaderID),Foreign key(BookID)references books(BookID), );输入完毕后,点击执行,确认语句无误后,点击保存。
sql 数据库实验报告2
《最新数据库管理系统》课程实验报告一、实验目的1、通过实验,使学生全面了解最新数据库管理系统的基本内容、基本原理。
2、牢固掌握SQL SERVER的功能操作和Transact-SQL语言。
3、紧密联系实际,学会分析,解决实际问题。
学生通过小组项目设计,能够运用最新数据库管理系统于管理信息系统、企业资源计划、供应链管理系统、客户关系管理系统、电子商务系统、决策支持系统、智能信息系统中等。
二、实验内容1. 练习使用Transact-SQL语句创建备份数据库和使用SQL Server Management Studio工具还原数据库。
2. 练习使用Transact-SQL语句和SQL Server Management Studio工具创建和修改表的结构以及使用IDENTITY属性。
3.练习使用Transact-SQL语句操纵表中数据。
三、执行情况1. 练习使用Transact-SQL语句创建备份数据库和使用SQL Server Management Studio工具还原数据库。
使用命令创建备份设备使用BACKUP DATABASE语句执行增量数据库备份备份数据库和日志在D盘新建名为“SQLServerDBData ”的文件夹,然后进行编写代码。
执行还原操作2. 练习使用Transact-SQL语句和SQL Server Management Studio工具创建和修改表的结构以及使用IDENTITY属性。
使用CREATE TABLE语句创建students表使用CREATE TABLE语句创建orders表使用CREATE TABLE语句创建book使用CREATE TABLE语句创建包含计算列的表使用CREATE TABLE语句创建全局临时表使用ALTER TABLE语句增加表中的列使用ALTER TABLE语句删除表中的列使用ALTER TABLE语句更改列的数据类型创建两个IDENTITY表向第一个表中插入数据查看第一个表中的数据将北京、上海、香港换成汉语拼音后产生效果如下图:将InfoName 的数据类型改为nchar(10),产生效果如下图:3.练习使用Transact-SQL语句操纵表中数据。
数据库实验报告二SQL操作
湘潭大学数据库实验报告SQL操作一、实验目的1. 了解和掌握建模软件的使用;2. 了解和掌握 SQL Server Management Studio的使用;3. 增强分析问题,设计模型与方案的能力;2、实验环境1. 硬件:数据库服务器,客户机,局域网;2.软件:MS SQL Server 2008 ,建模软件;3、实验内容根据给定的问题建立数据库模型,在MS SQL Management Studio 中建立该数据库,并利用SQL语句建立表格与视图,录入数据,进行查询,插入,删除,修改等操作,编写过程,函数,触发器等;给定问题如下:大学田径运动会管理系统假设:1.一个学生可以参加多个项目,一个项目可以有若干学生参加;2.一个学生参加一个项目,仅有一个成绩;3.一个项目要么是单人项目,要么是集体项目,单人项目每个名次只有一个,集体项目每个名次有多人;4.一个班有多个学生,一个学生只能属于一个班;5.一个学院有多个班,一个班只能属于一个学院;6.每个学院作为一个参赛单位,只能有一名教师担任领队;7.每个项目都有一个由某学院某年创立的记录。
4、实验准备1.理论知识预习及要求①使用SQL语句建立数据库;②使用SQL语句进行查询,修改等操作;③使用SQL语句建立过程,函数,触发器等;④使用SQL创建数据表;2.实验指导书预习及要求上机前先预习数据库原理指导书的实验,理解和掌握SQL语言的常用操作。
5、实验原理或操作要点简介注意服务器要先启动,才能与服务器建立连接。
使用SQL命令,完成预定功能。
6、实验步骤1. 分析给定问题,设计E-R 模型;2.根据E-R图设计出该问题的关系数据模型,分析数据模型并规范之;关系模型1. 学生(学号,姓名,班级编号,性别,年龄,院系号);2. 班级(班级编号,班级名,院系号,人数);3. 院系(院系号,院名);4. 教师(教师编号,姓名,院系号,性别,年龄);5. 裁判(裁判号,姓名,岗位);6. 项目(项目名称,类型,赛道,最优记录);7. 比赛(学号,项目名称,成绩);8. 裁决(裁判号,项目名称);9. 领队(教师编号,院系号);10. 班院(班级编号,院系号);11. 学班(学号,班级编号);关系数据模型学生班级院系教师裁判项目比赛裁决领队班院学班x3.连接服务器,创建用户2009551102,并设置好权限;用户权限4.建立数据库5.为该数据库设计合适的索引;6.依据关系数据模型在数据库中建立各表;点击新建查询打开查询器在里面键入代码创建数据表依此创建各表建表完成建好所有表并设置好约束,索引后系统自动生成关系图7.对表进行插入,更新,删除等操作;在表学生中进行操作,以王强为例。
数据库原理实验报告二-2 SQL使用
注意:实验过程必须提供主要关键的、可证明问题的实际运行图并结合文字说明予以描述
实
验
结
论
描
述
在这个试验中,我对数据的简单了解SQL功能,从DDL、DML、DCL三个层面使用数据库建立、基表生成、查改增删、权限分配等功能使用及学习,关系代数的计算原理及实现。同时我附加了数据。并通过试验上机对单表查询、多表查询、嵌套查询进行了简单的实现,并对聚类函数做了简单初步的使用。
收获:通过老师的指导我对代码的编写有了很大的提高,从零到初步了解的转变,这次试验我虽然实现的问题不多,但给我的收获很多。
1.Count(S#)人数在Count(S#)后面空格加“人数”,使得查询的结果明了清晰。
2.“=”与“like”的小区别。我的理解:“=”接纯数字,“like”后接字符串。
不足:1.很多语句用的不熟悉,容易写错,浪费了很多时间。
2.还有删除存在问题
解决:上课认真听讲,课后多写多练。
下次试验向老师请教,把这次试验中存在的问题解决(delete)。
实验人学号
机号
445-F08
签名
实
验
成
绩
指导教师(签名/日期)
2、实验数据删除的各种情况,并体会完整性的制约因素。
实
验
过
程
描
述
一附加:
二、单表查询:在[zhh].[dbo].[S]中查询年龄为21的学生学号、姓名和性别。
三、多表查询:统计没门课程的学生选修人数,要求显示课程号、课程名和学生人数。
四、嵌套查询:在基本表S和sc中检索至少不学C2,C4课程的学生学号。
数据库原理实验报告二-2
sql数据库实验报告
sql数据库实验报告SQL数据库实验报告一、引言SQL(Structured Query Language)是一种用于管理关系型数据库的编程语言。
在本次实验中,我们使用SQL语言进行了数据库的设计、创建和操作,以及对数据库的查询和更新等操作。
本报告将详细介绍实验的目的、设计思路、实验过程和实验结果等内容。
二、实验目的本次实验的主要目的是熟悉SQL语言的使用,掌握数据库的设计和操作技巧。
通过实际操作,加深对数据库原理和相关知识的理解,并能够灵活运用SQL语言进行数据库的管理和操作。
三、实验设计本次实验的数据库设计基于一个图书馆管理系统。
我们需要设计多个表格,包括图书、读者、借阅记录等,并建立相应的关系。
为了实现这一目标,我们采用了以下步骤:1. 创建数据库:首先,我们使用SQL语句创建一个新的数据库,命名为"Library"。
2. 创建表格:接下来,我们根据需求创建了多个表格,包括"Books"、"Readers"和"BorrowRecords"等。
每个表格都有相应的字段,用于存储相关数据。
3. 设计关系:在创建表格的过程中,我们需要考虑不同表格之间的关系。
例如,图书表格和读者表格之间可以建立借阅关系,通过读者ID和图书ID进行关联。
4. 插入数据:创建表格后,我们使用SQL语句向表格中插入测试数据。
这些数据包括图书的名称、作者、出版日期等信息,以及读者的姓名、年龄、性别等信息。
5. 查询和更新:最后,我们使用SQL语句进行数据库的查询和更新操作。
通过编写合适的查询语句,我们可以实现对图书、读者和借阅记录等数据的检索和修改。
四、实验过程在实验过程中,我们按照上述设计思路一步步进行操作。
首先,我们使用SQL 语句创建了一个名为"Library"的数据库。
接着,我们创建了三个表格,分别是"Books"、"Readers"和"BorrowRecords"。
SQL实训报告
SQL实训报告SQL实训报告(通用5篇)随着个人的素质不断提高,报告不再是罕见的东西,不同种类的报告具有不同的用途。
我敢肯定,大部分人都对写报告很是头疼的,以下是小编整理的SQL实训报告,希望能够帮助到大家。
SQL实训报告篇1一、实验目的SQL(Structured Query Language)语言是关系数据库的标准语言。
是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询,SQL语言是一个通用的、功能极强的关系数据库语言。
本次实验了解SQL语言中DDL语言的CREATE、DROP、ALTER 对表、索引、视图的操作,掌握在Navicat for MySQL中用DDL语言进行对表、索引、视图的增加、删除和改动。
掌握使用SQL语句增加或删除约束,加深对完整性概念的理解,达到灵活应用的目的。
掌握使用SQL语句定义和删除同义词。
二、实验要求1、实验前:预习实验内容,学习相关知识。
2、实验中:按照实验内容要求进行实验,实验时注意每种SQL语句的基本命令及各个关键字的含义,做好实验记录。
3、实验后:分析实验结果,总结实验知识,得出结论,按格式写出实验报告。
4、在整个实验过程中,要独立思考、独立按时完成实验任务,不懂的要虚心向教师或同学请教。
5、要求按指定格式书写实验报告,且报告中应反映出本对次实验的总结,下次实验前交实验报告。
三、实验的重点与难点1、重点:(1)用SQL语句定义表结构(创建、修改和删除)。
(2)用SQL语句定义索引(创建、删除)。
(3)用SQL语句定义视图(创建、删除)。
(4)用SQL语句定义同义词(创建、删除)。
2、难点:完整性约束的定义、增加及删除。
同义词的定义与删除。
四、仪器设备及用具硬件:投影仪、每位同学分配已连接校园网PC机一台。
软件:本机已安装MySQL 5.5数据库平台。
五、教学过程(一)实验预习(1)熟悉SQL中的CREATE、DROP、ALTER语句的格式及所用的关键字含义及用法。
SQL实验二:数据库查询实验报告
SQL实验二:数据库查询实验报告实验二数据库的查询实验一、实验目的和要求(1)掌握SQL Server查询分析器的使用方法,加深对SQL和Transact-SQL语言的查询语句的理解。
(2)熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。
(3)熟练掌握数据查询中的分组、统计、计算和组合的操作方法。
二、实验内容和原理在实验一定义的“学生成绩数据库”中,使用T-SQL语句完成以下查询:(1)求计算机系学生的学号和姓名。
(2)求选修了数学的学生学号、姓名和成绩。
(3)求选修01课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
(4)查找选修课程的平均成绩位于前三名的学生的学号。
(5)查询计算机系的姓刘且单名的学生的信息。
(6)查询至少选修两门课程的学生学号。
(7)查询学生的学号、课程号以及对应成绩与所有学生所有课程的最高成绩的百分比。
(8)查询选修“数据库”课程,且成绩在80分以上的学生的学号和成绩。
(9)查询所有姓“王”的同学没有选修的课程名。
(请分别用exists和in完成该查询)(10)查询选修了全部课程的学生的姓名。
(请至少写出两种查询语句)(11)求选修了学生“*****”所选修的全部课程的学生学号和姓名。
(12)查询每一门课的间接先修课。
(13)列出所有学生所有可能的选课情况。
(14)列出每个学生的学号及选修课程号,没有选修的学生的学号也一并列出。
(15)输出与“张三”同性别并位于同一个系的所有同学的姓名。
(请至少写出两种查询语句)(16)查询至少被两名男生选修的课程名。
(17)对被两名以上学生所选修的课程统计每门课的选课人数。
要求输出课程号和选修人数,查询结果按人数降序排列;若人数相同,按课程号升序排列。
(18)列出选修课程超过3门的学生姓名及选修门数。
(19)检索至少选修课程号为01和03的学生姓名。
(20)检索至少选修课程“数学”和“操作系统”的学生学号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南京理工大学紫金学院实验报告书课程名称:《数据库系统》实验题目:实验2用SQL语句创建数据库和表班级:0906012学号:090601257姓名:朱书宏指导教师:叶庆生一、实验目的1.更熟悉SQL语句对数据库的查询命令2. 对数据库的实际运用有一定的认识3.熟悉SQL的操作界面二、实验内容1.根据下列数据库模式Product(marker, model, type)PC(model, speed, ram, hd, rd, price)Laptop(model, speed, ram ,hd, screen, price)Printer(model, color, type, price)用SQL语句写出后面的查询,并使用习题1提供的资料写出查询结果。
* a) 找出所有价格在$1200以下的PC机的型号、速度和硬盘大小。
* b) 要求同(a),但是重命名列speed为megahertz以及列hd为gigabytes。
c) 找出所有打印机制造厂商。
d) 找出价格在$2000以上的手提电脑的型号、内存大小和屏幕尺寸。
* e) 找出关系Printer中所有彩色打印机元组,注意属性color是一个布尔类型。
f) 找出价格少于$2000并拥有12X或16X DVD的PC机的型号、速度和硬盘尺寸。
把rd属性看作一个字符串属性。
* g) 查询硬盘容量至少在30G的手提电脑制造商及电脑的速度。
* h) 查询制造商B制造的任意类型的所有产品的型号和价格。
i) 查询只卖手提电脑不卖PC的厂商。
! j) 查询出现在两种或两种以上PC中的硬盘的尺寸。
! k) 查询每对具有相同速度和RAM的PC机,每一对只出现一次。
例如,如果(i,j)符合,则(j,i)就不能出现在结果中出现。
!!l) 查询生产至少两种速度大于等于1000的计算机(PC或手提)的厂商。
2.根据下列数据库模式Classes ( class , type , country , numCuns , bore , displacement )Ships( name , class , launched )Battles( name , date )Outcomes ( ship , battle , result )用SQL语句写出后面的查询,并使用习题2给出的数据库模式和资料写出查询结果。
a) 找出至少装备10门火炮的船只所属类别名和制造国家。
b) 找出在1918年以前下水的舰船的名字,并且把结果列名改为ShipName。
c) 找出所有在战役中被击沉的船只和那次战役的名字。
d) 找出具有相同类别名的所有船只。
e) 找出所有以”R.”字符开头的船只的名字。
! f) 找出所有包括三个或三个以上单词的船只名字(例如King George V)。
g)找出重量超过35000吨的船只。
h)找出参加过Guadalcanal战役的船只的名字、排水量和火炮数量。
i)列出所有数据库中提到的船只(注意,并非所有的船只都出现在ships关系中)。
!j)找出同时具有战列舰和巡洋舰的国家。
!k)找出曾在某次战役中受创但后来又在其他战役中出现的船只。
!l) 找出参战船只至少有三艘来自同一个国家的战役。
三、实验结果1.a) 找出所有价格在$1200以下的PC机的型号、速度和硬盘大小。
select model,speed,hdfrom pcwhere price<1200b)要求同(a),但是重命名列speed为megahertz以及列hd为gigabytes。
select model,speed as megahertz,hd as gigabytesfrom pcwhere price<1200c)找出所有打印机制造厂商。
select distinct makerfrom productwhere type='printer'd)找出价格在$2000以上的手提电脑的型号、内存大小和屏幕尺寸。
select model,ram,screenfrom laptopwhere price>2000e)找出关系Printer中所有彩色打印机元组,注意属性color是一个布尔类型。
select model,type,pricefrom printerwhere color='true'f)找出价格少于$2000并拥有12X或16X DVD的PC机的型号、速度和硬盘尺寸。
把rd属性看作一个字符串属性。
select model,speed,hdfrom pcwhere price<2000 and rd='12xDVD'or rd='16xDVD'g)查询硬盘容量至少在30G的手提电脑制造商及电脑的速度。
select maker,speedfrom product,laptopwhere laptop.model=product.model and laptop.hd>30h)查询制造商B制造的任意类型的所有产品的型号和价格。
select model,pricefrom pcwhere model in(select model from product where maker='B') select model,pricefrom printerwhere model in(select model from product where maker='B') select model,pricefrom laptopwhere model in(select model from product where maker='B')i)查询只卖手提电脑不卖PC的厂商。
select distinct makerwhere maker not in(select maker from product where type='pc')and type='laptop'j)查询出现在两种或两种以上PC中的硬盘的尺寸。
select hdfrom pcgroup by hdhaving count(hd)>=2k)查询每对具有相同速度和RAM的PC机,每一对只出现一次。
例如,如果(i,j)符合,则(j,i)就不能出现在结果中出现。
select pc1.model,pc1.speed,pc1.ramfrom pc as pc1,pc as pc2where pc1.speed=pc2.speed and pc1.ram=pc2.ram and pc1.model!=pc2.modell)查询生产至少两种速度大于等于1000的计算机(PC或手提)的厂商。
select distinct pc1.makerfrom product as pc1 ,pc,product as pc2,laptopgroup by laptop.ram,pc.ram,pc1.maker,pc2.maker,pc1.model,pc2.model having(laptop.ram >=1000 or pc.ram>=1000 )and pc1.maker=pc2.maker and pc1.model!=pc2.model;2.a)找出至少装备10门火炮的船只所属类别名和制造国家。
select country,typewhere numGuns>=10b) 找出在1918年以前下水的舰船的名字,并且把结果列名改为ShipName。
select name as shipnamefrom shipswhere launched<1918c) 找出所有在战役中被击沉的船只和那次战役的名字。
select ship,battlefrom outcomeswhere result='sunk'd) 找出具有相同类别名的所有船只。
select distinct ship1.class, ship1.typefrom classes as ship1,classes as ship2where ship1.type=ship2.type and ship1.class!=ship2.class order by typee) 找出所有以”R.”字符开头的船只的名字。
select namefrom shipswhere name like'R%'f) 找出所有包括三个或三个以上单词的船只名字(例如King George V)。
select shipfrom outcomeswhere ship like'% % %'or ship like'% % % %';g)找出重量超过35000吨的船只。
select namefrom ships,classeswhere ships.class=classes.class and displacement>35000h)找出参加过Guadalcanal战役的船只的名字、排水量和火炮数量。
select name,displacement,numGunsfrom classes,ships,outcomeswhere ships.class=classes.class and =outcomes.ship and battle='Guadalcanal'i)列出所有数据库中提到的船只(注意,并非所有的船只都出现在ships关系中)。
select distinct from ships;select distinct shipfrom outcomeswhere ship not in(select distinct from ships)j)找出同时具有战列舰和巡洋舰的国家。
select distinct c1.countryfrom classes as c1, classes as c2where c1.type='bc'and c2.type='bb'and c1.country=c2.country;k)找出曾在某次战役中受创但后来又在其他战役中出现的船只。
select c1.shipfrom outcomes as c1,outcomes as c2where c1.result='damaged'and c2.result='ok,sunk,damage'and c1.ship=c2.shipl) 找出参战船只至少有三艘来自同一个国家的战役。