数据库实验5实验报告

合集下载

数据库原理与应用实验五报告

数据库原理与应用实验五报告

数据库系统概论实验报告(五)姓名:田垒班级学号: 2010080405226学院:信息学院专业:计算机科学与技术2010年12月12日实验五、用户自定义函数一、实验目的学习、掌握用户自定义函数的建立和使用二、实验平台操作系统:Windows 2000或者Windows XP。

数据库管理系统:Microsoft SQL Server 2000 或Microsoft SQL Server 2005。

三、实验内容1、创建自定义函数创建一个用户自定义函数,并测试、查看函数返回值。

USE NorthwindGOCREATE FUNCTION fn_TaxRate(@ProdID INT)RETURNS numeric(5,4)ASBEGINRETURN(SELECTCASE CategoryIDWHEN 1 THEN 1.10WHEN 2 THEN 1WHEN 3 THEN 1.10WHEN 4 THEN 1.05WHEN 5 THEN 1WHEN 6 THEN 1.05WHEN 7 THEN 1WHEN 8 THEN 1.05ENDFROM ProductsWHERE ProductID = @ProdID)ENDGOSELECT ProductName, UnitPrice,Northwind.dbo.fn_TaxRate(ProductID) AS TaxRate,UnitPrice * Northwind.dbo.fn_TaxRate(ProductID) AS PriceWithTax FROM Products结果:注意:函数可以在Select子句后面调用。

2、返回值为多值的自定义函数创建函数返回多列多值。

USE NorthwindGOCREATE FUNCTION fn_LargeFreight(@FreightAmt money)RETURNS TABLEASRETURN( SELECT S.ShipperID, panyName,O.OrderID, O.ShippedDate, O.FreightFROM Shippers AS S JOIN Orders AS OON S.ShipperID = O.ShipViaWHERE O.Freight > @FreightAmt)SELECT * FROM fn_LargeFreight(600)结果:3、返回值为多值的自定义函数本实验创建的函数也是返回多列多值,注意与上面实验的差别。

数据库实验报告

数据库实验报告

数据库实验报告实验报告1实验项目:实验一熟悉FireBird 环境初步姓名:学号:班级实验地点:实验课程名称:数据库系统指导教师:日期:成绩:一、实验目的:学习安装Firebird数据库管理系统;学习安装管理Firebird数据库的软件FlameRobin;学习创建学生student数据库。

二、实验内容:1、安装Firebird;2、安装FlameRobin;3、创建学生student数据库。

三、实验步骤:1、安装Firebird;开始→程序→ Firebird2.1(Win32)→ Firebird;2、安装FlameRobin开始→程序→ FlameRobin → FlameRobin;3、创建学生student数据库打开Firebird→打开FlameRobi n→右击localhost→选择Create new database →命名为Student ;即可。

四、收获或心得体会:学会了如何安装Firebird 、FlameRobin以及如何建立新的数据库,可以独立完成有关数据库的新建等任务。

初步了解了有关数据库的知识,更生刻地认识到了学会并熟练掌握数据库的应用是非常有用的,学好了数据库更有利于自己以后的发展。

实验报告2实验项目:实验二SQL语言(一)SQL定义语言姓名:学号:班级实验地点:实验课程名称:数据库系统指导教师:日期:成绩:一、实验目的:学习使用SQL语言的数据定义语言DDL创建表,索引。

二、实验内容:1、创建学生表:student;2、创建课程表:course;3、创建成绩表:sc。

三、实验步骤:1、创建学生表:studentGREATE TABLE STUDENT(SNO CHAR (10) PRIMARY KEY,SNAME CHAR (20) UNIQUE,SSEX CHAR (10),SAGE SMALLINT,SDEPT CHAR(10));2、创建课程表:courseCREATE TABLE COURSE (CNO CHAR(10) PRIMARY KEY,CNAME CHAR(20),CPNO CHAR(10),CCREDIT SMALLINT,FORKEY (CNO) REFERENCES COURSE(CNO));3、创建成绩表:scCREATE TABLE SC(SNO CHAR(10),CNO CHAR(10),GRADE SMALLINT,PRIMARY KEY (SNO,CNO),FOREIGN KEY (SNO)REFERENCES STUDENT(SNO), FOREIGN KEY (CNO)REFERENCES COURSE (CNO));四、收获或心得体会:学会了如何运用SQL语言在数据库中新建表格,进一步了解了有关数据库的使用方法。

