数据库_实验报告3

合集下载

《数据库原理与应用》实验报告三及答案

《数据库原理与应用》实验报告三及答案
@screditas'所选学分'
结果:
警告:聚合或其他SET操作消除了Null值。
学生号选课门数平均分所选学分
--------- ----------- ---------------------- -----------
081220101 669 22
(1行受影响)
4、思考题
1)存储过程和触发器的异同点?
二、实验环境及相关情况(包含使用软件、实验设备、主要仪器及材料等)
1、计算机操作系统要求在windows XP以上。
2、并要求SQL Server软件2000以后版本。
三、实验内容及要求
利用实验指导书中的关系数据库完成下面题目:
1、说明下面代码段的功能
LE (SELECT____avg________(NormalMark) FROMstudent_course)<80
BEGIN
if (SELECT MAX(NormalMark) FROMstudent_course)>____95_____
BREAK
ELSE
___UPDATE student_course
case trank
when‘教授’then‘高级职称’
when‘讲师’then‘中级职称’
else
‘初级职称’
end
from teacher
答:在教师表中选取姓名和性别两列,并给每个教师分等级;
2、完成下面代码的书写
计算student_course表的平时分数列的平均值。如果小于80,则分数增加其值的5%;如果分数的最高值超过95,则终止该操作。在以下代码划线处填入适当的内容以完成上述功能。
SET NormalMark = NormalMark *1.05

数据库实验三

数据库实验三

计算机与信息学院实验报告系:专业:年级:姓名:学号:22 实验室号计算机号22 实验时间:2013年10月29日指导教师签字:成绩:报告退发(订正、重做)实验名称:(三)数据库的定义实验一、实验目的和要求(1)掌握SQL Server查询分析器的使用方法,加深对SQL和Transact-SQL语言的查询语句的理解。

(2)熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。

(3)熟练掌握数据查询中的分组、统计、计算和组合的操作方法。

二、实验内容和原理1. 基本操作实验用Transact-SQL语句表示下列操作.在学生-课程库中实现其数据查询操作:(1)求数学系学生的学号和姓名。

(2)求选修了高等数学的学生学号、姓名和成绩。

(3)求选修C1课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。

(4)获选修课程C1且成绩在80~90分之间的学生学号、姓名及成绩,并将成绩乘以系数0.8输出。

(5)求数学系或计算机系姓张的学生的信息。

(6)求缺少了成绩的学生的学号和课程号。

(7)求C1课程的成绩高于张三的学生学号和成绩。

(8)求其他系中比计算机系学生年龄都小的学生。

(9)查询选修了全部课程的学生的姓名。

(10)求至少选修了学生“张三”所选修的全部课程的学生学号和姓名。

(11)查询每一门课的间接先行课(即先行课的先行课)。

在图书-图书库中实现其查询操作。

(1)查找这样的图书类别:要求类别中最高的图书定价不低于全部按类别分组的图书平均定价的2倍。

(2)求机械工业出版社出版的各类图书的平均定价,用GROUP BY表示。

(3)列出计算机类图书的书号、名称及价格,最后求出册数和总价格。

(4)列出计算机类图书的书号、名称及价格,并求出各出版社这类书的总价格,最后求出全部册数和总价格。

(5)查询计算机类和机械工业出版社出版的图书。

(6)在图书-借阅库中实现其查询操作:将计算机类的书存入永久的计算机图书表中,将借书日期在1999年以前的借阅记录存入临时的超期借阅表。

数据库实验报告(通用3篇)

数据库实验报告(通用3篇)

数据库实验报告(通用3篇)数据库试验报告篇1一、实训时间:20_年5月13日至5月24日二、实训地点:三、实训目的与意义:1,这次实习可以使我们在课本上学到的学问用于实践增加了我对电脑技巧的一些认知。

2,通过这次实习也可以让我体验到上班族的生活为我将来毕业后找工作打下了基础。

