SQL语言的应用实验报告 南京邮电大学
南邮数据库基础教程实验报告
实验报告〔201 5 / 201 6 学年第二学期〕课程名称数据库系统与设计实验名称数据库系统程序设计与分析实验时间201 6年6月3/17/22/24 日指导单位指导教师学生班级学号学院(系) 电脑学院专业实验报告实验报告insert into PC values(1010,,2048,300,770);insert into PC values(1011,,2048,160,959);insert into PC values(1012,,1024,160,649);insert into PC values(1013,,512,80,529);insert into Laptop values(2001,,2048,240,,3673);insert into Laptop values(2002,,1024,80,,949);insert into Laptop values(2003,,512,60,,549);insert into Laptop values(2004,,512,60,,1150);insert into Laptop values(2005,,1024,120,,2500);insert into Laptop values(2006,,2048,80,,1700);insert into Laptop values(2007,,1024,120,,1429);insert into Laptop values(2008,,1024,100,,900);insert into Laptop values(2009,,512,80,,680);insert into Laptop values(2010,,2048,160,,2300);insert into Printer values(3001,'true','ink_jet',99); insert into Printer values(3002,'false','laster',239); insert into Printer values(3003,'true','laster',899); insert into Printer values(3004,'true','ink_jet',120); insert into Printer values(3005,'false','laster',120);insert into Printer values(3006,'true','ink_jet',100); insert into Printer values(3007,'true','laster',200);insert into Product values('A',1001,'pc');insert into Product values('A',1002,'pc');insert into Product values('A',1003,'pc');insert into Product values('A',2004,'laptop');insert into Product values('A',2005,'laptop');insert into Product values('A',2006,'laptop');insert into Product values('B',1004,'pc');insert into Product values('B',1005,'pc');insert into Product values('B',1006,'pc');insert into Product values('B',2007,'laptop');insert into Product values('C',1007,'pc');insert into Product values('D',1008,'pc');insert into Product values('D',1009,'pc');insert into Product values('D',1010,'pc')insert into Product values('D',3004,'printer');insert into Product values('D',3005,'printer');insert into Product values('E',1011,'pc');insert into Product values('E',1012,'pc');insert into Product values('E',1013,'pc');insert into Product values('E',2001,'laptop');insert into Product values('E',2002,'laptop');insert into Product values('E',2003,'laptop');insert into Product values('E',3001,'printer');insert into Product values('E',3002,'printer');insert into Product values('E',3003,'printer');insert into Product values('F',2008,'laptop');insert into Product values('F',2009,'laptop');insert into Product values('G',2010,'laptop')insert into Product values('H',3006,'printer');insert into Product values('H',3007,'printer');实验二A〕SELECT maker,speedFrom Product,Laptopwhere Laptop.hd>=30 AND Laptop.model=Product.modelB〕SELECT Product.model,priceFrom Product,PCWhere Product.maker='B'AND Product.model=PC.model UNIONSELECT Product.model,priceFrom Product,LaptopWhere Product.maker='B'AND Product.model=Laptop.model UNIONSELECT Product.model,priceFROM Product,PrinterWHERE Product.maker='B'AND Product.model=Printer.modelC〕SELECT makerFrom Product PWhere P.type='laptop'EXCEPTSELECT makerFrom Product PWhere P.type='pc'D〕SELECT DISTINCT p.hdFROM PC p,PC qWHERE q.hd=p.hd AND p.model>q.modelE〕SELECT p.model AS MODEL1,q.model AS MODEL2FROM PC p,PC qWHERE p.speed=q.speed AND p.ram=q.ram AND p.model>q.modelF〕SELECT p.makerFROM (SELECT E.maker,F.modelFROM Product E,PC FWHERE F.speed> 3.0 AND E.model=F.modelUNIONSELECT G.maker,H.modelFROM Product G,Laptop HWHERE H.speed> 3.0 AND G.model=H.model)pGROUP BY p.makerHAVING COUNT(p.model)>= 2实验三A〕SELECT makerFROM Product,(SELECT modelFROM PCWHERE PC.speed>)pWHERE Product.model=p.modelSELECT makerFROM Product JOIN PCON Product.model=PC.modelWHERE speed>B〕SELECT p.priceFROM Printer pWHERE p.price>=ALL(SELECT priceFROM Printer)SELECT MAX(price)AS price FROM PrinterC〕SELECT p.modelFROM Laptop pWHERE p.speed<=(SELECT MIN(speed)FROM PC)SELECT p.modelFROM Laptop pWHERE p.speed<=ALL(SELECT speedFROM PC)D〕SELECT p.modelFROM (SELECT model,priceFROM PCUNIONSELECT model,priceFROM LaptopUNIONSELECT model,priceFROM Printer)pWHERE p.price>=ALL(SELECT priceFROM PCUNIONSELECT priceFROM LaptopUNIONSELECT priceFROM Printer)E〕SELECT makerFROM ProductWHERE model=(SELECT modelFROM PrinterWHERE price=(SELECT MIN(price)AS priceFROM Printer))SELECT p.makerFROM Product p,Printer qWHERE p.model=q.model AND q.price<=ALL(SELECT priceFROM Printer)F〕SELECT makerFROM Product p,PC qWHERE p.model=q.modelAND q.ram<=ALL(SELECT ramFROM PC)AND q.speed>=ALL(SELECT speedFROM PC)实验四A〕SELECT AVG(speed)AS AVGSPEEDFROM PCB〕SELECT AVG(speed)AS AVGSPEEDFROM PCWHERE price> 1000C〕SELECT AVG(price)AS AVGPRICEFROM PCWHERE model IN(SELECT modelFROM ProductWHERE maker='A')D〕SELECT AVG(p.price)AS AVGPRICEFROM (SELECT model,priceFROM PCUNIONSELECT model,priceFROM Laptop)pWHERE p.model IN(SELECT modelFROM ProductWHERE maker='D')E〕SELECT speed,AVG(price)AS AVGPRICEFROM PCGROUP BY speedF〕SELECT maker,AVG(screen)AS AVGSCREENFROM Product p JOIN Laptop q ON p.model=q.model GROUP BY makerG〕SELECT makerFROM ProductWHERE type='PC'GROUP BY makerHAVING COUNT(model)>= 3H〕SELECT maker,MAX(price)AS MAXPRICEFROM Product p JOIN PC q ON p.model=q.model GROUP BY makerI〕SELECT speed,AVG(price)AS AVGPRICEFROM PCWhere speed>GROUP BY speedJ〕SELECT AVG(hd)AS AVGHDFROM Product p JOIN PC q ON p.model=q.model WHERE maker IN(SELECT makerFROM ProductWhere type='Printer')实验报告。
数据库原理与应用实验报告sql语言的使用
课内实验报告课程名:数据库原理与应用任课教师:徐润森专业:信息工程学号:姓名:二○一○至二○一一年度第 1 学期南京邮电大学经济与管理学院《数据库原理与应用》课程实验第 1 次实验报告实验内容及基本要求:实验项目名称:SQL语言的使用实验类型:验证每组人数: 1实验内容及要求:在数据库环境SQL SERVER或ORACLE中了解SQL的概念、语法和使用方法,熟练使用SQL进行建立数据库、表、索引、视图,及进行查询和更新等操作。
实验结果:1.建立课本P75的SPJ数据库--建立S表、P表、J表和SPJ表。
(1)P表建立输入内容:P表显示:(2)J表的建立:输入内容:J表显示:视图创建:(3)S表建立:输入内容:S表显示:(4)SPJ表的建立:输入内容和视图建立:SPJ表的显示:2.课本P75(1)求供应工程J1零件的供应商号码SNO;(2)求供应工程J1零件P1的供应商号码SNO;(3)求供应工程J1零件为红色的供应商号码SNO;(4)求没有使用天津供应商生产的红色零件的工程号JNO;(5)求至少了供应商S1所供应的全部零件的工程号JNO;3.课本P127第五题(1)找出所有供应商的姓名和所在城市;(2)找出所有零件的名称、颜色、重量;(3)找出使用供应商S1所供应零件的工程号码;(4)找出工程项目J2使用的各种零件的名称及其数量;(5)找出上海厂商供应的所有零件号码;(6)找出使用上海产的零件的工程名称;(7)找出没有使用天津产的零件的工程号码;(8)把全部红色零件的颜色改成蓝色;(9)由S5供给J4零件P6改成由S3供应,请做必要的修改;(10)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录;(11)请将(S2,J6,P4,200)插入供应情况关系。
4.课本P128第11题,针对视图完成下列查询:(1)找出三建工程项目使用的各种零件代码及其数量;(2)找出供应商S1的供应情况。
数据库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数据库实训报告1.引言SQL(Structured Query Language)是一种用于管理关系数据库系统的计算机编程语言。
在日常生活和工作中,我们难免会遇到需要存储和管理大量数据的情况,而SQL数据库正是解决这类问题的有效工具。
在本次实训中,我们学习了SQL数据库的基本概念、语法和操作,以及如何利用SQL数据库进行数据的增删改查等操作。
本报告将总结实训过程中的所学内容。
2.实训目标与环境搭建实训的目标是让学员了解并熟悉SQL数据库的基本操作,并能够运用所学知识完成实际的数据管理和查询任务。
为了实现这一目标,我们需要先行搭建实训环境,包括安装和配置数据库软件等。
3.数据库设计与建表在使用SQL数据库进行数据管理之前,我们首先需要进行数据库设计和建表操作。
数据库设计是根据实际业务需求,确定数据库的表结构、字段类型、主外键关系等,以便于更好地管理和查询数据。
在建表过程中,我们需要考虑到数据的一致性、完整性和安全性等方面的问题。
4.数据导入与查询数据导入是将已有的数据导入到SQL数据库中的过程。
在实际工作中,我们通常会遇到需要存储和管理大量已有数据的情况,而不是从零开始创建数据。
通过数据导入操作,我们可以将Excel表格、CSV文件等数据源快速导入到数据库中,并进行相应的查询操作。
5.数据的增删改查数据的增删改查是SQL数据库最常用的操作之一。
通过SQL 语句,我们可以实现数据的插入、更新、删除和查询等功能。
通过实际的案例演练,我们可以了解到不同类型的SQL语句及其使用方法,以及如何通过这些语句实现对数据的操作。
6.索引和优化在实际的数据库管理中,如果数据量庞大,查询效率就会成为一个较大的问题。
为此,我们需要对数据库进行索引和优化操作,以提升查询效率。
通过在适当的字段上添加索引,可以加快数据的查找速度;通过调整数据库的参数设置和优化查询语句,可以提高数据库的整体性能。
7.备份和恢复数据库的备份和恢复是非常重要的工作,尤其在面临数据丢失或数据库受损等情况时。
sql 实验报告
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实验报告(优秀范文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语言实验报告1
一、实验目的与要求本实验课程的目的:熟练掌握用SQL对数据进行操作的方法,熟练掌握用SQL创建各种查询的方法,利用已有的数据资源,使用SQL语句进行数据定义、数据更新及各种查询操作。
本实验课程的基本要求:1)使用SQL语句完成数据定义的操作。
2)使用SQL语句完成单表查询的操作。
3)使用SQL语句完成分组查询的操作。
4)使用SQL语句完成连接查询的操作。
5)使用SQL语句完成嵌套查询的操作。
二、实验方案上机操作,使用Visual FoxPro软件完成课本《Visual FoxPro应用基础与面向对象程序设计教程》第146页的实验题,并撰写实验报告。
三、实验结果和数据处理(1)创建“学院”表:(2)创建“系”表:(3)创建“教研室”表:(5)创建“班级”表:(7)创建“课程”表:(9)创建“学生信息管理系统”库文件,并把前面8个表加入该库:(10)修改“学生”表的结构,给“学生”表增加一个“身高”属性:(11)将(’1010501’,’0501’,35,’王冬’,’软件工程’,’101’)记录插入到“班级”表中:(12)将“学生”表中“050101”学号改为“050111”:(13)查看学校里有多少个分院,院长是谁,如何联系:(15)查看每位学生的生日及籍贯:(17)查看在10101教室上课的课程名:四、结论通过老师的悉心教导和本人的努力学习,我基本学会了使用SQL语言,掌握了SQL对数据进行操作的方法,掌握了用SQL创建各种查询的方法,学会利用已有的数据资源,使用SQL语句进行数据定义、数据更新及各种查询操作。
我知道我现在学到的还只是一些基础性的知识,所以我会更加努力,争取学得更深入、学到更专业的知识。
五、问题与讨论问题:1、由于最近忙于书本学习,太久没接触电脑,手有点僵,打起字来比较慢,导致实验中经常出现打错字、打字慢等问题,本人花了一天的时间才完成这份实验报告。
2、实验报告做到一半的时候,电脑突然死机,导致部分内容丢失。
实验三SQL(二)SQL语言进行简单查询实验报告范文
实验三SQL(二)SQL语言进行简单查询实验报告范文实验目的:1.掌握SQL查询语句的一般格式2.掌握简单数据查询操作。
3.熟练掌握各种查询条件的表示。
4.掌握排序和分组操作在SQL语句中的实现。
5.掌握集函数的使用。
实验内容;1.创建学生表tudent、课程表coure和选课表SC,并输入数据(注意数据的完整性。
);(可以使用实验一中已经建立的表和数据)2.对各表中的数据进行不同条件的查询;1)查询全体学生的学号和姓名2)3)4)5)6)7)8)9)查询全体学生的详细记录查询所有选修过课程的学生学号查询考试有不及格的学生学号查询不是信息系(IS)、计算机系(CS)的学生性别、年龄、系别查询选修了4号课的学生学号和成绩,结果按成绩降序排列查询每个课程号和相应的选课人数查询计算机系(CS)的学生姓名、年龄、系别查询年龄18-20岁的学生学号、姓名、系别、年龄;10)查询姓刘的学生情况11)查询既选修1号课程,又选修2号课程的学生学号12)查询学生的姓名和出生年份(今年2003年)13)查询没有成绩的学生学号和课程号14)查询总成绩大于200分的学生学号15)查询每门课程不及格学生人数16)查询不及格课程超过3门的学生学号17)查询年龄在10到19岁之间的学生信息18)查询全体学生情况,按所在系升序排列,同一个系的学生按年龄降序排列19)查询选了1号课程的学生平均成绩20)查询选了3号课程的学生的最高分21)查询每个同学的总成绩实验步骤与过程:1.创建学生表tudent、课程表coure和选课表SC,使用实验一中已经建立的表和数据。
2.并输入数据,设置主键。
3.建立索引及三表之间关系。
4.按照SQL语句格式及题目要求输入语句进行以下查询:1、查询全体学生的学号和姓名;2、查询全体学生的详细记录;3、查询所有选修过课程的学生学号;4、查询考试有不及格的学生学号;5、查询不是信息系(IS)、计算机系(CS)的学生性别、年龄、系别;6、查询选修了4号课的学生学号和成绩,结果按成绩降序排列;7、查询每个课程号和相应的选课人数;8、查询计算机系(CS)的学生姓名、年龄、系别;9、查询年龄18-20岁的学生学号、姓名、系别、年龄;10、查询姓刘的学生情况;11、查询既选修1号课程,又选修2号课程的学生学号;12、查询学生的姓名和出生年份(今年2003年);13、查询没有成绩的学生学号和课程号;14、查询总成绩大于200分的学生学号;15、查询每门课程不及格学生人数;16、查询不及格课程超过3门的学生学号;17、查询年龄在10到19岁之间的学生信息;18、查询全体学生情况,按所在系升序排列,同一个系的学生按年龄降序排列;19、查询选了1号课程的学生平均成绩;20、查询选了3号课程的学生的最高分;21、查询每个同学的总成绩实验结果:利用实验一中所建立的表设置主键,建立索引及三表之间关系。
sql实训报告
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实验报告总结
一周紧张的SQL实训结束了,通过这一周的实训我学会了许多东西。
使我对数据库有了更新的认识,知道了数据库的重要性,也掌握了许多对数据库的操作方法,包括数据库的创建、表的创建、数据的查询、数据的修改、数据的删除、数据的导入/导出等等虽然最后交
实验成果不是C版的,但是通过次实训同时也对C有了更深一步的了解,学会了在C中连接SQL,也算也有了些收获。
后来还是用的ASP
格式的,在做ASP格式的查询时遇到了很多问题通过与同组的同学交流讨论之后基本上都解决了。
但是最重要的是在这次的修改过程中学到了更多的知识。
实训中遇到了一些问题,通过与同学的交流以及向老师请教,基本上解决了网页修改的问题。
虽然实训中遇到了很多问题,但是同时我也学会了在书本上学不到的东西。
最后通过这次实训让我懂得了,为人做事一定要认真仔细,谨慎细心。
通过实训体会的老师传授给我们的知识我们应该耐心的去学习。
我相信通过实训会为我以后的工作和学习奠定了良好的基础。
实训课是在学习与探索中度过的,通过这一次锻炼,我学到了许多知识,也认识到了自己的一些不足之处,但无论对我以后的学习还是工作都有很好的帮助。
最后我还懂得了团队精神的重要性,在实践能力上也得到了提高真正地做到了学以致用对我来说受益匪浅。
同时更要感谢老师的教导。
南邮软件工程报告
实验报告课程名:软件工程与数据库概论任课教师:胥备专业:信息工程学号:14130130姓名:马一鸣二○一六至二○一七年度第 2 学期南京邮电大学通达学院实验报告一实验名称:SQL语言的应用指导教师:胥备实验类型:验证实验学时:4*2实验时间:2017.4.18一、实验目的和要求1、练习使用SQL SERVER数据库产品,熟练使用查询分析器和企业管理器;2、掌握SQL语言中常用的语句:用DDL创建基本表;用DML插入、修改、删除数据;用QL查询数据等。
二、实验环境(实验设备)硬件:个人计算机;软件:MS SQL SERVER环境。
三、实验原理及内容1.创建实验数据库数据库名称:M14130112;操作步骤:Create DataBase M14130112;2.打开刚刚创建的数据库操作步骤:Use M141301123.在查询分析器中要完成的实验内容1.建立如下表,并插入数据:说明:应为表建立主键、其他完整性约束可自己添加;表中数据也可以自己设计课程课use M14130112;create table s(sno char(20) not null unique,sname char(20),age int,sex char(1),primary key(sno));create table c(cno char(20),cname char(20),chour int,credit int,ctype char(20),primary key(cno));create table sc(sno char(20),cno char(20) ,grade int,primary key(sno,cno),foreign key(sno) references s(sno),foreign key(cno) references c(cno));insert into s values('S1','WANG',20,'M');insert into s values('S2','LIU',19,'F');insert into s values('S3','CHEN',22,'M');insert into s values('S4','WU',19,'M');insert into s values('S5','LI',21,'F');insert into c values('C2','MATHS',64,4,'基础'); insert into c values('C4','PHYSICS',48,3,'基础'); insert into c values('C3','C',32,2,'专业基础'); insert into c values('C1','DB',48,3,'专业'); insert into c values('C5','OS',32,2,'专业'); insert into sc values('S1','C2',89);insert into sc values('S2','C1',70);insert into sc values('S3','C2',NULL);insert into sc values('S1','C5',80);insert into sc values('S4','C3',NULL);insert into sc values('S5','C4',78);insert into sc values('S2','C4',79);2.对以上数据完成以下功能:(1)把基础课的学分提高1学分,学时提高8学时;update cset credit=credit+1,chour=chour+8where ctype='基础';(2)把MATH课的非空成绩提高10%;update scset grade=grade *1.1where grade is not null and o in(select cno from c where cname ='MATHS');(3)当所有学生不选修PHYSICS课程时,删除相应数据;delete from c where cname='PHYSICS' and cno not in(select cno from sc) ;(4)LIU同学因病退学,删除相应数据。
sql语句的实验报告
竭诚为您提供优质文档/双击可除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表成绩属性列为精确数字型。
南邮数据库实验报告
南邮数据库实验报告一、引言数据库是存储、管理和操作大量数据的软件系统。
它在现代计算机系统中起着至关重要的作用。
本次实验旨在让我们了解数据库的基本概念、原理和操作方法,以及数据库管理系统的应用。
二、实验目的1.了解数据库的基本概念、特点和分类。
2.掌握关系型数据库的设计方法和操作技术。
3.学习SQL语言的编写和查询。
三、实验内容本次实验主要包括以下三个部分的内容:1.数据库的创建和设计根据给定的需求,我们需要创建一个学生信息管理系统的数据库。
首先,我们需要设计数据库的表结构,包括学生表、课程表、成绩表等,以及它们之间的关系。
然后,我们使用SQL语句创建这些表,并插入测试数据进行测试。
2.SQL查询操作在这一部分,我们将学习如何使用SQL语句进行基本的查询操作。
包括简单的SELECT语句、WHERE条件查询、多表连接查询等。
通过这些查询语句,我们可以方便地从数据库中获取所需的信息。
3.实验总结和思考在实验结束后,我们需要对本次实验进行总结和思考。
总结本次实验的收获和经验,思考数据库的优点和不足之处,以及对未来数据库研究的展望等。
四、实验过程1.数据库的创建和设计我们首先根据需求,确定了数据库的表结构,包括学生表(Student)、课程表(Course)和成绩表(Score)。
学生表包括学生学号(id)、姓名(name)、性别(gender)等信息;课程表包括课程编号(id)、课程名称(name)等信息;成绩表包括学生学号(student_id)、课程编号(course_id)和成绩(score)等信息。
然后,我们使用SQL语句创建这些表,并插入测试数据。
2.SQL查询操作我们学习了常用的SQL查询语句,如SELECT、FROM、WHERE等。
通过这些语句,我们可以轻松地进行数据的查询和筛选。
例如,我们可以使用以下SQL语句查询所有学生的信息:SELECT * FROM Student;还可以使用以下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哈哈~。
南邮软件工程报告
实验报告课程名:软件工程与数据库概论任课教师:胥备专业:信息工程学号:姓名:马一鸣二○一六至二○一七年度第 2 学期南京邮电大学通达学院实验报告一实验名称:SQL语言的应用指导教师:胥备实验类型:验证实验学时:4*2实验时间:一、实验目的和要求1、练习使用SQL SERVER数据库产品,熟练使用查询分析器和企业管理器;2、掌握SQL语言中常用的语句:用DDL创建基本表;用DML插入、修改、删除数据;用QL查询数据等。
二、实验环境(实验设备)硬件:个人计算机;软件:MS SQL SERVER环境。
三、实验原理及内容1.创建实验数据库数据库名称:M;操作步骤:Create DataBase M;2.打开刚刚创建的数据库操作步骤:Use M3.在查询分析器中要完成的实验内容1.建立如下表,并插入数据:说明:应为表建立主键、其他完整性约束可自己添加;表中数据也可以自己设计课程create table s(sno char(20) not null unique,sname char(20),age int,sex char(1),primary key(sno));create table c(cno char(20),cname char(20),chour int,credit int,ctype char(20),primary key(cno));create table sc(sno char(20),cno char(20) ,grade int,primary key(sno,cno),foreign key(sno) references s(sno),foreign key(cno) references c(cno));insert into s values('S1','WANG',20,'M');insert into s values('S2','LIU',19,'F');insert into s values('S3','CHEN',22,'M');insert into s values('S4','WU',19,'M');insert into s values('S5','LI',21,'F');insert into c values('C2','MATHS',64,4,'基础');insert into c values('C4','PHYSICS',48,3,'基础'); insert into c values('C3','C',32,2,'专业基础');insert into c values('C1','DB',48,3,'专业');insert into c values('C5','OS',32,2,'专业');insert into sc values('S1','C2',89);insert into sc values('S2','C1',70);insert into sc values('S3','C2',NULL);insert into sc values('S1','C5',80);insert into sc values('S4','C3',NULL);insert into sc values('S5','C4',78);insert into sc values('S2','C4',79);2.对以上数据完成以下功能:(1)把基础课的学分提高1学分,学时提高8学时;update cset credit=credit+1,chour=chour+8where ctype='基础';(2)把MATH课的非空成绩提高10%;update scset grade=grade *1.1where grade is not null and o in(select cno from c where cname ='MATHS');(3)当所有学生不选修PHYSICS课程时,删除相应数据;delete from c where cname='PHYSICS' and cno not in (select cno from sc) ;(4) LIU同学因病退学,删除相应数据。
进行Sql语句练习实验报告
进行Sql语句练习实验报告实验报告课程名称:数据库技术实验题目:实验四Sql语句练习姓名:学号:班级:实验日期:成绩:一、实验目的进行Sql语句练习二、实验环境Microsoft sql server 2008和DBMS三、实验主要内容和主要操作步骤1.新建表Depts、Student、Courses、Reports如下:2.建立表关系如下:3.建立查询3.1 简单的选择与投影查询(1)无条件查询查询学生的姓名(Sname)、学号(Sno)、所在系号(Dno)查询全体学生的姓名(Sname)、出生年份及学号(Sno)查询全体学生的姓名、出生年份和学号,要求用小写字母表示学号中的字母。
查询选修了课程的学生的学号(2)条件查询比较条件查询:查询系别编号D03的全体学生的学号(Sno)、姓名(Sname)谓词条件查询:查询20-22岁(包括18和22岁)学生的姓名(Sname)、年龄(Sage)(3)查询结果排序查询选修C03号课程学生的学号(Sno)和成绩(Grade),并按成绩降序排序(4)集函数的使用查询学生的总人数计算选修C01课程学生的平均成绩查询选修C01课程学生的最高成绩(5)查询结果分组查询各个课程号(Cno)及相应的选课人数3.2 连接查询(1)不同表之间的连接查询查询Sname=‘王建平’及其选课情况(2)自身连接查询没门课程的简介先修课3.3 嵌套查询(1)带谓词IN的嵌套查询查询选修了编号为“C02”的课程的学生的姓名(Sname)和所在的系别号(Dno)(2)带有比较运算符的嵌套查询查询与“刘华”在同一个系学习的学生学号(Sno)、姓名(Sname)和系别编号(3)带谓词AND或ALL的嵌套查询查询系别号不是D01的学生,且年龄不超过D01所有学生年龄的学生学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)和系别号(Dno)(4)带谓词EXISTS的嵌套查询查询所有选修了编号为“C01”课程的学生姓名(Snmae)和所在系别号(Dno)3.4 集合查询查询系别号D02的学生或年龄不大于20岁的学生信息四、实验结果及体会建立查询的过程中我得出了下面的一些感受:(1)初步熟悉各种比较简单的查询(2)对一些比较复杂的查询还需要多练习。
南邮数据库原理与应用作业
一、实验目的和要求
1、实验目的:熟练掌握SQL语言
2、实验要求:结合教材第三章课后习题,了解SQL的概念、语法和使用方法,熟练使用SQL语言,完成表的建立、查询、修改、删除、插入等操作。
二、实验环境(实验设备)
操作系统:winxp/win7/win8
数据库:SQL Server/ORACLE
SELECT SNO FROM SPJWHERE JNO=’J1’
(2)求供应工程J1零件P1的供应商号码
SELECT SNO FROM SPJ
WHERE JNO='J1' AND PNO='P1';
(3)求供应工程J1零件为红色的供应商号码SNO.
SELECT SNO FROM SPJ,P
WHERE JNO='J1' AND SPJ.PNO=P.PNO AND COLOR='红';
);
CREATE TABLE J(JNO CHAR(2) PRIMARY KEY,
JNAME CHAR(8),
CITY CHAR(4)
);
CREATE TABLE SPJ(SNO CHAR(2),
PNO CHAR(2),
JNO CHAR(2),
QTY
);
4.对上表完成习题5中的查询。
(1)求供应工程J1零件的供应商号码SNO.
CREATE TABLE S(SNO CHAR(2) PRIMARY KEY,
SNAME CHAR(6),
STATUS INT,
CITY CHAR(4)
);
CREATE TABLE P(PNO CHAR(2) PRIMARY KEY,
SQL语言的应用 南京邮电大学软件工程与数据库实验报告一
实验报告一实验名称:SQL语言的应用指导教师:茅苏实验类型:验证实验学时:4*2实验时间:2012年9月28日一、实验目的和要求练习使用SQL SERVER数据库产品,熟练使用查询分析器和企业管理器;掌握SQL语言中常用的语句:用DDL创建基本表;用DML插入、修改、删除数据;用QL查询数据等。
二、实验环境(实验设备)硬件:个人计算机;软件:MS SQL SERVER环境。
三、实验原理及内容1.用SQL SERVER的企业管理器创建数据库数据库名称:10001927db操作步骤:1、单击左侧的SQL Server组 右键 新建SQL Server注册 下一步 在左侧的“可用的服务器”栏选中或输入CC-PC,点击中间的添加,将CC-PC添加到右侧的“添加的服务器”栏 下一步选中“登录时使用Windows身份认证”,然后点击下一步 选中“在现有SQL Server组中添加SQL Server”,然后点击下一步 完成 关闭。
2、单击左侧的SQL Server组下面可用的已注册子组里面的数据库→右键→新建数据库→输入数据库名称10001927db2.用查询分析器在上一步创建的数据库中完成以下功能(1)进入查询分析器并选择操作的数据库操作步骤:1、开始→程序→MS SQL Server→查询分析器确认SQL Server(s)为CC-PC选择Windows身份认证点击确定2、在工具栏的下拉链表种选择名为10001927db的数据库。
(2)建立基本表:学生、课程和选课,写出DDL语句。
要求:需为每张表建立主键,其他完整性约束可自己添加。
建立学生表create table student( 学号 char(5)not null unique,姓名 char(20),年龄 int,性别 char(1),);添加主键学号alter table student add primary key(学号); 课程建立课程表create table class( 课程号 char(5)not null unique,课程名 char(20),学时 int,学分 int,课程性质 CHAR(20),);添加主键课程号alter table class add primary key(课程号);建立选课表create table sc( 学号 char(5)not null unique,课程号 char(5)not null unique,成绩 int,);添加外键alter table sc add constraint 课程号 foreign key (课程号) references class(课程号);alter table sc add constraint 学号foreign key (学号) references student(学号);(3)写出向数据库中插入和修改数据的DML语句1)在上述3张表中插入相关数据,每张表至少插入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实训报告篇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语句的格式及所用的关键字含义及用法。
(2)掌握完整性约束定义、增加和删除的一般用法。
(3)掌握同义词定义、删除的一般用法。
(二)实验原理在Navicat for MySQL中使用CREATE命令完成对表、索引、视图、同义词的创建,使用DROP命令完成对表、索引、视图、同义词的删除,使用ALTER命令对表结构进行修改及完整性约束的增加、删除。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告2013 /2014 学年第二学期实验名称SQL语言的应用专业广播电视工程学生学号11003829学生姓名____林钢_____指导教师胥备SQL语言的应用实验报告实验名称:SQL语言的应用指导教师:胥备实验类型:验证实验学时:4*2实验时间:2014年3月18日一、实验目的和要求练习使用SQL SERVER数据库产品,熟练使用查询分析器和企业管理器;掌握SQL语言中常用的语句:用DDL创建基本表;用DML插入、修改、删除数据;用QL查询数据等。
二、实验环境(实验设备)硬件:个人计算机;软件:MS SQL SERVER环境。
三、实验原理及内容1.用SQL SERVER的企业管理器创建数据库数据库名称:M11003829操作步骤:1、单击左侧的SQL Server组→右键→新建SQL Server注册→下一步→在左侧的“可用的服务器”栏选中或输入CC-PC→点击中间的添加将CC-PC添加到右侧的“添加的服务器”栏→下一步→选中“登录时使用Windows身份认证”→点击下一步→选中“在现有SQL Server组中添加SQL Server”→点击下一步→完成→关闭。
2、单击左侧的SQL Server组下面可用的已注册子组里面的数据库→右键→新建数据库→输入数据库名称M110038292.用查询分析器在上一步创建的数据库中完成以下功能1)进入查询分析器并选择操作的数据库操作步骤:1、开始→程序→MS SQL Server→查询分析器设置:确认SQL Server(s)为CC-PC选择Windows身份认证确定2、在工具栏的下拉链表种选择名为M11003829的数据库。
2)建立基本表:学生、课程和选课,写出DDL语句建立学生表、插入数据。
学生学号姓名年龄性别S1 WANG 20 MS2 LIU 19 FS3 CHEN 22 MS4 WU 19 MS5 LI 21 FCreate TABLE STUDENT(SNO VARCHAR(7) NOT NULL,SNAME VARCHAR(10)NOT NULL,AGE INT NOT NULL,SEX VARCHAR(7),Primary Key(SNO),);use M11003829;Insert Into STUDENT Values ('S1' ,'WANG', '20', 'M');Insert Into STUDENT Values ('S2', 'LIU','19',' F');Insert Into STUDENT Values ('S3', 'CHEN' ,'22', 'M');Insert Into STUDENT Values ('S4', 'WU', '19', 'M');Insert Into STUDENT Values ('S5', 'LI', '21', 'F');建立课程表、插入数据。
课程课程号课程名学时学分课程性质C2 MATHS 64 4 基础C4 PHYSICS 48 3 基础C3 C 32 2 专业基础C1 DB 48 3 专业C5 0S 32 2 专业Create TABLE course(CNO VARCHAR(7) NOT NULL,CNAME VARCHAR(7) NOT NULL,CHOUR VARCHAR(7) NOT NULL,CREDIT VARCHAR(7) NOT NULL,CTYPE VARCHAR(7) NOT NULL,Primary Key (CNO),);use M11003829;Insert Into course Values ('C2', 'MATHS', '64', '4', '基础'); Insert Into course Values ('C4','PHYSICS','48', '3', '基础'); Insert Into course Values ('C3', 'C','32','2','专业基础'); Insert Into course Values ('C1','DB','48','3','专业');Insert Into course Values ('C5', '0S','32','2','专业');建立选课表、插入数据。
选课学号课程号成绩S1 C2 89S2 C1 70S3 C2 NULLS1 C5 80S4 C3 NULLS5 C4 78S2 C4 79Create TABLE SC(SNO VARCHAR(20) NOT NULL,CNO VARCHAR(20) NOT NULL,GRADE VARCHAR(20) NOT NULL,Primary Key (CNO,SNO),Foreign Key (CNO),);use M11003829;Insert Into SC Values ('S2', 'C1', '70');Insert Into SC Values ('S3', 'C2', 'NULL'); Insert Into SC Values ('S1', 'C5' ,'80');Insert Into SC Values ('S4', 'C3','NULL');Insert Into SC Values ('S5', 'C4' ,'7');Insert Into SC Values ('S5', 'C4', '78');Insert Into SC Values ('S2', 'C4' ,'79');3)写出向数据库中插入和修改数据的DML语句1、把基础课的学分提高1学分,学时提高8学时;Update courseset score=score+1 , chour = chour+8Where cname ='基础'2、把MATH课的非空成绩提高10%;update scset grade = grade*1.1where grade is not NULL;3、当所有学生不选修PHYSICS课程时,删除相应数据;Delete from classWhere physics4、LIU同学因病退学,删除相应数据。
首先删除选课表中的相关信息,否则学生表中的信息不能删除。
delete from scwhere sno in(select sno from studentwhere sname = 'LIU');删除学生表中的信息delete from studentwhere sname = 'LIU';删除结果:4)写出检索数据的QL语句1、检索课程性质中包含“基础”的课程信息;select * from classwhere 课程性质 like '%基础';检索结果:2、检索WANG同学学习的所有课程信息;Select from scWhere sc in(select snoFrom studentWhere snam=’WANG’);3、检索不学C2课程的学生学号与姓名;Select from studentcWhere sno all(select sno From classWhere cno=’c2’);检索结果:检索得到的是空表,因为选修C2的人是LIU,而他的数据在之前的操作中被删除了。
4、查询平均成绩大于80分的学生学号、姓名和平均成绩,结果按平均成绩降序排列;select student.学号,姓名, AVG(成绩)from student,scgroup by student.学号,姓名having AVG(成绩)>80order by AVG(成绩) desc;检索结果:四、实验小结(包括问题和解决方法、心得体会、意见与建议等)1、建表很容易,主要是对表中索引的创建和对表中某一属性的设置都是基础的操作,较为简单,而对表中信息的操作,颇为复杂,还得勤加练习,以达熟能生巧的地步。
2、数据插入后自行按照主键排序,不影响插入结果。
3、自由字符变量定义长一点以防止溢出,导致错误结果。
4、对于选课表,在建立之前不能设置主键和外键,应首先删除UNIQUE KEY 约束然后插入数据,最后再建立主键和外键,否则由于表中有重复的数据将导致插入失败。