数据库实验报告

数据库实验报告

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

二、实验环境本次实验使用的数据库管理系统是 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 进行数据库的备份。

《数据库实验》实验报告

《数据库实验》实验报告

《数据库实验》实验报告一、实验目的本实验旨在通过设计与实现一个简单的学生信息管理系统,来加深对数据库基本概念和SQL语言的理解,并掌握数据库的创建、表的设计、数据的增删改查等基本操作。

二、实验环境本次实验的开发环境为以下软件与工具:1. 数据库管理系统:MySQL2. 编程语言:Java3. 开发工具:Eclipse IDE4. Web服务器:Apache Tomcat三、实验内容及步骤1. 数据库的创建与连接首先,在MySQL中创建一个名为"student_system"的数据库,并通过JDBC连接该数据库。

在Java代码中,使用JDBC的API进行数据库连接操作,包括加载驱动、建立连接等步骤。

2. 数据表的设计与创建在student_system数据库中创建一个名为"student"的数据表,该表用于存储学生的基本信息。

表中应包含学号(id)、姓名(name)、性别(gender)和专业(major)等字段,并设置合适的数据类型和约束。

3. 数据的插入与修改通过SQL语句,在student表中插入若干条学生信息,包括学号、姓名、性别和专业。

同时,通过SQL的UPDATE语句,修改某些学生的信息。

4. 数据的查询编写SQL语句,实现对学生信息的查询。

可以根据学号或姓名等关键字进行查询,并返回符合条件的学生信息。

5. 数据的删除根据指定的学号或姓名,编写SQL语句实现对学生信息的删除操作。

删除后,该学生的信息将不再存在于数据库中。

四、实验结果经过以上实验步骤的设计与实现,在学生信息管理系统中,成功地创建了student表,并成功插入了若干学生信息。

通过SQL语句的查询和修改操作,可以准确地获取和修改学生的信息。

此外,删除操作也能够成功地从数据库中删除指定学生的信息。

五、实验总结通过本次实验,我进一步掌握了数据库的基本操作与SQL语言的应用。

在实验过程中,我理解到数据库的设计与搭建是一个关键步骤,合理的表结构和约束条件对于数据的管理和有效性有着重要的影响。

数据库系统实验课实验报告

数据库系统实验课实验报告

数据库系统实验课实验报告一、实验目的数据库系统实验课是一门重要的实践课程,旨在通过实际操作和实验,深入理解数据库系统的原理和应用,提高我们的数据库设计、管理和应用开发能力。

本次实验的具体目的包括:1、熟悉数据库管理系统(DBMS)的操作环境和基本命令。

2、掌握数据库的创建、表的设计、数据的插入、查询、更新和删除等基本操作。

3、学会使用 SQL 语句进行复杂的数据查询和数据处理。

4、理解数据库的完整性约束、索引和存储过程的概念及应用。

5、培养解决实际数据库问题的能力和团队协作精神。

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

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

三、实验内容1、数据库的创建使用 CREATE DATABASE 语句创建了一个名为“student_management”的数据库,用于存储学生管理相关的数据。

2、表的设计在“student_management”数据库中,设计了以下几张表:“students”表,包含学生的学号(student_id)、姓名(student_name)、性别(gender)、年龄(age)等字段。

“courses”表,包含课程的课程号(course_id)、课程名称(course_name)、学分(credit)等字段。

“enrolls”表,用于记录学生选课的信息,包含学号(student_id)、课程号(course_id)、成绩(grade)等字段。

在设计表时,为每个字段选择了合适的数据类型,并设置了主键和外键约束,以保证数据的完整性和一致性。

3、数据的插入使用 INSERT INTO 语句向“students”、“courses”和“enrolls”表中插入了一些示例数据,以便进行后续的查询和操作。