3,并且这次实习可以非常好的关心我完成将来的毕业论文。

四、实训感悟:还依旧记得来的第一天对这里很茫然,不知道实习要做些什么。

然后经过老师的急躁讲解,熟悉了自己实习要做些什么,得到了许多心理熟悉,对许多问题都有了一些更深的了解。

同时,我熟识了河北玛世电子商务有限公司,总部位于国家命名的“中国丝网之乡”、“中国丝网产业基地”、中国丝网产销基地“、”中国丝网出口基地“—河北省安平县。

使我们队公司有了更进一步的了解实习,就是在实践中学习。

经过这半个月的实习训练,我了解到自己所学的如何在实践中运用。

当然学的更多的是如何在更新网站内容和添加商品,每天不厌其烦的更新添加,观察自己的胜利更多的是兴奋。

还有发布了一些关于公司产品的博客,比如新浪,网易。

而后又尝试在百度知道上提问与回答,在回答问题的过程中,通过网站搜寻相关内容来回答各种丝网问题,通过百度知道这个平台,我对公司又了更一步的了解。

经过半个月的实训我学到了许多之前没有学过没有接触到的东西,熟悉到自己的不足,需要更加努力,才能尽快的学会在社会上生活,敢于面对社会的压力,使自己可以在社会上成长进展。

数据库试验报告篇2由于平常接触的都是一些私人项目,这些项目大都是一些类库,其他人的沟通相对可以忽视不计,因此也就不考虑规范化的文档。

实际上从学习的经受来看,我们接触的学问体系都是属于比较老或比较传统的,与现在进展快速的IT行业相比许多状况已不再适用,尤其是当开源模式渐渐走近开发者后更是如此。

虽然这次是一个数据库课程设计,由于本人在选择项目的时候是本着对自己有实际应用价值的角度考虑的,所以其中也涉及到一些数据库以外的设计。

数据库实验报告

数据库实验报告

数据库实验报告一、实验目的本次数据库实验的主要目的是通过实际操作和实践,深入了解数据库的基本概念、原理和技术,掌握数据库的设计、创建、管理和数据操作的方法,提高对数据库系统的应用能力和问题解决能力。

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

实验中使用的开发工具包括 MySQL Workbench 和命令行终端。

三、实验内容与步骤(一)数据库设计1、需求分析根据给定的业务场景,确定数据库需要存储的信息和数据之间的关系。

例如,对于一个学生管理系统,需要存储学生的基本信息、课程信息、成绩信息等,并且明确这些信息之间的关联,如学生与课程的选课关系、课程与成绩的对应关系等。

2、概念模型设计使用 ER 图(实体关系图)来描述数据库的概念模型。

确定实体(如学生、课程)、属性(如学生的学号、姓名,课程的课程号、课程名)以及实体之间的关系(如多对多、一对多等)。

3、逻辑模型设计将概念模型转换为关系模型,确定数据表的结构,包括表名、字段名、数据类型、主键、外键等。

例如,学生表(学号、姓名、性别、出生日期),课程表(课程号、课程名、学分),选课表(学号、课程号、成绩)等。

(二)数据库创建1、使用 MySQL Workbench 或命令行创建数据库。

2、创建数据表,按照设计好的逻辑模型定义表结构。

(三)数据插入与操作1、使用 INSERT 语句向数据表中插入数据,以模拟实际的业务数据。

2、进行数据的查询操作,使用 SELECT 语句查询满足特定条件的数据。

3、进行数据的更新和删除操作,使用 UPDATE 和 DELETE 语句修改或删除数据。

(四)数据库索引与优化1、了解索引的概念和作用,为经常用于查询、连接和排序的字段创建索引。

2、分析查询语句的执行计划,通过优化查询语句、调整数据表结构等方式提高数据库的性能。

(五)数据库备份与恢复1、学习数据库备份的方法,使用 mysqldump 工具或 MySQL Workbench 进行数据库的备份。

