华南农业大学数据库系统概念实验报告四
数据库系统实验报告4(简单图书馆管理数据库的实现)

6
图书信息表:
2.还书后: 借阅信息表:
图书信息表:
备注: 1、表头及以下的栏目和内容,不得更改;其它栏目的位置可以适当调整,可以根据需要适当增加或减少 页。 2、本课程包含多次实验,请每次实验项目填写一份。
7
2
利用 sf_borrow,sf_return 进行借、还操作,并注意数据库中三个表的数据变化情况。 三、实验结果及分析 (一)创建数据库和数据表: 选择用企业管理器创建数据库、数据表
3
(二)数据相关操作: 1.查询:
2.删除:
4
删除后:
3.更新:
更新后:
(三)创建触发器、存储过程进行借还书操作: 1.针对借阅信息表的插入操作创建触发器,当借阅信息表进行插入操作时,自动根据书号,将图 书信息表相应记录的“状态”字段改为 0。 CREATE TRIGGER Insert_borrow ON dbo.借阅信息表 FOR INSERT AS begin update 图书信息表 set 状态=0 from Inserted i,图书信息表 t where t.书号=i.书号 end 2.针对借阅信息表的删除操作创建触发器,当借阅信息表进行删除操作时,自动根据书号,将图 书信息表相应记录的“状态”字段改为 1。
作者 sql c++ ms java c# net
状态 1 1 1 1 1 1
借书证号 1 2 3
姓名 张三 李四 王五
住址 学三 学四 学五
并对这两个表进行删除、更新、和查询等操作 三、创建触发器、和存储过程进行借、还书操作 1) 针对借阅信息表的插入操作创建触发器,当借阅信息表进行插入操作时,自动根据书号,将图 书信息表相应记录的“状态”字段改为 0。 2) 针对借阅信息表的删除操作创建触发器,当借阅信息表进行删除操作时,自动根据书号,将图 书信息表相应记录的“状态”字段改为 1。 3) 创建存储过程:sf_borrow,实现借书功能即:向借阅信息表进行插入操作,将书号、借书证 号,借书时间作为参数,并自动的将还书时间设置为借书时间后一个月。 4) 创建存储过程:sf_return,现实还书功能即:根据书号对借阅信息表进行删除操作,将书号 作为参数。
数据库系统实验报告

数据库系统实验报告一、实验目的通过本次实验,我们旨在进一步熟悉数据库系统的概念和原理,掌握数据库设计和查询的基本方法,提高数据库系统的实践能力。
二、实验内容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.学会使用数据库系统进行数据管理和查询。
二、实验设备1.计算机;2.数据库管理系统软件。
三、实验过程1.创建数据库通过数据库管理系统软件,我们首先需要创建一个新的数据库。
在数据库管理系统软件的界面上,点击“新建数据库”按钮,输入数据库名称、用户名、密码等信息,并确定创建。
2.设计数据表在创建完数据库后,我们需要设计数据表结构。
点击数据库管理系统软件界面上的“表设计”按钮,弹出数据表设计界面。
根据实验需求,在数据表设计界面上添加字段、设置字段类型、设置主键等,最后确定设计。
3.插入数据数据表设计好后,我们需要将数据插入到数据表中。
通过数据库管理系统软件,点击“插入数据”按钮,弹出插入数据界面。
在插入数据界面上,输入要插入的数据信息,点击确定插入。
4.查询数据将数据插入到数据表中后,我们需要查询特定的数据。
通过数据库管理系统软件,点击“查询数据”按钮,弹出查询数据界面。
在查询数据界面上,输入查询条件,点击确定查询。
系统将会返回符合条件的数据。
五、实验结果通过以上实验步骤,我们成功地创建了一个新的数据库,设计了数据表结构,并将数据插入到数据库中。
同时,我们还可以通过数据库管理系统软件查询数据并获取到结果。
这些实验结果表明我们对数据库系统的基本操作具有熟练掌握的能力。
六、实验总结通过本次实验,我们深入了解了数据库系统的基本概念和原理,掌握了数据库系统的基本操作方法,并成功地应用到实际数据管理和查询中。
通过实验,我们意识到数据库系统在现代信息管理中的重要性,并且清楚地了解到数据库系统的优势和应用场景。
通过进一步的学习和实践,我们相信我们可以更加熟练地应用数据库系统,并将其应用到实际工作中。
数据库系统概论实验报告

