当前位置:首页 > 行业动态 > 正文

如何进行MySQL练习数据库的操作与管理?

mysql练习数据库是一个用于学习和掌握mysql数据库技术的虚拟环境。

MySQL练习数据库是学习MySQL数据库管理系统的重要工具,它可以帮助用户通过实际操作来掌握SQL语言的基本语法和高级技巧,以下是一个详细的MySQL练习数据库示例,包括表结构设计、数据插入以及一些常见的查询操作。

如何进行MySQL练习数据库的操作与管理?  第1张

一、数据库设计

我们需要创建一个名为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;。

0