数据库原理实验报告(3)实验三数据表的创建与管理实验

数据库原理实验报告(3)实验三数据表的创建与管理实验

南京晓庄学院《数据库原理与应用》课程实验报告实验三数据表的创建与管理实验所在院(系):数学与信息技术学院班级:学号:姓名:1.实验目的(1)理解SQL Server 2005常用数据类型和表结构的设计方法。

理解主键、外键含义,掌握建立各表相关属性间参照关系的方法。

(2)熟练掌握使用SQL Server Management Studio图形工具创建表,删除表,修改表结构,插入及更新数据的方法。

(3)熟练掌握使用Transact-SQL语句创建表,删除表,修改表结构,插入及更新数据的方法。

2.实验要求基本实验:(1)在实验二所创建的“TM”数据库中合理设计以下各表逻辑结构:学生信息(学号,姓名,性别,籍贯,出生日期,民族,学院/系别号,班级号)课程信息(课程号,课程名称,课程所属模块,课程类别,学分,学时)学习信息(学号,课程号,考试成绩,平时成绩)院系信息(院系号,院系名称)要求确定各个字段的名称、类型、是否有默认值,是否主键等信息。

(2)依据你所设计的表结构,使用SQL Server Management Studio图形工具在“TM”数据库中创建学生信息表和课程信息表,并试验在图形界面中修改表结构,删除数据表,输入并更新数据的方法。

(3)依据你所设计表结构,使用Transact-SQL语句创建学习信息表和院系信息表,并试验使用T-SQL语句修改表结构,删除数据表,插入和更新数据的方法。

(4)找出已创建各表之间相关属性的参照关系,并在相关表中增加引用完整性约束。

(5)按要求完成实验报告。

扩展实验:(1)在“TM”数据库中补充设计以下各表结构:教师信息(教师号,姓名,性别,出生日期,学历,学位,入职时间,职称,院系号)授课信息(教师号,课程号,学期)班级信息(班级号,班级名称,专业号)专业信息(专业号,专业名称,学制,学位)图书信息(图书号,书名,作者,出版社,出版日期,册数,价格,分类)借书偏息(学号,图书号,借出时间,归还时间)奖励信息(学号,奖励类型,奖励金额)(2)设计并实现各表之间相关属性的参照关系。

数据库原理实验报告-实验三-数据完整性与安全性控制

数据库原理实验报告-实验三-数据完整性与安全性控制

《数据库原理》实验报告题目:实验三数据完整性与安全性控制学号班级日期2016.10.18一、实验容、步骤以及结果1.利用图形用户界面对实验一中所创建的Student库的S表中,增加以下的约束和索引。

(18分,每小题3分)(1)非空约束:为出生日期添加非空约束。

非空约束:取消表S中sbirth的勾。

可能需要重建表。

(2)主键约束:将学号(sno)设置为主键,主键名为pk_sno。

设主键:单击数据库Student-->单击表-->单击S-->右击sno-->选择‘修改’命令-->对话框中右击sno-->选择‘设置主键’-->修改主键名为‘pk_sno’-->保存(3)唯一约束:为(sname)添加唯一约束(唯一键),约束名为uk_sname。

唯一约束:单击数据库Student-->单击表-->单击S-->右击sname-->选择‘修改’命令→右击sname-->选择‘索引和键’命令-->打开‘索引和键’框图-->添加-->是否唯一改为‘是’-->名称改为‘us_sname’-->关闭。

(4)缺省约束:为性别(ssex)添加默认值,其值为“男”。

设默认约束:单击数据库Student→单击表→单击S→右击sno→选择‘修改’命令→单击cno-->在默认值栏输入‘男’→保存(5)CHECK约束:为SC表的成绩(grade)添加CHECK约束,约束名为ck_grade,其检查条件为:成绩应该在0-100之间。

(6)外键约束:为SC表添加外键约束,将sno,cno设置为外键,其引用表分别是S表和C表,外键名称分别为fk_sno,fk_cno。

