目录
前言
在数字化时代,数据库应用系统的构建与运用显得尤为重要。今天,我将为大家介绍一个简单的基于MySQL的图书发行数据库应用系统。该系统旨在通过高效的数据管理,为图书发行行业提供强大的数据支持,实现信息的快速查询、统计与分析,从而提升业务效率和用户体验。
正文
题目
构建图书发行数据库应用系统,处理书店(S)向图书馆(L)发行(LBS)图书(B),S﹑L﹑LBS﹑B的数据见附表。
实验目的
要求学生熟练掌握和使用mysql创建数据库﹑基本表﹑视图﹑索引和修改表结构,及向数据库输入数据的操作;学会创建和使用表的主码、外码和约束。
实验要求
本实验针对上述两个题目分别完成以下相应任务:
1﹑创建相应的数据库和查看数据库属性;
2﹑创建基本表﹑确定表的主码和相应的约束,为主码建索引;
3﹑创建﹑查看视图;
4﹑数据库输入数据。
实验内容及步骤
创建相应的数据库和查看数据库属性
CREATE DATABASE BookDistribution;
USE BookDistribution;
show databases;
结果如下
创建基本表﹑确定表的主码和相应的约束,为主码建索引
一共只有四个表,分别为图书馆表L,图书表B,书店表S以及图书发行表LBS
创建图书馆表如下:
CREATE TABLE L (
LNO varchar(5) PRIMARY KEY COMMENT '图书馆编号',
LName VARCHAR(100) NOT NULL COMMENT '图书馆名',
CITY VARCHAR(255) COMMENT '城市',
TEL varchar(10)
)COMMENT '图书馆';
创建图书表:
-- 图书表
CREATE TABLE B (
BNO varchar(5) PRIMARY KEY COMMENT '图书编号' ,
BNAME VARCHAR(100) NOT NULL COMMENT '图书名',
PRICE float COMMENT '价格'
)COMMENT '图书';
创建书店表:
-- 图书表
CREATE TABLE B (
BNO varchar(5) PRIMARY KEY COMMENT '图书编号' ,
BNAME VARCHAR(100) NOT NULL COMMENT '图书名',
PRICE int COMMENT '价格'
)COMMENT '图书';
-- 书店表
CREATE TABLE S (
SNO varchar(5) PRIMARY KEY COMMENT '书店编号',
SNAME VARCHAR(100) NOT NULL COMMENT '书店名',
Address VARCHAR(255) COMMENT '地址'
)COMMENT '书店';
创建图书发行表:
-- 创建图书发行表
CREATE TABLE LBS (
LNO varchar(5) COMMENT '图书馆编号',
BNO varchar(5) COMMENT '图书编号',
SNO varchar(5) COMMENT '书店编号',
QTY int
)COMMENT '图书发行';
在SQL中,当你为表定义一个主码(Primary Key)时,数据库系统会自动为这个主码字段创建一个唯一索引(Unique Index),以确保主码字段的值在整个表中是唯一的,并且提供快速的查找能力。因此,从技术上讲,当你为表定义主码时,你其实已经为该字段创建了一个索引。
所以这里不再为主码插入引索。
sql插入引索方法:
单列引索:CREATE INDEX idx_username ON users(username);
多列引索:CREATE INDEX idx_fullname ON users(first_name, last_name);
唯一引索:CREATE UNIQUE INDEX idx_unique_email ON users(email);
创建﹑查看视图
创建视图以及查询代码如下
-- 创建视图
CREATE VIEW LibraryWithBooks AS
SELECT L.LNO, S.SNO, B.BNO
FROM LBS
JOIN L ON LBS.LNO = L.LNO
JOIN B ON LBS.BNO = B.BNO
JOIN S ON LBS.SNO = S.SNO;
-- 查看视图结构
DESCRIBE LibraryWithBooks;
-- 查询视图数据
SELECT * FROM LibraryWithBooks;
数据库输入数据
只需要一次输入各个表数据即可,这里我们全部直接给出
-- 插入数据
INSERT INTO s (SNO, SNAME,Address) VALUES
('S1', '北京新华书店', '北京'),
('S2', '上海新华书店', '上海'),
('S3', '上海外文书店', '上海'),
('S4', '湖北新华书店', '武汉'),
('S5', '江苏新华书店', '南京');
select * from s;
INSERT INTO b (BNO, BNAME,PRICE) VALUES
('B1','数据库原理',' 9.80'),
('B2', '系统分析与设计',' 8.50'),
('B3', '数据库设计',' 7.10'),
('B4', '计算机原理',' 9.60'),
('B5', '操作系统',' 11.20');
select *from B;
INSERT INTO l (LNO, LNAME, CITY, TEL) VALUES
('L1', '上海图书馆', '上海', '205800'),
('L2', '上海外文书店', '上海', '310310'),
('L3', '北京图书馆', '北京', '282471'),
('L4', '武汉图书馆', '武汉', '812712'),
('L5', '南京图书馆', '南京', '328173');
select *from L;
INSERT