4、数据的查询使用简单的 SELECT 语句查询了“students”表中的所有学生信息。

数据库实验报告 (5)

数据库实验报告 (5)

实验一创建数据库及关系表一、实验目的1. 掌握SQL Server数据库管理系统的使用,能够中该环境中进行日常数据库操作;2. 掌握在SQL Server中使用图形化工具创建数据库的方法;3.掌握建立关系表的语句,掌握定义主码约束及外码约束的语句;4.掌握修改表结构的语句。

二、实验要求1.了解SQL Server数据库的组成,会使用图形化工具创建数据库。

2.编写建立表及主、外码约束的T-SQL语句,并执行这些语句,在数据库中建立符合要求的关系表。

3.编写修改表结构的语句。

三、实验内容和步骤1.创建符合如下条件的数据库:数据库的名字为:Students数据文件的逻辑文件名为:Students_dat,存放在D:\Test录下(若D:盘中无此子目录,可先建立此目录,然后再创建数据库。

);文件的初始大小为:5MB;增长方式为自动增长,每次增加1MB。

日志文件的逻辑文件名字为:Students_log,也存放在D:\Test目录下;日志文件的初始大小为:2MB;日志文件的增长方式为自动增长,每次增加10%。

2.在已建立的Students数据库中,写出创建满足下述条件的四张表的SQL 语句,并查看执行结果。

Teacher表结构Sno char(7)primary key,Sname nchar(10)not null,Ssex nchar(2),Sage tinyint,Sdept nvarchar(20),Spec char(10))create table course(Cno char(10),Cname nvarchar(20)not null,Credit int,Semester tinyint,Primary key(Cno))create table sc(Sno char(7)not null,Cno char(10)not null,Grade tinyint,primary key(Sno,Cno),foreign key(Sno )references Student(Sno), foreign key(Cno )references Course(Cno), )create table teacher(Tno char(8)not null,Tname char(10)not null,Dept nvarchar(20),Salary numeric(6,2),Birthery smalldatetime)执行结果:2.写出实现如下操作的SQL语句,并查看执行结果:(1)在SC表中添加一个新的修课类别列:列名为:XKLB,类型为char(4)。

数据库实验报告(全)

数据库实验报告(全)

实验报告学院:计算机与信息学院专业:年级:姓名:学号:实验室号:计算机号:实验日期:年月日指导教师签字:成绩:报告退发(订正、重做)实验一数据库的定义实验1、实验目的熟练掌握和使用SQL Server企业管理器创建数据库、表、索引和修改表结构,并学会使用SQL Server 查询分析器接收Transact-SQL语句和进行结果分析。

2、实验仪器(环境):计算机及SQL Server 20003、实验操作方法:依照实验指导书的内容进行实验。

4、报告内容:(1)通过企业管理器,建立图书借阅数据库;(2)在建好的图书借阅数据库中建立图书、读者和借阅3个表,其结构为:图书(书号,类别,出版社,作者,书名,定价,作者)读者(编号,姓名,单位,性别,电话)借阅(书号,读者编号,借阅日期)要求为属性选择合适的数据类型,定义每个表的主码,是否允许空值和默认值等列级数据约束。

;(3)指出图书读者数据库各表的主码、外码和数据约束;(4)实验操作步骤和实验结果用截图显示出来。

实验报告学院:计算机与信息学院专业:年级:姓名:学号:实验室号:计算机号:实验日期:年月日指导教师签字:成绩:报告退发(订正、重做)实验二数据库的建立和维护实验1、实验目的熟练掌握使用SQL、Transact-SQL和SQL Server企业管理器向数据库输入数据、修改数据和删除数据的操作。

2、实验仪器(环境):计算机及SQL Server 20003、实验操作方法:依照实验指导书的内容进行实验。

4、报告内容:(1)以一条记录为例,写出用SQL表示的向图书表中插入、修改和删除数据的语句。

(2)用SQL实现在读者表中增加“借书册数”字段,统计借书者在1998年~1999年间所借书的册数,并将结果送入读者表中的借书册数字段的操作语句。