2.在图形用户界面中删除以上小题中已经创建的各种约束,用SQL语言分别重新创建第1题中的(2)-(6)小题.(15分,每小题3分,提示:alter table add constraint)删除约束:单击数据库Student-->表-->单击S-->展开键、约束。

数据库原理实验报告(数据查询)

数据库原理实验报告(数据查询)

数据库原理实验报告实验三数据查询班级:×××姓名:×××学号:×××数据查询一、[实验目的]1.掌握SQL的单表查询操作2.掌握SQL的连接查询操作3.掌握SQL的嵌套查询操作4.掌握SQL的集合查询操作二、[实验内容]本实验的主要内容是:1.简单查询操作。

包括投影、选择条件表达,数据排序,使用临时表等。

2.连接查询操作。

包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。

3.在SQL Server查询分析器中,使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。

4.组合查询与统计查询。

(1)分组查询实验。

该实验包括分组条件表达、选择组条件的表达方法。

(2)使用函数查询的实验。

该实验包括统计函数和分组统计函数的使用方法。

(3)组合查询实验。

(4)计算和分组计算查询的实验。

三、[实验方法]1.将查询需求用Transact-SQL语言表示。

2.在SQL Server查询分析器的输入区中输入Transact-SQL查询语句。

3.设置查询分析器结果区为Standard Execute(标准执行)或Execute to Grid方式。

4.发布执行命令,查看查询结果;如果结果不正确,进行修改,直到正确为止。

5查询分析器的主要作用是编辑Transact-SQL,将其发送到服务器,并将执行结果及分析显示出来(或进行存储)。

查询分析功能主要是通过测试查询成本,判断该查询是否需要增加索引以提高查询速度,并可以实现自动建立索引的功能。

图5- 错误!未定义书签。

SQL Server 2000查询分析器查询分析器的界面如图5- 错误!未定义书签。

所示。

在查询生成器中的左边窗口是对象浏览器,其中按树结构列出了数据库对象;右上方是SQL代码区域,用于输入SQL的查询语句;右下方为结果区,用于显示查询结果和分析结果。

北邮大三下数据库实验报告3

北邮大三下数据库实验报告3

北京邮电大学实验报告课程名称数据库系统原理实验内容实验(三)实验名称数据查询实验班级2013211***姓名***指导老师卢向群成绩_________2016年4月20日实验三数据查询实验实验目的通过对实验二中建立的数据库关系表和视图的各种查询的操作,加深对SQL语言和Transact SQL查询语言的了解,掌握相关查询语句的语法和使用方法。

实验内容数据库关系表查询:(1)简单的查询操作,包括单表的查询、选择条件、结果排序等的练习;(2)多表的连接查询,包括等值连接、自然连接等;(3)复杂的查询操作,包括使用分组函数等库函数的查询操作;(4)练习带有IN、比较符的嵌套查询。

具体内容包括:1.简单查询:(1)查询班号为g99401班的学生的学号和姓名;表中没有该班级的学生,故查询结果为空。

(2) 查询“数据库开发技术”课程的学分;(3) 查询选修了课程编号为“dep04_s003”的学生的学号和成绩,并将成绩按降序输出;(4) 查询学号为“g9940205”的学生选修的课程编号和成绩;(5) 查询选修了课程编号为“dep04_s001”且成绩高于85分的学生的学号和成绩。

2.在多表连接的查询实验中,在SQL SERVER提供的交互式语言环境下用TransactSQL语句完成以下查询操作:(1)查询选修了课程编号为“dep04_s002”且成绩高于85分的学生的学号、姓名和成绩;该题与上一题的差别在于学生姓名,这一属性与成绩不在同一张表中,故需要对两张表做自然连接。

(2)查询所有学生的学号、姓名、选修的课程名称和成绩;需要用到三张表,把三张表做自然连接,语句如下:查询结果如下:(3)查询计算机科学系林红同学选修的课程名称、学分和成绩。

