数据库实验报告 (6)

合集下载

数据库实验实验报告

数据库实验实验报告

一、实验目的1. 熟悉数据库的基本概念和结构。

2. 掌握数据库的创建、修改和删除操作。

3. 熟练运用SQL语言进行数据的查询、插入、更新和删除操作。

4. 了解数据库的安全性和备份与恢复。

二、实验环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 5.73. 开发工具:MySQL Workbench三、实验内容1. 创建数据库2. 创建表3. 插入数据4. 查询数据5. 更新数据6. 删除数据7. 修改表结构8. 删除表9. 数据库备份与恢复四、实验步骤1. 创建数据库(1)打开MySQL Workbench,连接到本地MySQL服务器。

(2)在“查询”窗口中输入以下SQL语句创建数据库:```sqlCREATE DATABASE student;```(3)执行SQL语句,创建名为student的数据库。

2. 创建表(1)在“查询”窗口中输入以下SQL语句创建学生表:```sqlCREATE TABLE student (id INT PRIMARY KEY,name VARCHAR(50),age INT,gender VARCHAR(10));```(2)执行SQL语句,创建名为student的表。

3. 插入数据(1)在“查询”窗口中输入以下SQL语句插入数据:```sqlINSERT INTO student (id, name, age, gender) VALUES (1, '张三', 20, '男'); INSERT INTO student (id, name, age, gender) VALUES (2, '李四', 21, '男'); INSERT INTO student (id, name, age, gender) VALUES (3, '王五', 22, '女'); ```(2)执行SQL语句,向student表中插入三条数据。

数据库实验报告

数据库实验报告

数据库实验报告实验报告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。

三、实验内容与步骤(一)数据库创建1、打开 MySQL 客户端,使用以下命令创建数据库:```sqlCREATE DATABASE database_name;```其中,`database_name` 为自定义的数据库名称。

2、使用以下命令选择创建的数据库:```sqlUSE database_name;```(二)表的创建1、根据实验要求,设计表结构,包括字段名、数据类型、约束条件等。

例如,创建一个名为`students` 的表,包含`id`(整数类型,主键)、`name`(字符串类型)、`age`(整数类型)字段,使用以下命令:```sqlCREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(50),age INT);```(三)数据插入1、使用`INSERT INTO` 语句向表中插入数据。

例如,向`students` 表中插入一条记录:```sqlINSERT INTO students (id, name, age) VALUES (1, '张三', 20);```(四)数据查询1、使用`SELECT` 语句进行简单查询,获取表中的数据。

例如,查询`students` 表中所有记录:```sqlSELECT FROM students;```2、使用条件查询,获取符合特定条件的数据。

例如,查询年龄大于 18 岁的学生记录:```sqlSELECT FROM students WHERE age > 18;```(五)数据更新1、使用`UPDATE` 语句更新表中的数据。

数据库实验报告

数据库实验报告

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

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

数据库实验报告(完整版)

数据库实验报告(完整版)

数据库实验报告班级:07111103学号:**********姓名:***实验一:[实验内容1 创建和修改数据库]分别使用SQL Server Management Studio和Transact-SQL语句,按下列要求创建和修改用户数据库。

1.创建一个数据库,要求如下:(1)数据库名"testDB"。

(2)数据库中包含一个数据文件,逻辑文件名为testDB_data,磁盘文件名为testDB_data.mdf,文件初始容量为5MB,最大容量为15MB,文件容量递增值为1MB。

(3)事务日志文件,逻辑文件名为TestDB_log, 磁盘文件名为TestDB_log.ldf,文件初始容量为5MB, 最大容量为10MB,文件容量递增值为1MB。

2.对该数据库做如下修改:(1)添加一个数据文件,逻辑文件名为TestDB2_data,实际文件为TestDB2_data.ndf,文件初始容量为1MB,最大容量为6MB,文件容量递增值为1MB。

(2)将日志文件的最大容量增加为15MB,递增值改为2MB。

