图书借阅数据库设计与实现 - 使用命令行和图形化工具创建数据库和表
- 使用命令行方式完成以下操作:
(1) 创建图书借阅数据库LibraryDB和我的测试数据库MyTest。
CREATE DATABASE LibraryDB;
CREATE DATABASE MyTest;
(2) 打开图书借阅数据库LibraryDB。
USE LibraryDB;
(3) 在数据库LibraryDB中创建读者表、读者类型表。
CREATE TABLE '读者' (
'读者编号' INT PRIMARY KEY,
'姓名' VARCHAR(50),
'类别号' INT,
... (其他字段)
);
CREATE TABLE '读者类型' (
'类别号' INT PRIMARY KEY,
'类别名称' VARCHAR(50),
'可借数量' INT,
... (其他字段)
);
(4) 显示MySQL服务器中数据库的相关信息。
SHOW DATABASES;
(5) 显示LibraryDB数据库中相关表的信息。
USE LibraryDB;
SHOW TABLES;
(6) 删除My Test数据库。
DROP DATABASE MyTest;
- 使用MySQL图形化管理工具操作:
(1) 使用Navicat for MySQL访问MySQL数据库。
(2) 用Navicat for MySQL在LibraryDB中创建图书表、库存表和借阅表。
- 创建图书表:
CREATE TABLE '图书' (
'图书编号' INT PRIMARY KEY,
'书名' VARCHAR(100),
'作者' VARCHAR(50),
... (其他字段)
);
- 创建库存表:
CREATE TABLE '库存' (
'条码' INT PRIMARY KEY,
'图书编号' INT,
'状态' VARCHAR(20),
... (其他字段)
);
- 创建借阅表:
CREATE TABLE '借阅' (
'借阅编号' INT PRIMARY KEY,
'读者编号' INT,
'条码' INT,
'借阅日期' DATE,
... (其他字段)
);
- 建立数据完整性约束:
(1) 为LibraryDB中的读者表指定主键为“读者编号”。
ALTER TABLE '读者' ADD PRIMARY KEY ('读者编号');
(2) 为读者表创建外键,其“类别号”列的值必须是读者类型表中“类别号”列存在的值,删除或修改读者类型表中的类别号值时,读者表中“类别号”列的数据也要随之变化。
ALTER TABLE '读者' ADD CONSTRAINT fk_读者_读者类型 FOREIGN KEY ('类别号') REFERENCES '读者类型'('类别号') ON UPDATE CASCADE ON DELETE CASCADE;
(3) 为借阅表创建外键,其“读者编号”列的值必须是读者表中“读者编号”列存在的值,删除或修改读者表中的读者编号值时,如果借阅表中该读者还有记录,则不得删除或修改。
ALTER TABLE '借阅' ADD CONSTRAINT fk_借阅_读者 FOREIGN KEY ('读者编号') REFERENCES '读者'('读者编号') ON UPDATE NO ACTION ON DELETE RESTRICT;
(4) 为借阅表创建外键,借阅表中“条码”列中的值必须是库存表中“条码”列存在的值,删除或修改库存表中的条码值时,借阅表中“条码”列的数据也要随之变化。
ALTER TABLE '借阅' ADD CONSTRAINT fk_借阅_库存 FOREIGN KEY ('条码') REFERENCES '库存'('条码') ON UPDATE CASCADE ON DELETE CASCADE;
(5) 修改读者类型表,可借数量必须在0~30本的范围内。
ALTER TABLE '读者类型' ADD CONSTRAINT chk_读者类型_可借数量 CHECK ('可借数量' >= 0 AND '可借数量' <= 30);
(6) 修改库存表,库存状态只能是“在馆”“借出”“丢失”3种状态之一。
ALTER TABLE '库存' ADD CONSTRAINT chk_库存_状态 CHECK ('状态' IN ('在馆', '借出', '丢失'));
原文地址: https://www.cveoy.top/t/topic/pihM 著作权归作者所有。请勿转载和采集!