(考试成绩>=60有学分,否则无学分。

)这个查询看似困难,实际上只是因为设计的表格较多,所以麻烦而已,只要将五张表自然连接就可以了。

查询结果为空,说明计算机科学系没有叫“林红”的学生。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本科实验报告课程名称:数据库系统原理实验项目:数据完整性实验地点:致远楼B503专业班级:软件1202班学号:2012004997 学生姓名:赵明晶指导教师:安建成2014年4月25 日一目的与要求(1)了解 SQL Serer 数据库系统中数据完整性控制的基本方法(2)熟练掌握常用 CREATE 或 ALTER 在创建或修改表时设置约束(3)了解触发器的机制和使用(4)验证数据库系统数据完整性控制二实验设备与环境Windows XP 或者 Windows 2003 Server。

使用 SQL Server 数据库管理系统提供的 SSMS 和查询编辑器。

三实验内容、实验记录及实验结果与分析结合 ST 数据库中的各个表,设置相关的约束,要求包括主键约束、外键约束、唯一约束、检查约束、非空约束等,掌握各约束的定义方法。

设置一个触发器,实现学生选课总学分的完整性控制,了解触发器的工作机制。

设计一些示例数据,验证完整性检查机制。

要求包括如下方面的内容:3.1 使用 SQL 语句设置约束使用 CREATE 或 ALTER 语句完成如下的操作,包括:1.设置各表的主键约束2.设置相关表的外键3. 设置相关属性的非空约束、默认值约束、唯一约束4. 设置相关属性的 CHECK 约束3.2 使用触发器创建一个触发器,实现如下的完整性约束;当向 SC 表中插入一行数据时,自动将学分累加到总学分中。

记录修改学分的操作。

3.4 检查约束和触发器分向相关表插入若干条记录,检查你设置的完整性约束是否有效:1.插入若干条包正确数据的记录,检查插入情况2.分针对设置的各个约束,插入违反约束的数据,检查操作能否进行3.向 SC 表插入若干行数据,检查触发器能否实现其数据一致性功能。

4实验报告要求写出实验的基本过程。

解释操作过程中出现的现象。

参考示例参参考考示示例例参考示例::::建立一个学生选课数据库,熟悉约束及触发器的使用方法。

1.创建基本表及约束(1)创建Student表CREATE TABLE Student( Sno CHAR(8) PRIMARY KEY,Sname CHAR(8) NOT NULL,Ssex CHAR(2) CHECK( Ssex in ('男','女')),Sage SMALLINT,Sdept CHAR(20),Sclass CHAR(4) NOT NULL,Stotal smallint DEFAULT 0);掌握主键约束、非空约束、CHECK约束、默认值的定义格式。

(2)创建Course表CREATE TABLE Course( Cno CHAR(4) CONSTRAINT PK_Course PRIMARY KEY,Cname CHAR(40),Cpno CHAR(4) ,Ccredit SMALLINT);(3)创建SC表CREATE TABLE SC( Sno CHAR(8) FOREIGN KEY (Sno) REFERENCES Student(Sno),Cno CHAR(4),Grade SMALLINT CONSTRAINT SC_CHECK CHECK(Grade >0 AND Grade<100), PRIMARY KEY (Sno,Cno),CONSTRAINT FK_SC FOREIGN KEY (Cno) REFERENCES Course(Cno));(4)检查表是否创建成功。

2插入数据(1)插入学生信息到Student表INSERT INTO Student V ALUES('20100001','李勇','男',20,'CS','1001',0)INSERT INTO Student V ALUES('20100002','刘晨','女',19,'CS','1001',0)请写出插入其余行的插入语句,并插入数据。

