SQL数据的定义实验报告
- 格式:doc
- 大小:184.00 KB
- 文档页数:7
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(Structured Query Language)是一种用于管理和操作关系型数据库的语言。
在大一的数据库课程中,我们学习了SQL语言的基本语法和常用操作,通过实验来巩固和应用所学知识。
本篇实验报告将对我在大一SQL数据库实验中的学习和实践进行总结和归纳。
二、实验内容本次实验主要涉及以下内容:1. 创建数据库和表:使用CREATE语句创建数据库和表,定义表的结构和字段。
2. 插入数据:使用INSERT语句向表中插入数据,测试数据的正确性和完整性。
3. 查询数据:使用SELECT语句查询数据库中的数据,包括条件查询、排序和限制查询结果数量等。
4. 更新数据:使用UPDATE语句更新表中的数据,修改指定字段的值。
5. 删除数据:使用DELETE语句从表中删除数据,删除指定条件的记录。
6. 数据库连接:使用JOIN语句实现多表连接查询,关联不同表中的数据。
7. 数据库事务:使用BEGIN TRANSACTION、COMMIT和ROLLBACK语句实现事务的管理和控制。
三、实验过程和结果1. 创建数据库和表我使用CREATE DATABASE语句创建了一个名为“学生管理”的数据库。
然后,我在该数据库中创建了两个表,分别是“学生信息表”和“课程信息表”。
学生信息表包括学生ID、姓名、年龄和性别等字段,课程信息表包括课程ID、课程名称和学分等字段。
2. 插入数据接下来,我使用INSERT INTO语句向学生信息表和课程信息表中插入了一些测试数据,包括学生的基本信息和课程的相关信息。
插入数据后,我使用SELECT语句确认数据的插入是否成功,并验证了数据的完整性和准确性。
3. 查询数据我使用SELECT语句进行了多种查询操作,包括条件查询、排序和限制查询结果数量等。
例如,我使用WHERE子句实现了根据学生姓名和课程名称进行查询的功能;使用ORDER BY子句对查询结果按照指定字段进行排序;使用LIMIT子句限制查询结果的数量。
实验1、数据定义班级:计自1101班姓名:陈德顺学号:04021、实验目的熟悉SQL的数据定义语言,能够熟练地使用SQL语句来创建和更改基本表,创建和取消索引。
2、实验内容用SSMSJ建数据库University_Mis使用CREAT语句创建基本表。
更改基本表的定义:增加列,删除列,修改列的数据类型。
创建表的升、降序索引。
删除基本表的约束、基本表的索引或基本表。
3、实验步骤(1) 用SSMSJ建数据库University_Mis通过菜单[Microsoft SQL Server]宀[启动SSMS。
利用SSMST具新建数据库University_Mis数据库名称:Uni versity_Mis数据库相关参数设置:采用系统默认设置⑵在SSMS^用SQL语句创建关系数据库基本表:学生表Students(Sno,Sname, Semail,Scredit,Sroom)教师表Teachers(Tno,Tname,Temail,Tsalary)课程表Courses(Cno,Cname,Ccredit);成绩表Reports(Sno,Tno,Cno. Score);其中:Snc、Tno、Cno分别是表Students、表Teachers、表Courses 的主键,具有唯一性约束,Scredit具有约束“大于等于0” Reports中的Sno,Tno,Cno是外键,它们共同组成Reports的主键。
(3)更改表Students :增加属性Ssex(类型是CHAR长度为2),取消Scredit “大于等于0”约束。
把表Courses中的属性Cname的数据类型改成长度为30。
⑷删除表Students的一个属性Sroom=(5)删除表Reports。
⑹为Courses表创建按Cno降序排列的索引。
(7) 为Students表创建按Sno升序排列的索引。
(8) 创建表Students的按Sname升序排列的唯一性索引。
数据库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语言还提供了更新和删除数据的功能。
学生学号实验课成绩学生实验报告书实验课程名称企业数据库应用开课学院管理学院指导教师姓名学生姓名XXX学生专业班级人力ZY09012010 — 2011 学年第2 学期实验报告填写规范1、实验是培养学生动手能力、分析解决问题能力的重要环节;实验报告是反映实验教学水平与质量的重要依据。
为加强实验过程管理,改革实验成绩考核方法,改善实验教学效果,提高学生质量,特制定本实验报告书写规范。
2、本规范适用于管理学院实验课程。
3、每门实验课程一般会包括许多实验项目,除非常简单的验证演示性实验项目可以不写实验报告外,其他实验项目均应按本格式完成实验报告。
在课程全部实验项目完成后,应按学生姓名将各实验项目实验报告装订成册,构成该实验课程总报告,并给出实验课程成绩。
4、学生必须依据实验指导书或老师的指导,提前预习实验目的、实验基本原理及方法,了解实验内容及方法,在完成以上实验预习的前提下进行实验。
教师将在实验过程中抽查学生预习情况。
5、学生应在做完实验后三天内完成实验报告,交指导教师评阅。
6、教师应及时评阅学生的实验报告并给出各实验项目成绩,同时要认真完整保存实验报告。
在完成所有实验项目后,教师应将批改好的各项目实验报告汇总、装订,交课程承担单位(实验中心或实验室)保管存档。
附表:实验成绩考核建议观测点考核目标成绩组成实验预习1.对验证型实验,考察对实验原理与方法的预习情况2.对于综合型、设计型实验,着重考查设计方案的科学性、可行性和创新性对实验目的和基本原理的认识程度,对实验方案的设计能力20%实验过程1.是否按时参加实验2.对实验过程的熟悉程度3.对基本操作的规范程度4.对突发事件的应急处理能力5.实验原始记录的完整程度6.同学之间的团结协作精神着重考查学生的实验态度、基本操作技能;严谨的治学态度、团结协作精神30%结果分析1.所分析结果是否用原始记录数据2.计算结果是否正确3.实验结果分析是否合理4.对于综合实验,各项内容之间是否有分析、比较与判断等考查学生对实验数据处理和现象分析的能力;对专业知识的综合应用能力;事实求实的精神50%实验项目名称SQL Server的安装及操作实验者xxx 专业班级人力ZY0901同组者无实验日期2011年3月11日一、实验目的、意义1、写出SQL Server的功能与特点,使用方法,应用状况的报告。
熟悉sql语言的数据定义实验总结下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!熟悉SQL语言的数据定义实验总结第一节:引言1.1 背景介绍。
sql数据定义实验总结
SQL数据定义实验总结
在数据库管理系统中,SQL是一种常用的语言,用于管理和操作数据库。
SQL数据定义实验是数据库课程中的一项重要实验,通过该实验,可以让学生了解SQL语言的基本语法和数据定义操作。
在SQL数据定义实验中,我们需要掌握以下几个方面的内容:
1. 数据库的创建和删除:通过CREATE DATABASE和DROP DATABASE语句可以创建和删除数据库。
2. 表的创建和删除:通过CREATE TABLE和DROP TABLE语句可以创建和删除表。
3. 列的定义和修改:通过ALTER TABLE语句可以添加、修改和删除表的列。
4. 约束的定义和修改:通过CREATE TABLE和ALTER TABLE语句可以定义和修改表的约束,如主键、外键、唯一性约束等。
5. 索引的定义和删除:通过CREATE INDEX和DROP INDEX语句可以创建和删除索引。
在实验中,我们需要根据实验要求,编写相应的SQL语句,对数据库进行操作。
在编写SQL语句时,需要注意语法的正确性和逻辑
的合理性,避免出现错误和不必要的操作。
通过SQL数据定义实验,我们可以深入了解SQL语言的基本语法和数据定义操作,掌握数据库的创建、表的创建和修改、约束的定义和修改、索引的定义和删除等操作,为以后的数据库开发和管理打下坚实的基础。
同时,实验也提高了我们的实际操作能力和解决问题的能力,为我们的职业发展打下了良好的基础。
《数据库原理及应用》实验报告sql语句部分班级: 11-37-06 学号:姓名:总成绩:实验一熟悉sql server,数据定义实验实验一成绩:一、实验目的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.创建学生课程数据库create database studend; 5.将以上创建表s、c、sc的sql命令以 .sql文件的形式保存在磁盘上。
(sno char(9) primary key, sname char(20) unique, ssex char(2), sage smallint,sdept char(20), );3.创建课程关系表c :(cno char(4) primary key, cname char(40), cpno char(4 ), ccredit smallint, ); (sno char(9), cno char(4), grade smallint, ); 5.将以上创建表s、c、sc 的sql命令以 .sql文件的形式保存在磁盘上。
6、在表s上增加“出生日期”属性列。
alter table s add sbirthday datetime;7、删除表s的“年龄”属性列。
alter table s drop column sage;8、删除s姓名列的唯一值约束。
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 变化实验到此。
一、实验名称:带条件查询二、日期三、实验目的和内容(这是实验报告极其重要的内容。
)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 从句来以特定的顺序抽取数据的方法等等。
实验1、数据定义
班级:计自1101班姓名:陈德顺学号:201126100402 1、实验目的
熟悉SQL的数据定义语言,能够熟练地使用SQL语句来创建和更改基本表,创建和取消索引。
2、实验内容
●用SSMS创建数据库University_Mis
●使用CREATE语句创建基本表。
●更改基本表的定义: 增加列,删除列,修改列的数据类型。
●创建表的升、降序索引。
●删除基本表的约束、基本表的索引或基本表。
3、实验步骤
(1)用SSMS创建数据库University_Mis
通过菜单[Microsoft SQL Server]→[启动SSMS]。
利用SSMS工具新建数据库University_Mis
数据库名称:University_Mis
数据库相关参数设置:采用系统默认设置
(2)在SSMS中用SQL语句创建关系数据库基本表:
⏹学生表Students(Sno,Sname, Semail,Scredit,Sroom);
⏹教师表T eachers(Tno,Tname,T email,T salary);
⏹课程表Courses(Cno,Cname,Ccredit);
⏹成绩表Reports(Sno,Tno,Cno, Score);
其中:Sno、Tno、Cno分别是表Students、表Teachers、表Courses的主键,具有唯一性约束,Scredit具有约束“大于等于0”;Reports中的Sno,Tno,Cno是外键,它们共同组成Reports的主键。
(3)更改表Students:增加属性Ssex(类型是CHAR,长度为2),取消Scredit
“大于等于0”约束。
把表Courses中的属性Cname的数据类型改成长度为30。
(4)删除表Students的一个属性Sroom。
(5)删除表Reports。
(6)为Courses表创建按Cno降序排列的索引。
(7)为Students表创建按Sno升序排列的索引。
(8)创建表Students的按Sname升序排列的唯一性索引。
(9)删除Students表Sno的升序索引。
4、实验要求
实验之前请细细阅读实验总体要求与说明指导书,在SQL Server 2005或2008的SSMS环境中,完成以上实验(2)-(9)步所有SQL数据定义操作,并将操作窗口剪贴到实验报告中,按顺序标号,做必要的说明。
在实验步骤1完成之后,查看创建的数据库文件名及事务日志文件名,填入下表中。
5、实验过程
一、创建基本表
(1)学生表Students
(2)教师表Teachers
(3)课程表Courses
(4)成绩表Reports
二、表的删除与修改
(1)更改表Students:
●增加属性Ssex(类型是CHAR,长度为2)
●取消Scredit“大于等于0”约束
●删除表Students的一个属性Sroom
(2)更改表Courses:
把属性Cname的数据类型改成长度为30
(3)删除表Reports
三、建立索引
(1)为Courses表创建按Cno降序排列的索引
(2)为Students表创建按Sno升序排列的索引
(3)创建表Students的按Sname升序排列的唯一性索引
(4)删除Students表Sno的升序索引
四、。