方法一:使用SQL Server Management Studio创建和修改数据库TestDB方法二:使用Transact-SQL语句创建和修改数据库TestDB方法一过于简单,暂不做讨论。

下面学习方法二。

首先,在sql sever 2008中单击新建查询。

然后键入下面的代码。

建立新的数据库。

1. 创建一个数据库,要求如下:2.对该数据库做如下修改:对刚刚的操作进行验证数据均已更新完毕。

[实验内容2 数据表的创建、修改和查询]1.熟悉有关数据表的创建和修改等工作,并了解主键、外键以及约束的创建和应用,熟练掌握使用SQL Server Management Studio和CREATE TABLE、ALTER TABLE等Transact-SQL语句对数据表的操作方法字段名数据类型字段长度注释项目编码char 10 主键名称varchar负责人编码char 10客户int开始日期datetime结束日期datetime员工数据表(Employee)字段名数据类型字段长度注释方法一:使用SQL Server Management Studio创建数据表并添加约束方法二:使用Transact-SQL语句创建数据表并添加约束2.向数据库TestDB中的两个数据表"项目数据表"和"员工数据表"中添加记录3.在查询分析器中书写Transact-SQL语句完成数据查询。

《数据库实验》实验报告

《数据库实验》实验报告

《数据库实验》实验报告一、实验目的本实验旨在通过设计与实现一个简单的学生信息管理系统,来加深对数据库基本概念和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实验目的(1)运用所学的数据库设计技术,针对一个具体的应用系统,完成系统数据库的概念模型、逻辑模型和物理模型的设计。

以巩固理论课程上所学的知识,更好地掌握数据库设计技术方法。

(2)对前面章节所学的知识加以综合应用。

2实验内容给定一个应用环境,如学生选课系统、超市管理系统、某企业库存管理系统、学校图书管理系统、学校综合积分管理系统等等。

(同学们课从上述选定一个题目,也可以选取一个自己较熟悉的应用环境)。

完成下面的工作2.1 数据库概念模型设计(1)进行需求分析。

-对系统的语义进行描述(包括功能、所需的数据及他们之间的关系和处理方法)(2)识别系统中的实体及实体的属性,分析实体之间的联系。

(3)设计数据库概念模型,画出E-R图。

2.2 数据库逻辑模型设计(1)根据数据库概念模型设计数据库的逻辑模型。

-将E-R模型转化到逻辑模型(2)根据应用需要和规范化理论对逻辑模型进行优化。

2.3 数据库物理模型设计(1)针对某种DBMS,设计数据库物理模型,包括表空间、表和索引等于物理存储有关的设计。

(2)优化物理模型(3)生成某种DBMS的SQL语句,创建数据库及其表。

2.4 装载数据(1)收集真实数据或者生成模拟数据。

(2)批量加载数据到数据库中。

(3)设计一系列SQL语句,尤其是连接查询、嵌套查询等SQL语句,以测试数据库性能。

3实验要求(1)可以借助POWERDESIGNER等系统分析与设计辅助工具进行数据库设计,也可以使用WORD文件直接生成各种设计文档。

(2)选择的数据库应用系统应该规模适中,不宜太大太复杂,可能做不完;也不宜太小太简单,甚至仅有三两个表组成。

(3)要设计良好的数据库完整性约束。

(4)思考题:数据库设计通常由哪些辅助工具?各有哪些优缺点?4实验步骤4.1 数据库概念模型设计(1)进行需求分析。

学生需要有学号、姓名、性别、年龄、专业等信息。

选课需要有学号、课号、成绩等信息课程需要有课程号、课程名、先修课、学分等信息(2)设计数据库概念模型,画出E-R图。

数据库实验报告

数据库实验报告

数据库实验报告一、实验目的本次数据库实验的主要目的是深入了解数据库的基本概念和操作,掌握数据库管理系统的使用方法,提高对数据的管理和处理能力。

通过实际操作,我们希望能够熟练运用SQL 语句进行数据的查询、插入、更新和删除,以及创建和管理数据库表、索引和视图等对象。

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