INSERT INTO Student V ALUES('20100021',’王敏’,’女’,18,’MA’,’1002’,0)INSERT INTO Student V ALUES('20100031',’张立’,男’,19,’IS’,’1003’,0)INSERT INTO Student V ALUES('20100003',’刘洋’,’女’,NULL,NULL,’1001’,0) INSERT INTO Student V ALUES('20100010',’赵斌’,’男’,19,’IS’,’1005’,0)INSERT INTO Student V ALUES('20100022',’张明明’,’男’,19,’CS’,’1002’,0)(2)插入到课程信息到Course表INSERT INTO Course(Cno,Cname,Cpno,Ccredit) V ALUES('1','数据库系统原理', '5',4) INSERT INTO Course(Cno,Cname,Cpno,Ccredit) V ALUES('2','高等数学', null,2)请写出插入其余行的插入语句,并插入数据。

INSERT INTO Course(Cno,Cname,Cpno,Ccredit)V ALUES('3','管理信息系统','1',4) INSERT INTO Course(Cno,Cname,Cpno,Ccredit)V ALUES('4','操作系统原理','6',3) INSERT INTO Course(Cno,Cname,Cpno,Ccredit)V ALUES('5','数据结构','7',4)INSERT INTO Course(Cno,Cname,Cpno,Ccredit)V ALUES('6','数据处理',NULL,2) INSERT INTO Course(Cno,Cname,Cpno,Ccredit)V ALUES('7','C语言',NULL,4) (3)插入到SC表INSERT INTO SC V ALUES('20100001','1',92)INSERT INTO SC V ALUES('20100002','2',80)请写出插入其余行的插入语句,并运行。

INSERT INTO SC V ALUES('20100001','2',85)INSERT INTO SC V ALUES('20100001','3',88)INSERT INTO SC V ALUES('20100002','1',90)INSERT INTO SC V ALUES('20100003','1',NULL)INSERT INTO SC V ALUES('20100010','3',NULL)修改约束对数据库中已经存在的表,可对其增加约束或修改已存在的约束:(1)添加约束ALTER TABLE Course ADD UNIQUE(Cname)ALTER TABLE Course ADD FOREIGN KEY (Cpno) REFERENCES Course(Cno) 检查完整性约束通过修改数据库中的数据检查完整性约束条件的作用。

检查主键约束检查主键约束检查主键约束检查主键约束(1)执行下面的语句修改Student表,观察语句能否正确运行,解释为什么?INSERT INTO Student V ALUES('20100101','李斌','男',20,'CS','1001',0)INSERT INTO Student V ALUES('20100001','李斌','男',20,'CS','1001',0) UPDATE Student SET Sno='20100021' WHERE Sname = '张立'不能正确运行,不能重复插入数据(2)执行下面的语句修改SC表,观察语句能否正确运行,解释为什么?INSERT INTO SC V ALUES('20100001','1',78)INSERT INTO SC V ALUES('20100001',null,78)不能正确运行,SC表中插入的Cno是Course表中的主码,而主码非空,所以插入失败;对学号20100001选修1号课程先前已经插入数据,不能重复插入,所以插入失败。

2.检查唯一约束检查唯一约束检查唯一约束检查唯一约束执行下面的语句修改Course表,观察语句能否正确运行,解释为什么?INSERT INTO Course V ALUES('8','JA V A',7, 3)INSERT INTO Course V ALUES('9','数据结构',7, 3)不能正确运行,因为在表Course中Cname定义的是唯一约束。

3检查默认值允许空值列运行如下的语句:INSERT INTO Student(Sno,Sname,Ssex,Sclass) V ALUES('20100102','张盛','男','1008')观察插入数据行的数值SELECT * FROM Student WHere Sno='20100102'4检查非空约束下面的语句包含空值,检查运行结果,解释为什么?INSERT INTO Student(Sno,Sname,Ssex,Sclass) V ALUES('20100103','张盛','男',NULL) INSERT INTO Student(Sno,Sname,Ssex) V ALUES('20100104','张盛','男')在表得的定义中,定义Sclass为NOT NULL,插入数据时,不能插入值为空的数据。

相关文档
最新文档