Mysql之图书发行数据库应用系统:实验一

本文详细介绍了如何使用MySQL创建一个图书发行数据库,包括数据库结构设计、表的创建、主键约束、索引和视图的构建,以及如何向数据库中输入数据。通过实践操作,提升数据库管理和查询能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录


前言

在数字化时代,数据库应用系统的构建与运用显得尤为重要。今天,我将为大家介绍一个简单的基于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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值