数据库系统概论实验报告一、实验目的1、了解数据库系统概论的定义、特点及应用;2、掌握数据库系统的结构及功能;3、熟悉SQL语言及其语法;4、掌握数据库系统的基本操作;5、掌握数据库查询、更新、分析及设计。
二、实验要求1、掌握数据库系统的基本概念,理解SQL语言的语法及用法;2、熟练掌握常用数据库系统的基本操作,实现常用的数据库查询、更新、分析及设计;3、掌握数据库系统的结构及功能;4、能够使用SQL语言编写复杂的查询和更新语句;5、能够实现复杂的数据库分析和设计。
三、实验内容1、理解数据库系统的定义、特点及应用;2、熟悉SQL语言的语法及用法;3、掌握数据库系统的基本操作;4、实现数据库查询、更新、分析及设计。
四、实验步骤1、准备实验数据库:在实验中使用的数据库是SQL Server 2000;2、用SQL语言完成数据表的构建工作:建立实验所需的数据表,分析实验的表结构,在数据库中建立实验所需的表格;3、用SQL语言完成数据操作工作:对实验数据库中表进行查询、插入、更新、删除等操作;4、用SQL语言进行数据报表输出,检查实验数据库中的数据是否正确;5、用SQL语言完成数据分析和设计:分析实验表格中的数据,根据实验的需要进行数据库的设计,进行数据的分析和挖掘;6、完成实验报告:按照实验要求,写出实验报告,给出实验结果,及讨论数据库实验中遇到的问题及解决方案。
五、实验总结本次实验使用的是SQL Server 2000的数据库,学习运用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”表中的所有学生信息。
数据库管理系统实验报告

数据库管理系统实验报告数据库管理系统实验报告引言:数据库管理系统(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);"实现向表中插入一条学生记录。
数据库系统概论实验报告

《数据库系统概论》上机实验报告院(系)名称:管理工程学院学生姓名:霍佳佳专业名称:电子商务1101班级学号:02112008提交时间: 2012年 12 月 6 日目录实验一MSSQL SERVER2000环境及主要工具 (3)实验二数据定义 (5)实验三数据更新 (10)实验四数据完整性 (13)实验五索引与视图 (17)实验六数据查询 (23)实验一MSSQL SERVER 2000 环境及主要工具一、实验目的:1.了解MSSQL SERVER 2000 提供的各种工具及其功能。
2.掌握企业管理器(Enterprise Manager)、服务管理器(Service Manager)、查询分析器(Query Analyzer)及联机文档(Books Online)的基本操作。
3.掌握通过企业管理器启动、关闭、注册和配置服务管理。
二、实验时间:2012-10-18三、实验内容及步骤:1.从开始菜单打开MSSQL SERVER 2000的服务管理器,设置其服务器为本机服务器,服务为SQL Server,并启动该服务器。
练习SQL Server 2000服务的开始、暂停、继续、停止等操作。
2.从开始菜单打开MSSQL SERVER 2000企业管理器,并将企业管理器与上述启动的服务器连接。
3.对企业服务器进行配置,将其在操作系统启动时自动启动SQL Server 的功能去掉;先将其身份验证修改为Windows和SQL Server 共同验证,再修改为Windows验证。
4.观察企业管理器的各个组成部分,练习有关的操作。
5.打开查询分析器,观察查询分析器的组成部分,练习有关的操作。
6.练习SQL Server 2000的联机丛书的使用,并使用联机丛书学习自己感兴趣的知识。
四、实验结果分析及总结1.了解并掌握MSSQL SERVER 2000提供的各种工具及其功能2.成功打开并运行MSSQL SERVER 2000的服务管理器、企业管理器和查询分析器等,并已熟练掌握其相关基本操作。
数据库系统实验报告