(3)写出操作的过程和操作结果(数据库中各表的数据)并用截图表示出来。

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

合肥工业大学数据库实验报告

合肥工业大学数据库实验报告
一、实验目的
1.了解表的结构特点。
2.了解SQL Server的基本数据类型。
3.学会使用T-SQL语句创建表。
二、实验要求
1.完成SQL语句创建和删除基本表。
2.完成实验报告。
三、实验内容
在数据库EDUC中,创建如下几个表:
表 class表(班级信息表)字段来自称类 型允许空值
主 键
说 明
ClsNO
(5)对于student表,将所有班级号为‘CS01’的,并且年龄不大于20岁的学生的班级号改为‘CS02’。
(6)对于student表,删掉所有年龄不小于20岁,并且班级号为‘CS02’的学生的记录。
这里要分为两步:
第一步:在SC表上定义级联删除(思考为什么?),如下所示:
第二步:执行删除操作,如下图所示:
实验4 数据更新操作
一、实验目的
1.熟悉使用UPDATE/INSERT/DELETE语句进行表操作;
2.能将这些更新操作应用于实际操作中去;
二、实验要求
1.完成下面的实验内容,并提交实验报告;
2.在实验报告中附上相应的代码;
三、实验内容
(1) 向表(Student)中插入数据
Sno
Sname
Ssex
4、向表(SC )中插入数据并检查正确性。
5、对于student表,将所有班级号为‘CS01’的,并且年龄不大于20岁的学生的班级号改为‘CS02’,检查更改后的student表。
6、对于student表,删掉所有年龄不小于20岁,并且班级号为‘CS02’的学生的记录。
(1)、在SC表上定义级联删除。(2)、执行删除操作
五、实验总结
1、身份验证时,出现过失败现象,后来解决了验证问题。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

淮海工学院计算机工程学院实验报告书
课程名:《数据库原理及应用》
题目:数据库的完整性
班级:软件132
学号:2013122907
姓名:莹莹
一.目的与要求
1.掌握索引创建和删除的方法;
2.掌握创建视图和使用视图的方法;
3.掌握完整性约束的定义方法,包括primary key、foreign key等。

二.实验容
1.基于前面建立的factory数据库,使用T-SQL语句在worker表的“部门号”列上创建一个非聚集索引,若该索引已经存在,则删除后重建。

2.在salary表的“职工号”和“日期”列创建聚集索引,并且强制唯一性。

3.建立视图view1,查询所有职工的职工号、、部门名和2004年2月工资,并按部门名顺序排列。

4.建立视图view2,查询所有职工的职工号、和平均工资;
5.建立视图view3,查询各部门名和该部门的所有职工平均工资;
6.显示视图view3的定义;
7.实施worker表的“性别”列默认值为“男”的约束;
8.实施salary表的“工资”列值限定在0~9999的约束;
9.实施depart表的“部门号”列值唯一的非聚集索引的约束;
10.为worker表建立外键“部门号”,参考表depart的“部门号”列。

11.建立一个规则sex:性别=’男’ OR 性别=’女’,将其绑定到“性别”上;
12.删除上面第7、8、9和10建立的约束;
13.解除第11题所建立的绑定并删除规则sex。

