最新数据库管理系统实验报告含答案

合集下载

数据库系统实验报告

数据库系统实验报告

数据库系统实验报告一、实验目的通过本次实验,我们旨在进一步熟悉数据库系统的概念和原理,掌握数据库设计和查询的基本方法,提高数据库系统的实践能力。

二、实验内容1.数据库设计在本次实验中,我们设计了一个针对学生信息管理的数据库系统。

该系统包括以下实体和属性:- 学生(Student):学生ID、姓名、年龄、性别、班级- 课程(Course):课程ID、课程名称、学分、授课教师- 成绩(Score):学生ID、课程ID、成绩2.数据库查询我们按照以下要求进行了一系列的数据库查询:-查询所有学生的基本信息;-查询所有课程的详细信息;-查询每个学生的姓名、班级和平均成绩;-查询每门课程的平均分和最高分;-查询一些学生的所有课程成绩。

三、实验步骤1.数据库设计2.数据库查询我们使用SQL语言进行数据库查询,按照实验要求编写了相应的查询语句。

在MySQL Workbench中,我们启动了数据库服务,并打开一个查询窗口。

通过输入查询语句,我们获得了所需的查询结果。

同时,我们还使用了一些SQL函数和关键字,如COUNT、AVG、GROUP BY和JOIN,以实现更复杂的查询。

四、实验结果经过多次查询和测试,我们得到了如下的实验结果:-查询所有学生的基本信息:SELECT * FROM Student;-查询所有课程的详细信息:SELECT * FROM Course;-查询每个学生的姓名、班级和平均成绩:SELECT , Student.class, AVG(Score.score)FROM Student JOIN Score ON Student.studentID =Score.studentIDGROUP BY , Student.class;-查询每门课程的平均分和最高分:SELECT , AVG(Score.score), MAX(Score.score)FROM Course JOIN Score ON Course.courseID = Score.courseID GROUP BY ;-查询一些学生的所有课程成绩:SELECT , Score.scoreFROM Course JOIN Score ON Course.courseID = Score.courseID WHERE Score.studentID = "学生ID";五、实验总结通过本次实验,我们深入理解了数据库系统的设计和查询原理,并通过实际操作掌握了数据库系统的基本使用方法。

数据库实验报告完整版

数据库实验报告完整版

一、实验目的1. 掌握数据库的基本概念和原理;2. 熟悉数据库的创建、修改和删除操作;3. 掌握SQL语句的使用,包括数据查询、数据插入、数据更新和数据删除;4. 学会使用数据库管理系统进行数据管理。

二、实验环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 5.73. 开发工具:Visual Studio Code三、实验内容1. 创建数据库和表(1)创建数据库```sqlCREATE DATABASE testdb;```(2)选择数据库```sqlUSE testdb;```(3)创建表```sqlCREATE TABLE students (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),age INT,gender CHAR(1),class VARCHAR(50));```2. 插入数据```sqlINSERT INTO students (name, age, gender, class) VALUES ('张三', 20, '男', '计算机科学与技术');INSERT INTO students (name, age, gender, class) VALUES ('李四', 21, '女', '软件工程');INSERT INTO students (name, age, gender, class) VALUES ('王五', 22, '男', '电子信息工程');```3. 查询数据(1)查询所有学生信息```sqlSELECT FROM students;```(2)查询年龄大于20岁的学生信息```sqlSELECT FROM students WHERE age > 20;```(3)查询性别为“男”的学生信息```sqlSELECT FROM students WHERE gender = '男';```4. 更新数据```sqlUPDATE students SET age = 21 WHERE name = '张三';```5. 删除数据```sqlDELETE FROM students WHERE name = '李四';```6. 删除表```sqlDROP TABLE students;```四、实验结果与分析1. 创建数据库和表:实验过程中成功创建了名为testdb的数据库,并在该数据库下创建了students表,包含id、name、age、gender和class五个字段。

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

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

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

本次实验的具体目的包括: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”表中的所有学生信息。

数据库管理系统实验报告

数据库管理系统实验报告

数据库管理系统实验报告数据库管理系统实验报告引言:数据库管理系统(Database Management System,简称DBMS)是一种用于管理和组织数据的软件系统。

它可以帮助用户存储、检索、更新和管理数据,提供高效的数据处理和数据访问功能。

在本次实验中,我们使用了一款名为MySQL的开源数据库管理系统,通过实际操作来深入了解数据库的基本原理和功能。

一、实验目的本次实验的目的是通过使用MySQL数据库管理系统,掌握数据库的创建、表的设计、数据的插入和查询等基本操作,进一步理解数据库的结构和运行机制。

