本文目录导读:
图片来源于网络,如有侵权联系删除
实验目的
本次实验旨在通过使用关系数据库标准语言SQL,对关系数据库进行设计与实现,掌握SQL语言的基本操作,提高数据库应用能力。
实验环境
1、操作系统:Windows 10
2、数据库管理系统:MySQL 5.7
3、开发工具:Visual Studio Code
1、数据库设计
(1)需求分析
本实验以一个图书管理系统为例,需求包括以下模块:
- 用户管理:包括用户登录、注册、修改密码等功能;
- 图书管理:包括图书查询、添加、删除、修改等功能;
- 借阅管理:包括借阅查询、归还、续借等功能;
- 系统管理:包括系统设置、日志查询等功能。
(2)概念结构设计
图片来源于网络,如有侵权联系删除
根据需求分析,设计图书管理系统的E-R图,包含以下实体:
- 用户(User):包括用户名、密码、姓名、性别、联系方式等信息;
- 图书(Book):包括书名、作者、出版社、出版日期、ISBN、价格等信息;
- 借阅(Borrow):包括借阅人、图书编号、借阅日期、归还日期、状态等信息。
(3)逻辑结构设计
根据E-R图,设计图书管理系统的关系模式:
- 用户(User):用户名(主键)、密码、姓名、性别、联系方式;
- 图书(Book):书名、作者、出版社、出版日期、ISBN、价格;
- 借阅(Borrow):借阅人、图书编号(外键)、借阅日期、归还日期、状态。
2、数据库实现
(1)创建数据库
CREATE DATABASE BookManagementSystem;
(2)创建表
图片来源于网络,如有侵权联系删除
-- 创建用户表 CREATE TABLE User ( username VARCHAR(50) PRIMARY KEY, password VARCHAR(50), name VARCHAR(50), gender CHAR(1), phone VARCHAR(20) ); -- 创建图书表 CREATE TABLE Book ( bookname VARCHAR(100), author VARCHAR(50), publisher VARCHAR(50), publishdate DATE, isbn VARCHAR(20), price DECIMAL(10, 2) ); -- 创建借阅表 CREATE TABLE Borrow ( username VARCHAR(50), bookid VARCHAR(20), borrowdate DATE, returndate DATE, status VARCHAR(20), PRIMARY KEY (username, bookid), FOREIGN KEY (username) REFERENCES User(username), FOREIGN KEY (bookid) REFERENCES Book(isbn) );
(3)插入数据
-- 插入用户数据 INSERT INTO User (username, password, name, gender, phone) VALUES ('admin', '123456', '管理员', 'M', '13800138000'); INSERT INTO User (username, password, name, gender, phone) VALUES ('user1', '123456', '张三', 'M', '13800138001'); INSERT INTO User (username, password, name, gender, phone) VALUES ('user2', '123456', '李四', 'F', '13800138002'); -- 插入图书数据 INSERT INTO Book (bookname, author, publisher, publishdate, isbn, price) VALUES ('Java编程思想', '埃克尔·巴特', '电子工业出版社', '2019-01-01', '9787121303567', 69.00); INSERT INTO Book (bookname, author, publisher, publishdate, isbn, price) VALUES ('Python编程:从入门到实践', '埃里克·马瑟斯', '人民邮电出版社', '2018-05-01', '9787115484347', 59.00); INSERT INTO Book (bookname, author, publisher, publishdate, isbn, price) VALUES ('C++ Primer', 'Stanley B. Lippman', '电子工业出版社', '2018-01-01', '9787121319347', 79.00); -- 插入借阅数据 INSERT INTO Borrow (username, bookid, borrowdate, returndate, status) VALUES ('user1', '9787121303567', '2020-01-01', '2020-01-15', '已归还'); INSERT INTO Borrow (username, bookid, borrowdate, returndate, status) VALUES ('user2', '9787115484347', '2020-01-02', '2020-01-16', '已归还');
(4)查询操作
-- 查询所有图书信息 SELECT * FROM Book; -- 查询张三借阅的图书信息 SELECT * FROM Borrow WHERE username = 'user1'; -- 查询剩余图书数量 SELECT COUNT(*) FROM Book WHERE isbn NOT IN (SELECT bookid FROM Borrow WHERE status = '已归还');
3、实验总结
通过本次实验,掌握了关系数据库标准语言SQL的基本操作,能够使用SQL语句对关系数据库进行设计、实现和查询,在实验过程中,需要注意以下几点:
(1)熟悉SQL语言的基本语法和常用函数;
(2)掌握数据库设计的基本原则,如规范化、完整性等;
(3)注意SQL语句的执行顺序和嵌套查询;
(4)了解数据库性能优化方法。
实验心得
本次实验让我深刻认识到数据库在信息管理中的重要性,通过使用SQL语言,我能够轻松地实现对关系数据库的操作,提高了我的数据库应用能力,在实验过程中,我遇到了一些问题,如数据插入、查询等,通过查阅资料和请教同学,最终解决了这些问题,这次实验让我对数据库有了更深入的了解,为以后的学习和工作打下了良好的基础。
标签: #关系数据库标准语言SQL实验报告
评论列表