三.实验步骤
1
USE factory
GO
--判断是否存在depno索引;若存在,则删除之
IF EXISTS(SELECT name FROM sysindexes WHERE name='depno')
DROP INDEX worker.depno
GO
--创建depno索引
CREATE INDEX depno ON worker(部门号)
GO
EXEC sp_helpindex worker
GO
2
USE factory
GO
--判断是否存在no_date索引;若存在,则删除之
IF EXISTS(SELECT name FROM sysindexes WHERE name='no_date')
DROP INDEX salary.no_date
GO
--创建no_date索引
CREATE UNIQUE CLUSTERED INDEX no_date ON salary(职工号,日期)
GO
EXEC sp_helpindex salary
GO
3
USE factory
GO
--如果视图viewl存在,则删除
IF EXISTS(SELECT * FROM sysobjects WHERE name = 'view1' AND type='V') DROP VIEW view1
GO
--创建视图viewl
CREATE VIEW view1
AS SELECT TOP 15 worker.职工号,worker.,depart.部门名,
salary.工资AS '2004年月工资'
FROM worker,depart,salary
WHERE worker.部门号=depart.部门号AND worker.职工号=salary.职工号AND YEAR(salary.日期)=2004 AND MONTH(salary.日期)=2
ORDER BY worker.部门号
GO
SELECT * FROM view1
GO
4
USE factory
GO
--如果视图view2存在,则删除
IF EXISTS(SELECT * FROM sysobjects WHERE name = 'view2' AND type='V') DROP VIEW view2
GO
--创建视图view2
CREATE VIEW view2
AS SELECT worker.职工号,worker.,AVG(salary.工资) AS '平均工资'
FROM worker,salary
WHERE worker.职工号=salary.职工号
GROUP BY worker.职工号,worker.
GO
SELECT * FROM view2
GO
5
USE factory
GO
--如果视图view3存在,则删除
IF EXISTS(SELECT * FROM sysobjects WHERE name = 'view3' AND type='V') DROP VIEW view3
GO
--创建视图view3
CREATE VIEW view3
AS SELECT depart.部门名,AVG(salary.工资) AS '平均工资'
FROM worker,depart,salary
WHERE worker.部门号=depart.部门号AND worker.职工号=salary.职工号GROUP BY depart.部门名
GO
SELECT * FROM view3
GO
6
USE factory
GO
EXEC sp_helptext 'view3'
GO
7
USE factory
GO
ALTER TABLE worker
ADD CONSTRAINT default_sex DEFAULT '男' FOR 性别
GO
8
USE factory
GO
ALTER TABLE salary
ADD CONSTRAINT check_salary CHECK(工资>0 AND 工资<9999)
GO
9
USE factory
GO
ALTER TABLE depart
ADD CONSTRAINT unique_depart1 UNIQUE NONCLUSTERED(部门号) GO
EXEC sp_helpindex depart --显示depart表上的索引
GO
10
USE factory
GO
ALTER TABLE worker
ADD CONSTRAINT FK_worker_no
FOREIGN KEY(部门号)
REFERENCES depart(部门号)
GO
11
USE factory
GO
CREATE RULE sex AS 性别='男' OR 性别='女'
GO
EXEC sp_bindrule 'sex','worker.性别'
GO
12
USE factory
GO
ALTER TABLE worker
DROP CONSTRAINT default_sex
GO
13
USE factory
GO
ALTER TABLE salary
DROP CONSTRAINT check_salary
GO
14
USE factory
GO
ALTER TABLE depart
DROP CONSTRAINT unique_depart
GO
15
USE factory
GO
ALTER TABLE worker
DROP CONSTRAINT FK_worker_no
GO
16
USE factory
GO
EXEC sp_unbindrule 'worker.性别'
GO
DROP RULE sex
GO
四.测试数据与实验结果
第1题图
第2题图
第3题图
第4题图
第5题图
第6题图
第9题图
五.结果分析与实验体会
定义聚集索引键时使用的列越少越好,这一点很重要。

如果定义了一个大型的聚集索引键,则同一个表上定义的任何非聚集索引都将增大许多,因为非聚集索引条目包含聚集键。

当前数据库正在备份时不能再其上创建索引。

若要使用T-SQL修改PRIMARY KEY,必须先删除现有的PRIMARY KEY约束,然后再用新定义重新创建。

删除UNIQUE约束,以删除对约束中所包含列或列组合输入值的惟一性要求。

如果相关列是表的全文键,则不能删除UNIQUE约束。

规则是一个向后兼容的功能,用于执行一些与CHECK约束相同的功能。

CHECK约束是用来限制列值的首选标准方法。

CHECK约束比规则更简明,一个列只能应用一个规则,但是却可以应用多个CHECK约束。

CHECK约束作为CREATE TABLE语句的一部分进行指定,而规则以单独的对象创建,然后绑定到列上。

相关文档
最新文档