二、实验环境本次实验使用的实验环境如下:1. 操作系统:Windows 102. 数据库管理系统:MySQL 8.03. 开发工具:MySQL Workbench三、实验过程1. 数据库的创建在MySQL Workbench中,我们首先创建了一个名为"mydb"的数据库。

通过SQL语句"CREATE DATABASE mydb;"实现数据库的创建。

在创建数据库时,我们可以指定数据库的名称、字符集、排序规则等参数。

2. 表的设计在数据库中,数据以表的形式进行组织和存储。

在本次实验中,我们创建了一个名为"students"的表,用于存储学生的信息。

表的设计包括了学生的学号、姓名、性别、年龄等字段。

通过SQL语句"CREATE TABLE students (id INT PRIMARY KEY, name VARCHAR(20), gender VARCHAR(10), age INT);"实现表的创建。

在创建表时,我们需要指定表的名称、字段的名称和类型、字段的约束等。

3. 数据的插入在表的设计完成后,我们可以向表中插入数据。

通过SQL语句"INSERT INTO students (id, name, gender, age) VALUES (1, '张三', '男', 20);"实现向表中插入一条学生记录。

数据库管理系统实验报告doc

数据库管理系统实验报告doc

数据库管理系统实验报告篇一:数据库_图书馆管理系统实验报告数据库课程设计报告专业:计算机科学与技术班级: 03 组长:张云60 组员:王冉28指导教师:袁道华成绩:XX年12月16日一、课程设计概述1. 课程设计背景课程需要开发一个图书管理系统,要求在读者登记处可以将读者的信息添加,信息系统中保存,当读者信息发生变化,对计算机内容进行修改,当读者办理退卡手续要删除此读者信息,图书管理负责图书和出版社的管理,读书借还处进行借书管理,还书管理,库存查询,图书排行榜,生成超期未还书的读者,进行通知.给不同用户设置不同权限,供用户访问数据库。

2. 编写目的熟练掌握mysql中的创建数据库、创建表、显示、查询、select语句、视图、存储过程、创建检索、对表的添加、删除、修改和用户权限的设置等基本运用,并通过编写这个图书管理系统来实际演练。

3. 软件定义Mysql是目前最流行的开源的中小型关系数据管理系统,目前被广泛的应用于internet上得中小型网站中,它由mysql AB公司开发、发布并支持。

本实验用的是mysql 5.1版本4. 开发环境本实验用的是mysql 5.1版本,windowsXX二、需求分析1. 问题的提出1:怎么通过mysql和信息之间的关系来创建图书管理系统的数据库及表? 2:怎样来实现对插入读者信息并保存、修改及删除? 3:怎么来实现对图书的管理?4:怎样实现对借书后在读书借还处添加读者借书信息和还书后删除读者借还处中的借书信息且更新图书管理处的图书数量?5:怎么实现对超期读者进行罚款操作和生成这些读者的名单,以方便通知? 6:怎样实现图书的借书排行榜和查看库存书量?7:怎么样来根据不同用户对数据库的等级的不同来设置这些用户的权限?2. 需要完成的功能及各部分功能概述1:读者登记建卡处的功能是对读者基本信息进行登记,读者信息发生变化对读者基本信息进行修改,读者要求退还借书卡时对读者信息进行删除等操作。

数据库系统实验报告

数据库系统实验报告

数据库系统实验班级姓名学号任课教师计算机学院实验一:基本SQL语言1.实验目标1.1.熟练掌握基本的SQL语言。

能够利用SQL定义语言(DDL)创建、删除和修改数据库的基本对象(表、视图、约束和索引等),利用SQL查询语言(Select)对数据中数据进行检索,利用SQL修改语言(Insert、Update、Delete)对数据中数据进行插入、修改和删除操作。

能够利用SQL控制语言(DCL)将数据库的基本对象(表和视图等)的各种权限授予其它用户。

1.2.熟悉SQL Server 2000的交互式SQL语言的操作环境。

能够利用查询分析器进行SQL语言的编辑和提交。

2.实验要求2.1.写出以下各个实验的SQL语句。

2.2.在SQL Server 2000的查询分析器环境中执行SQL语句,写出每次执行的结果。

2.3.对于错误的执行结果,分析产生错误的原因,并写出纠正错误的方案。

2.4.SQL语句的书写规范,要求每个查询子句独占一行,如:Select SNO, SNAMEFrom SWhere Sage>=20 ;注意:每次实验之后请作好数据库备份。