实验在个人计算机上进行,使用 MySQL Workbench 作为数据库管理工具。

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

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

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

“enrolls”表,用于关联学生和课程,包含学生学号(student_id)、课程号(course_id)和成绩(grade)等字段。

3、数据插入使用 INSERT INTO 语句向上述表中插入了一些示例数据,以方便后续的查询和操作。

4、数据查询通过 SELECT 语句进行了多种查询操作,例如:查询所有学生的信息。

查询特定性别学生的信息。

查询选修了某门课程的学生名单及成绩。

5、数据更新使用 UPDATE 语句对部分学生的年龄或成绩进行了修改。

6、数据删除使用 DELETE 语句删除了一些不再需要的数据记录。

7、索引创建为“students”表的“student_id”字段和“courses”表的“course_id”字段创建了索引,以提高查询效率。

8、视图创建创建了一个名为“student_course_grade_view”的视图,用于展示学生的学号、姓名、课程名称和成绩。

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

一实验题目1.存储过程的定义和使用2.触发器的创建与使用二实验目的1.掌握存储过程的定义、执行和调用方法。

2.掌握触发器的创建与使用。

三实验内容1.存储过程的定义和使用(1)创建存储过程查找姓李的学生的选修课成绩信息。

(2)创建存储过程,统计每个学生的选修课的总成绩,显示成绩最好的前3名学生成绩。

(3)创建存储过程,查找某门课的最高分(带输入参数的存储过程)。

(4)创建存储过程,统计某个同学的平均分并返回统计结果。

(带输入和输出参数的存储过程)(5)创建存储过程,统计某门课选修的人数,将人数返回。

(带返回值的存储过程)(6)创建存储过程,统计选修课程最多的学生的基本信息。

(存储过程的嵌套)2.触发器的创建与使用(1)定义一个BEFORE行级触发器credit_TRIGER,当为C表插入新的课程信息时,若学分大于5分,自动修改为5分。

(2)定义一个AFTER行级触发器,当SC表的成绩发生变动时,就自动在成绩变化表sc_log中增加一条新的纪录,该新纪录包括:操作者名称、操作日期、操作类型。

(3)建立一个DELETE触发器,针对于SC表,每次只能删除一条信息。

(4)建立一个UPDATE的触发器,不允许用户更改学生学号,若更改学号,给出提示信息:学号不允许更改。

(5)执行相应的SQL语句,触发上述定义的触发器。

(6)删除触发器credit_TRIGER。

