如何进行MySQL练习数据库的操作与管理?
- 行业动态
- 2025-01-07
- 2682
mysql练习数据库是一个用于学习和掌握mysql数据库技术的虚拟环境。
MySQL练习数据库是学习MySQL数据库管理系统的重要工具,它可以帮助用户通过实际操作来掌握SQL语言的基本语法和高级技巧,以下是一个详细的MySQL练习数据库示例,包括表结构设计、数据插入以及一些常见的查询操作。
一、数据库设计
我们需要创建一个名为library的数据库,并在其中创建几个相关的数据表,这些表包括图书类别表(booktype)、图书信息表(book)、图书存储信息表(bookstorage)、读者类别表(readertype)、读者信息表(reader)和图书借阅表(bookborrow),每个表都有其特定的字段和属性,以满足图书馆管理系统的需求。
1. 图书类别表(booktype)
属性名称 | 含义 | 数据类型 | 是否为空 | 备注 |
typeid | 类别编号 | int | not null | 主键 |
typename | 类别名称 | varchar(20) | not null |
2. 图书信息表(book)
属性名称 | 含义 | 数据类型 | 是否为空 | 备注 |
bookid | 图书编号 | char(10) | not null | 主键 |
bookname | 图书名称 | varchar(20) | not null | |
typeid | 类别编号 | int | not null | 外键 |
bookauthor | 图书作者 | varchar(20) | not null | |
bookpublisher | 出版社 | varchar(50) | not null | |
bookprice | 图书价格 | double | not null | |
borrowsum | 借阅次数 | int | not null |
3. 图书存储信息表(bookstorage)
属性名称 | 含义 | 数据类型 | 是否为空 | 备注 |
bookbarcode | 图书条码 | char(20) | not null | 主键 |
bookid | 图书编号 | char(10) | not null | 外键 |
bookintime | 图书入馆时间 | datetime | not null | |
bookstatus | 图书状态 | varchar(4) | not null |
4. 读者类别表(readertype)
属性名称 | 含义 | 数据类型 | 是否为空 | 备注 |
retypeid | 类别编号 | int | not null | 主键 |
typename | 类别名称 | varchar(20) | not null | |
borrowquantity | 可借数量 | int | not null | |
borrowday | 可借天数 | int | not null |
5. 读者信息表(reader)
属性名称 | 含义 | 数据类型 | 是否为空 | 备注 |
readerid | 读者编号 | char(10) | not null | 主键 |
readername | 读者姓名 | varchar(20) | not null | |
readerpass | 读者密码 | varchar(20) | not null | |
retypeid | 类别编号 | int | not null | 外键 |
readerdate | 发证日期 | datetime | not null | |
readerstatus | 借书证状态 | varchar(4) | not null |
6. 图书借阅表(bookborrow)
属性名称 | 含义 | 数据类型 | 是否为空 | 备注 |
borrowid | 借阅号 | char(10) | not null | 主键 |
bookbarcode | 图书条码 | char(20) | not null | 外键 |
readerid | 读者编号 | char(10) | not null | 外键 |
borrowtime | 借书日期 | datetime | not null | |
returntime | 还书日期 | datetime | not null | |
borrowstatus | 借阅状态 | varchar(4) | not null |
二、数据插入
我们需要在创建的表中插入一些数据,以下是各个表的数据插入示例:
1. 图书类别表(booktype)
INSERT INTObooktype (typeid,typename) VALUES (1, '自然科学'), (2, '数学'), (3, '计算机'), (4, '建筑水利'), (5, '旅游地理'), (6, '励志/自我实现'), (7, '工业技术'), (8, '基础医学'), (9, '室内设计'), (10, '人文景观');
2. 图书信息表(book)
INSERT INTObook (bookid,bookname,typeid,bookauthor,bookpublisher,bookprice,borrowsum) VALUES ('TP39/1712', 'Java程序设计', 3, '陈永红', '机械工业出版社', 35.5, 30), ('013452', '离散数学', 2, '张小新', '机械工业出版社', 45.5, 10), ('TP/3452', 'JSP程序设计案例', 3, '刘城清', '电子工业出版社', 42.8, 8), ('TH/2345', '机械设计手册', 7, '黄明凡', '人民邮电出版社', 40, 10), ('R/345677', '中医的故事', 8, '李奇德', '国防工业出版社', 20.0, 5);
3. 图书存储信息表(bookstorage)
INSERT INTObookstorage (bookbarcode,bookid,bookintime,bookstatus) VALUES ('ISBN-1001', 'TP39/1712', '2024-01-01', '在馆'), ('ISBN-1002', '013452', '2024-01-02', '在馆'), ('ISBN-1003', 'TP/3452', '2024-01-03', '在馆'), ('ISBN-1004', 'TH/2345', '2024-01-04', '在馆'), ('ISBN-1005', 'R/345677', '2024-01-05', '在馆');
4. 读者类别表(readertype)
INSERT INTOreadertype (retypeid,typename,borrowquantity,borrowday) VALUES (1, '学生', 10, 30), (2, '教师', 20, 60), (3, '管理员', 15, 30), (4, '职工', 15, 20);
5. 读者信息表(reader)
INSERT INTOreader (readerid,readername,readerpass,retypeid,readerdate,readerstatus) VALUES ('RID1001', '张三', 'password123', 1, '2024-01-01', '正常'), ('RID1002', '李四', 'password456', 2, '2024-01-02', '正常'), ('RID1003', '王五', 'password789', 3, '2024-01-03', '正常'), ('RID1004', '赵六', 'password012', 4, '2024-01-04', '正常');
6. 图书借阅表(bookborrow)
INSERT INTObookborrow (borrowid,bookbarcode,readerid,borrowtime,returntime,borrowstatus) VALUES ('BR001', 'ISBN-1001', 'RID1001', '2024-01-06', '2024-02-06', '已还'), ('BR002', 'ISBN-1002', 'RID1002', '2024-01-07', '2024-02-07', '已还');
三、常见查询操作
在插入了数据之后,我们可以进行各种查询操作来练习MySQL的使用,以下是一些常见的查询示例:
1. 查询所有图书的信息
SELECT * FROMbook;
2. 根据图书编号查询图书信息
SELECT * FROMbook WHEREbookid = 'TP39/1712';
3. 根据类别编号查询图书信息
SELECT * FROMbook WHEREtypeid = 3;
4. 查询所有在馆的图书信息
SELECT * FROMbookstorage WHEREbookstatus = '在馆';
5. 根据读者编号查询借阅信息
SELECT * FROMbookborrow WHEREreaderid = 'RID1001';
6. 根据图书条码查询借阅信息
SELECT * FROMbookborrow WHEREbookbarcode = 'ISBN-1001';
7. 统计各类别图书的数量
SELECTtypename, count(*) AScount FROMbooktype INNER JOINbook ONbooktype.typeid =book.typeid GROUP BYtypename;
8. 查询借阅次数最多的图书
SELECTbookname FROMbook ORDER BYborrowsum DESC LIMIT 1;
四、常见问题FAQs
Q:如何创建一个MySQL数据库? A:使用CREATE语句可以创建一个MySQL数据库,CREATE DATABASE library;,然后选择该数据库:USE library;。
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/387735.html