下次实验之前进行数据库恢复。

3.实验课时本次实验共计10课时。

4.实验数据本次实验中用到6个关系表(当前用户):COURSE(课程)、DEPT(系)、S(学生)、PROF(教师)、PC(授课)、SC(选修)。

4.1.关系模式。

4.2.6个关系表的定义。

⑵DEPT(系)4.3.6个关系表的元组数据。

5.实验步骤5.1.SQL Server 2000数据库的安装、启动和创建新的数据库。

SQL Server 2000已安装在本机,一般采用的是Windows认证方式。

因此当你以默认Windows用户administrator登陆进window操作系统之后,你就可以直接通过服务管理器启动SQL Server 2000。

启动成功之后的状态如下(启动成功之后,可以关闭服务管理器):之后可以通过打开查询分析器登陆到SQL Server 2000,建立和DBMS的会话。

数据库实验报告及答案

数据库实验报告及答案

实验任务书(实验一、实验二)课程名称:数据库原理与技术实验报告要求:1.列出所有的SQL语句和源代码;2.程序要求有适当的注释;3.对数据完整性约束实施要求给出相应的测试用例。

4.实验报告提交电子档。

实验内容:一:创建表、更新表和实施数据完整性1.运行给定的SQL Script,建立数据库GlobalToyz。

2.了解表的结构,建立所有表的关系图。

3.利用系统定义的存储过程sp_helpdb查看数据库的相关信息,例如所有者、大小、创建日期等。

4.查看所有表中出现的约束(包括Primary key, Foreign key, check constraint, default, unique)5.把价格在$20以上的所有玩具的信息拷贝到称为PremiumToys的新表中。

SELECT*INTO PremiumToysFROM ToysWHERE Toys.mToyRate>20;6.对表Toys实施下面数据完整性规则:(1)玩具的现有数量应在0到200之间;(2)玩具适宜的最低年龄缺省为1。

ALTER TABLE ToysADD CONSTRAINT C1CHECK (siToyQoh BETWEEN 0 AND 200);ALTER TABLE ToysADD CONSTRAINT C2default(1)for siLowerAge;7.给id为‘000001’玩具的价格增加$1。

update Toys set mToyRate=mToyRate+1 where cToyId='000001';8. 列出表PickofMonth中的所有记录,并显示中文列标题。

SELECT cToyId[玩具编号],siMonth[生产月份],iYear[生产年份],iTotalSold [销售总量]FROM PickofMonth;二:查询数据库1.显示属于California和Illinoi州的顾客的名、姓和emailID。

数据库技术实验报告的答案

数据库技术实验报告的答案

数据库技术实验报告的答案实验目的:本次实验旨在加深对数据库管理系统(DBMS)的理解,掌握数据库设计、实现和查询的基本技能,并通过实际操作来熟悉SQL语言的运用。

实验环境:1. 操作系统:Windows 102. 数据库管理系统:MySQL 8.03. 开发工具:Visual Studio Code实验内容:1. 数据库的创建与设计2. 数据表的创建与数据类型选择3. 数据的插入、更新与删除4. SQL查询语句的编写与执行5. 数据库的备份与恢复实验步骤与结果:1. 数据库的创建与设计:- 使用MySQL命令行工具创建名为“StudentsDB”的数据库。

- 设计了三个表:Students(学生信息),Courses(课程信息),Enrollments(选课信息)。

2. 数据表的创建与数据类型选择:- 为Students表创建字段:StudentID(INT,主键),Name (VARCHAR(50)),Age(INT),Gender(CHAR(1))。

- 为Courses表创建字段:CourseID(INT,主键),CourseName (VARCHAR(100)),Credits(INT)。

- 为Enrollments表创建字段:EnrollmentID(INT,主键),StudentID(INT),CourseID(INT),Grade(CHAR(2)),并设置StudentID和CourseID为外键。

3. 数据的插入、更新与删除:- 向Students表插入了10条学生记录。

- 向Courses表插入了5门课程记录。

- 通过Enrollments表记录了学生的选课情况,包括成绩。

- 使用UPDATE语句更新了学生的选课成绩。

- 使用DELETE语句删除了某些学生的选课记录。

4. SQL查询语句的编写与执行:- 编写了多条SELECT语句,查询了学生信息、课程信息以及学生的选课情况。

- 使用了JOIN操作查询了学生与其选修课程的关联信息。

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

武汉纺织大学《最新数据库管理系统》课程实验报告班级: _______姓名:实验时间:年月日指导教师:_______一、实验目的1、通过实验,使学生全面了解最新数据库管理系统的基本内容、基本原理。