四实验步骤1.存储过程的定义和使用存储过程格式:CREATE PROC [ EDURE ] procedure_name [ ; number ][ { @parameter data_type }[ VARYING ] [ = default ] [ OUTPUT ][ WITH{ RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ][ FOR REPLICATION ]AS sql_statement [ ...n ]创建存储过程查找姓李的学生的选修课成绩信息。

(1)创建存储过程,统计每个学生的选修课的总成绩,显示成绩最好的前3名学生成绩。

SC表基本情况如图表1所示:图表 1代码:create proc p_sumscoreasselect TOP 3 sum(Grade)as 总成绩from SC group by Snoexec p_sumscore运行结果:命令已成功完成。

显示结果如图表2:图表2总成绩前三名(2)创建存储过程,查找某门课的最高分(带输入参数的存储过程)。

代码:create proc p_maxscoreas@courseselect distinct max(Grade)as 最高成绩from SC where Cno=@course运行结果:第 3 行: '@course' 附近有语法错误。

必须声明变量'@course'。

必须声明变量;且create proc 必须为第一条语句正确代码:create proc p_maxscore(@course nchar(6))asselect distinct max(Grade)as 最高成绩from SC where Cno=@course group by Cno exec p_maxscore'0001'运行结果:命令已成功完成。

显示结果如图表3:图表3课程号为0001的最高分为68(3)创建存储过程,统计某个同学的平均分并返回统计结果。

(带输入和输出参数的存储过程)代码:create procedure p_avg @Sno char(10),@Result int outputasselect @Result =(select avg(Grade)from SCwhere Sno=@Sno)运行结果:命令已成功完成。

declare @Result int,@Sno char(10)set @Sno ='0002'exec p_avg @Sno ,@Result outputprint '学号为'+@Sno+'的平均分:'+cast(@Result as char(2))运行结果:学号为0002 的平均分:79(4)创建存储过程,统计某门课选修的人数,将人数返回。

(带返回值的存储过程)代码:create procedure p_num @Cno char(10),@Num int outputasselect @Num =(select count(Cno)from SCwhere Cno=@Cno)运行结果:命令已成功完成。

declare @Num int,@Cno char(4)set @Cno ='0002'exec p_num @Cno ,@Num outputprint '课程号为'+@Cno+'的人数:'+cast(@Num as char(2))运行结果:图表4选修课程号为0002的人数为2(5)创建存储过程,统计选修课程最多的学生的基本信息。

(存储过程的嵌套)代码:CREATE PROCEDURE p_maxAsselect * from Swhere Sno in(select top 1 Sno from SCgroup by Sno order by count(SC.sno)desc运行结果:命令已成功完成。

运行过程:exec p_max显示结果如图表5:图表5李四选修课最多为三门2.触发器的创建与使用语句格式:CREATE TRIGGER trigger_nameON { table | view }[ WITH ENCRYPTION ]{{ { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] }[ WITH APPEND ][ NOT FOR REPLICATION ]AS[ { IF UPDATE ( column )[ { AND | OR } UPDATE ( column ) ][ ...n ]| IF ( COLUMNS_UPDA TED ( ) { bitwise_operator } updated_bitmask ){ comparison_operator } column_bitmask [ ...n ]} ]sql_statement [ ...n ]}}(1)定义一个BEFORE行级触发器credit_TRIGER,当为C表插入新的课程信息时,若学分大于5分,自动修改为5分。

代码:create trigger credit_TRIGERon Cfor insertas beginUPDATE C set Ccredit=5from Cwhere Ccredit>5end;运行结果:命令已成功完成。

运行显示结果如图6图表 6 C表增加触发器credit_TRIGER(2)定义一个AFTER行级触发器,当SC表的成绩发生变动时,就自动在成绩变化表sc_log中增加一条新的纪录,该新纪录包括:操作者名称、操作日期、操作类型。

代码:创建表格:create table SC_log(SCname char(10),SCdata char(12),SCtype char(10))运行结果:命令已成功完成。

创建触发器:create trigger update_SCon SC after updateasinsert into SC_log(SCname ,SCdata,SCtype)values(user,convert(varchar(12),getdate(),1),'update')运行结果:命令已成功完成。

update SC set Grade=66 where Sno='0001'、运行结果:(所影响的行数为 1 行)运行显示结果如图7:图7每次更新插入一条记录(3)建立一个DELETE触发器,针对于SC表,每次只能删除一条信息。

代码:create trigger delete_SC on SC for delete asdeclare @row_cnt intselect @row_cnt=count(*) from SCif @row_cnt>1beginprint 'SC中每次允许删除一条记录'rollback transactionEnd运行结果:命令已成功完成。

运行显示结果如图:图表8建立触发器delete_SC验证语句:delete from SC where Sno='0002'验证结果:图表9删除时提示每次允许删除一条记录(4)建立一个UPDATE的触发器,不允许用户更改学生学号,若更改学号,给出提示信息:学号不允许更改。

代码:create trigger SC_update on Sfor updateasif update (Sno)beginprint '学号不允许更改';rollback ;end运行结果:命令已成功完成。

运行显示结果如图10:图表10建立触发器update_SC(5)执行相应的SQL语句,触发上述定义的触发器。

代码Update S set Sno=00014 where Sname='刘一'运行结果:学号不允许更改(6)删除触发器credit_TRIGER。

代码:if exists(select name from sysobjects where type='TR'and name='credit_TRIGER ') drop trigger credit_TRIGERGo运行结果:命令已成功完成。

如图无触发器图表10删除成功,无此触发器。

相关文档
最新文档