数据库系统实验报告一、实验目的本次数据库系统实验旨在通过实际操作,巩固和加深对数据库系统基本原理和操作的理解,提高数据库设计和管理的能力。
二、实验环境本次实验使用的数据库系统为MySQL,操作系统为Windows 10。
实验中使用了SQL语句来进行数据库的创建、数据的插入、查询和更新等操作。
三、实验内容1. 数据库的创建:首先在MySQL中创建一个名为"mydb"的数据库。
2. 创建表格:在"mydb"数据库中创建一个名为"students"的表格,包括字段有学号、姓名、性别和年龄。
3. 插入数据:向"students"表格中插入几条学生信息的数据。
4. 查询操作:利用SQL语句查询"students"表格中的数据,比如查询所有学生信息、查询特定学生的信息等。
5. 更新操作:使用UPDATE语句对"students"表格中的数据进行更新,比如修改学生的年龄等。
四、实验步骤1. 打开MySQL数据库并连接至"mydb"数据库。
2. 创建名为"students"的表格,设定字段为学号、姓名、性别和年龄。
3. 插入几条学生信息的数据如下:学号姓名性别年龄001 张三男 20002 李四女 214. 运行SQL语句查询"students"表格中所有学生信息。
5. 运行UPDATE语句,将学号为001的学生年龄修改为22岁。
五、实验结果通过实验操作,成功创建了数据库和表格,并成功插入了学生信息的数据。
查询操作和更新操作也均成功,数据库系统运行良好。
六、实验总结本次数据库系统实验对于巩固数据库基础知识和操作技能有很大帮助。
通过实践操作,加深了对SQL语句和数据库管理的理解,提高了数据处理和操作的能力。
希望在以后的学习和工作中能够更熟练地运用数据库系统进行数据管理和处理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据库系统》实验报告四
学
号
姓名实验时间2014-12-3
实
验
名
称
数据库模式管理实验学时 4
准备材料1. SQL Plus命令手册
2. Oracle数据字典
3. Oracle中的数据类型
扩展实验1. 掌握在企业管理器中进行表的创建和管理的方法。
2. 利用企业管理器观察数据库的物理模式。
(此部分内容不要求在实验室完成,不用写入实验报告。
)
实验环境Oracle 9i(及以上版本)服务器
SQL Plus/ SQL Plus work sheet客户端
实验目的1.掌握使用SQL语句进行表的创建和管理的方法2.加深对关系数据库结构和数据完整性等概念的理解
实验内容及步骤1.创建书上university数据库中所有的表,并使用命令观察用户所有表的表
名、观察每张表的结构及每张表上的约束信息。
select * from user_tables;
desc SECTION;
select * from user_constraints where table_name = 'SECTION';
2. 修改表结构
(1) 在instructor表中增加列存储教师家庭地址,其地址包括省、市、区、街道、门牌号等列,列的数据类型自己给出,列允许为空。
alter table instructor add (province varchar(30),city varchar(30),street varchar(30),house_number varchar(30));
(2) .对student表中的姓名字段长度都改为10,设置是否成功?原因是什么?将该字段长度改为50,能否成功?说明原因。
alter table student modify name varchar(10);
修改成功
alter table student modify name varchar(50);
修改成功
只要修改的长度若大于已存在的字符的最大长度都行
(3) 为student表中tot_cred列设置默认值0,插入一个新学生,且不给其tot_cred列赋值,观察结果。
alter table student modify tot_cred default 0;
insert into student (ID,NAME,DEPT_NAME) values(110,'zhuanghan','Finance'); select ID,NAME,DEPT_NAME from student;
(4) student表中tot_cred列是对总学分的统计,现在数据库中没有记录哪些学生已选修课程学分已累加,哪些课程的学分还没有累加。
设计一种方案记录已累加课程,防止出现重复累加的情况。
或者设计一种方案简化总学分的计算过程。
方案:对takes表增加多一个字段isComputed作为标记,已经被累加的则这个字段为1,没有被累加的为零,统计时就只需要找到takes上isComputed 为0的数据进行累加
(5) 删除takes表上对student表ID的外键约束,再添加takes表是对student 表ID 的外键约束,观察并解释实验结果。
添加一个不存在的学生选修CS001课程的信息,并给他一个成绩。
再添加takes表是对student表ID 的外键约束,观察并解释实验结果。
ALTER TABLE TAKES DROP CONSTRAINT SYS_C0054665;
ALTER TABLE TAKES ADD CONSTRAINT SYS_C0054665 FOREIGN KEY(id) REFERENCES STUDENT(id);
insert into takes values ('1111','CS-001','1','Spring','2013','A');
ALTER TABLE TAKES ADD CONSTRAINT SYS_C0054665 FOREIGN KEY(id) REFERENCES STUDENT(id);
(6) 设置takes表ID, course_id,sec_id三个字段非空,是否能设置成功,对插入数据有没有影响?删除takes表主键约束,增加某同学选同一门课程(id, couese_id, sec_id, semester, year, grade都相同)的信息,能否插入成功?解释原因。
alter table takes modify(ID not null,course_id not null,sec_id not null);
插入的数据这三个字段必须不为空,修改设置时,如果字段有为NULL则修改失败。
ALTER TABLE TAKES DROP PRIMARY KEY;
3. 参照表student建立一张空表student1。
要求用两种方法实现(create table; create table as …)。
create table student1
(ID varchar(5),
name varchar(20) not null,
dept_name varchar(20),
tot_cred numeric(3,0) check (tot_cred >= 0),
primary key (ID),
foreign key (dept_name) references department on delete set null
);
create table student2 as select * from student;
4. 选择某个约束,分别设置其有效、失效,观察区别。
ALTER TABLE STUDENT ENABLE CONSTRAINT SYS_C0054432;
ALTER TABLE STUDENT DISABLE CONSTRAINT SYS_C0054432;
选择STUDENT里面的tol_red>0的约束条件,将其置为有效和无效后重新查看约束状态等都看不出区别;唯一的解释是更改约束状态不改变数据库的数据。
出
现
问
题
创建表时设置了约束条件,但没有设置约束名,怎么知道约束名是什么?
解决方案(列出遇到的问题及其解决方法)。