2、牢固掌握SQL SERVER的功能操作和Transact-SQL语言。

3、紧密联系实际,学会分析,解决实际问题。

学生通过小组项目设计,能够运用最新数据库管理系统于管理信息系统、企业资源计划、供应链管理系统、客户关系管理系统、电子商务系统、决策支持系统、智能信息系统中等。

二、实验内容1.导入实验用示例数据库:f:\教学库.mdff:\教学库_log.ldff:\仓库库存.mdff:\仓库库存_log.ldf1.1 将数据库导入在SqlServer 2005 导入已有的数据库(*.mdf)文件,在SQL Server Management Studio 里连接上数据库后,选择新建查询,然后执行语句EXEC sp_attach_db @dbname = '教学库',@filename1 = 'f:\教学库.mdf',@filename2 = 'f:\教学库_log.ldf'gouse [教学库]EXEC sp_changedbowner 'sa'goEXEC sp_attach_db @dbname = '仓库库存',@filename1 = 'f:\仓库库存.mdf',@filename2 = 'f:\仓库库存_log.ldf'gouse [仓库库存]EXEC sp_changedbowner 'sa'go1.2 可能出现问题附加数据库出现“无法打开物理文件"X.mdf"。

操作系统错误5:"5(拒绝访问。

)"。

(Microsoft SQL Server,错误: 5120)”。

解决:找到要附加的.mdf文件-->右键-->属性-->安全-->选择当前用户-->编辑-->完全控制。

对.log文件进行相同的处理。

2.删除创建的数据库,使用T-SQL语句再次创建该数据库,主文件和日志文件的文件名同上,要求:仓库库存_data最大尺寸为无限大,增长速度为20%,日志文件初始大小为2MB,最大尺寸为5MB,增长速度为1MB。

CREATE DATABASE仓库库存(NAME = '仓库库存_data',FILENAME = 'F:\仓库库存_data.MDF' ,SIZE = 10MB,FILEGROWTH = 20%)LOG ON(NAME ='仓库库存_log',FILENAME = 'F:\仓库库存_log. LDF',SIZE = 2MB,MAXSIZE = 5MB,FILEGROWTH = 1MB)2.1 在数据库“仓库库存”中完成下列操作。

(1)创建“商品”表,表结构如表1:(2)创建“仓库”表,表结构如表2:(3)创建“库存情况”表,表结构如表3:(1)USE仓库库存GOCREATE TABLE 商品(商品编号char(6) NOT NULL PRIMARY KEY,商品名称char(20) NOT NULL,单价Float,生产商Varchar (30))(2),(3)略。

2.2 建立“商品”表、“仓库”表和“库存情况”表三表之间的关系图。

2.3分别给“商品”表、“仓库”表和“库存情况”表添加数据。

3.数据库查询.3.1 试用SQL的查询语句实现下列查询:(1)统计有学生选修的课程门数。

答:SELECT COUNT(DISTINCT 课程号) FROM 选课(2)求选修C004课程的学生的平均年龄。

答:SELECT A VG(年龄) FROM 学生,选课WHERE 学生.学生号=选课.学生号and 课程号=’C004’(3)求学分为3的每门课程的学生平均成绩。

答:SELECT 课程.课程号,AVG(成绩) FROM 课程,选课WHERE 课程.课程号=选课.课程号and 学分=3GROUP BY 课程.课程号(4)统计每门课程的学生选修人数,超过3人的课程才统计。

要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。

答:SELECT 课程号,COUNT(*) FROM 选课GROUP BY 课程号HAVING COUNT(*) >3ORDER BY COUNT(*) DESC, 课程号(5)检索学号比王明同学大,而年龄比他小的学生姓名。

答:SELECT姓名FROM学生WHERE学生号>(SELECT学生号FROM学生WHERE姓名='王明')and年龄<(SELECT年龄FROM学生WHERE姓名='王明')(6)检索姓名以王打头的所有学生的姓名和年龄。

答:SELECT 姓名,年龄FROM 学生WHERE 姓名LIKE ‘王%’(7)在选课表中检索成绩为空值的学生学号和课程号。

答:SELECT 学生号,课程号FROM 选课WHERE 成绩IS NULL(8)求年龄大于女同学平均年龄的男学生姓名和年龄。

答:SELECT 姓名,年龄FROM 学生WHERE 性别=’男’and 年龄>(SELECT A VG(年龄) FROM 学生WHERE 性别=’女’)(9)求年龄大于所有女同学年龄的男学生姓名和年龄。

答:SELECT 姓名,年龄FROM 学生WHERE 性别=’男’and 年龄> all (SELECT 年龄FROM 学生WHERE 性别=’女’)(10)检索所有比王明年龄大的学生姓名、年龄和性别。

答:SELECT 姓名,年龄,性别FROM 学生WHERE 年龄> (SELECT 年龄FROM 学生WHERE 姓名=’王明’)(11)检索选修课程C001的学生中成绩最高的学生的学号。

答:SELECT 学生号FROM 选课WHERE 课程号=’C001’ and 成绩=(SELECT MAX(成绩) FROM选课WHERE课程号=’C001’)(12)检索学生姓名及其所选修课程的课程号和成绩。

答:SELECT 姓名, 课程号, 成绩FROM 学生,选课WHERE学生.学生号=选课.学生号(13)检索选修2门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。

答:SELECT 学生号,SUM(成绩) FROM 选课WHERE 成绩>=60GROUP BY学生号HA VING COUNT(*)>=2ORDER BY SUM(成绩) DESC3.2 利用控制流语句,查询学生号为0101001的学生的各科成绩,如果没有这个学生的成绩,就显示“此学生无成绩”。

答:IF EXISTS ( SELECT * FROM 选课WHERE 学生号='0101001')SELECT 课程号,成绩FROM 选课WHERE 学生号='0101001'ELSEPRINT '此学生无成绩'3.3 用函数实现:求某个专业选修了某门课的学生人数。

答:CREATE FUNCTION renshu(@p char(10),@cn char(4)) RETURNS float ASBEGINDECLARE @cou floatSELECT @cou=( SELECT count(*) FROM 学生,选课WHERE学生.学生号=选课.学生号and课程号=@cnand 专业=@p)RETURN @couEND3.4 用函数实现:查询某个专业所有学生所选的每门课的平均成绩。

答:CREATE FUNCTION average (@p char(10)) RETURNS floatASBEGINDECLARE @aver floatSELECT @aver=( SELECT 课程号,avg(成绩) FROM 学生,选课WHERE学生.学生号=选课.学生号and 专业=@pGROUP BY 课程号)RETURN @averEND3.5 针对“仓库库存”中的“商品”表,查询商品的价格等级,商品号、商品名和价格等级(单价1000元以内为“低价商品”,1000~3000元为“中等价位商品”,3000元以上为“高价商品”)。

答:SELECT商品编号, 商品名称,CASEWHEN 单价<1000 then '低价商品'WHEN 单价<3000 then '中等价位商品'WHEN 单价>=3000 then '高价商品'END AS 价格等级FROM 商品4.视图与索引4.1在SQL Server Management Studio中创建一个仓库库存信息视图,要求包含仓库库存数据库中三个表的所有列。

答:略。

4.2 利用T-SQL语句创建一个查询每个学生的平均成绩的视图,要求包含学生的学生号和姓名。

答:CREATE VIEW 学生_平均成绩ASSELECT 学生.学生号,姓名,avg(成绩) AS平均成绩FROM 学生,选课WHERE 学生.学生号=选课.学生号GROUP BY学生.学生号,姓名4.3 在SQL Server Management Studio中按照选课表的成绩列升序创建一个普通索引(非唯一、非聚集)。

答:略。

4.4 利用T-SQL语句按照商品表的单价列降序创建一个普通索引。

答:CREATE INDEX index_商品单价ON 商品(单价DESC)5.存储过程、触发器和游标5.1 创建存储过程,计算指定学生(姓名)的总成绩,存储过程中使用一个输入参数(姓名)和一个输出参数(总成绩)。

答:CREATE PROCEDURE Sname @S_n varchar(20), @sum1 int OUTPUT ASSELECT @sum1= sum(成绩) FROM 选课,学生WHERE 姓名=@S_n and 学生.学生号=选课.学生号5.2 在教学库中建一个学生党费表,属性(学生号,姓名,党费),学生号是主键,也是外键(参考学生表的学生号);创建一个触发器,保证只能在每年的6月和12月交党费,如果在其它时间录入则显示提示信息。

答:CREATE TABLE 学生党费表(学生号CHAR(7)primary key foreign key references 学生(学生号),姓名char(6),党费int)CREATE TRIGGER trg_学生党费表on 学生党费表for insertASif not(datepart(mm,getdate())='06' or datepart(mm,getdate())='12')BEGINprint'对不起,只能在每年的6月和12月交党费'rollbackEND6.事务与并发控制6.1 创建一个事务,将所有女生的考试成绩都加5分,并提交。

相关文档
最新文档