图书馆借阅表
DDL
用户表 (Users)
图书表 (Books)
图书类别表 (BookCategories)
图书与类别关联表 (BookCategoryRelations)
借阅记录表 (BorrowRecords)
供应商表 (Suppliers)
采购记录表 (PurchaseRecords)
CREATE TABLE Users (user_id INT PRIMARY KEY AUTO_INCREMENT,username VARCHAR(50) NOT NULL UNIQUE,password VARCHAR(255) NOT NULL,email VARCHAR(100),phone VARCHAR(20),created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE Books (book_id INT PRIMARY KEY AUTO_INCREMENT,title VARCHAR(255) NOT NULL,author VARCHAR(100) NOT NULL,publisher VARCHAR(100),publication_year YEAR,ISBN VARCHAR(13) UNIQUE,stock_quantity INT NOT NULL DEFAULT 0
);
CREATE TABLE BookCategories (category_id INT PRIMARY KEY AUTO_INCREMENT,category_name VARCHAR(100) NOT NULL UNIQUE
);
CREATE TABLE `bookcategoryrelations` (`relation_id` int(11) NOT NULL AUTO_INCREMENT,`book_id` int(11) DEFAULT NULL,`category_id` int(11) DEFAULT NULL,PRIMARY KEY (`relation_id`),UNIQUE KEY `book_id` (`book_id`,`category_id`),KEY `bookcategoryrelations_ibfk_2` (`category_id`),CONSTRAINT `bookcategoryrelations_ibfk_1` FOREIGN KEY (`book_id`) REFERENCES `books` (`book_id`) ON DELETE NO ACTION ON UPDATE NO ACTION,CONSTRAINT `bookcategoryrelations_ibfk_2` FOREIGN KEY (`category_id`) REFERENCES `bookcategories` (`category_id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
);
CREATE TABLE BorrowRecords (record_id INT PRIMARY KEY AUTO_INCREMENT,user_id INT,book_id INT,borrow_date DATE NOT NULL,return_date DATE,FOREIGN KEY (user_id) REFERENCES Users(user_id),FOREIGN KEY (book_id) REFERENCES Books(book_id)
);
CREATE TABLE Suppliers (supplier_id INT PRIMARY KEY AUTO_INCREMENT,supplier_name VARCHAR(100) NOT NULL,contact_name VARCHAR(100),phone VARCHAR(20),email VARCHAR(100)
);
CREATE TABLE `purchaserecords` (`record_id` int(11) NOT NULL AUTO_INCREMENT,`supplier_id` int(11) DEFAULT NULL,`book_id` int(11) DEFAULT NULL,`purchase_date` date NOT NULL,`quantity` int(11) NOT NULL,`price` decimal(10,2) NOT NULL,PRIMARY KEY (`record_id`),KEY `supplier_id` (`supplier_id`),KEY `book_id` (`book_id`),CONSTRAINT `purchaserecords_ibfk_1` FOREIGN KEY (`supplier_id`) REFERENCES `suppliers` (`supplier_id`),CONSTRAINT `purchaserecords_ibfk_2` FOREIGN KEY (`book_id`) REFERENCES `books` (`book_id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
DML
INSERT INTO Users (username, password, email, phone)
VALUES ('user1', 'pass1', 'user1@example.com', '1234567890');INSERT INTO Users (username, password, email, phone)
VALUES ('user2', 'pass2', 'user2@example.com', '0987654321');INSERT INTO Users (username, password, email, phone)
VALUES ('user3', 'pass3', NULL, '1112223333');INSERT INTO Users (username, password, email, phone)
VALUES ('user4', 'pass4', 'user4@example.com', NULL);INSERT INTO Users (username, password, email, phone)
VALUES ('user5', 'pass5', 'user5@example.com', '5556667777');INSERT INTO Users (username, password, email, phone)
VALUES ('user6', 'pass6', NULL, '9998887777');INSERT INTO Users (username, password, email, phone)
VALUES ('user7', 'pass7', 'user7@example.com', '7778889999');INSERT INTO BookCategoryRelations (book_id, category_id)
VALUES (1, 1);INSERT INTO BookCategoryRelations (book_id, category_id)
VALUES (2, 2);INSERT INTO BookCategoryRelations (book_id, category_id)
VALUES (3, 3);INSERT INTO BookCategoryRelations (book_id, category_id)
VALUES (4, 4);INSERT INTO BookCategoryRelations (book_id, category_id)
VALUES (5, 5);INSERT INTO BookCategoryRelations (book_id, category_id)
VALUES (6, 6);INSERT INTO BookCategoryRelations (book_id, category_id)
VALUES (7, 7);INSERT INTO Books (title, author, publisher, publication_year, ISBN, stock_quantity)
VALUES ('Book 1', 'Author 1', 'Publisher 1', 2020, '1234567890123', 10);INSERT INTO Books (title, author, publisher, publication_year, ISBN, stock_quantity)
VALUES ('Book 2', 'Author 2', 'Publisher 2', 2019, '2345678901234', 15);INSERT INTO Books (title, author, publisher, publication_year, ISBN, stock_quantity)
VALUES ('Book 3', 'Author 3', 'Publisher 3', 2021, '3456789012345', 20);INSERT INTO Books (title, author, publisher, publication_year, ISBN, stock_quantity)
VALUES ('Book 4', 'Author 4', 'Publisher 4', 2018, '4567890123456', 25);INSERT INTO Books (title, author, publisher, publication_year, ISBN, stock_quantity)
VALUES ('Book 5', 'Author 5', 'Publisher 5', 2022, '5678901234567', 30);INSERT INTO Books (title, author, publisher, publication_year, ISBN, stock_quantity)
VALUES ('Book 6', 'Author 6', 'Publisher 6', 2023, '6789012345678', 35);INSERT INTO Books (title, author, publisher, publication_year, ISBN, stock_quantity)
VALUES ('Book 7', 'Author 7', 'Publisher 7', 2024, '7890123456789', 40);INSERT INTO BookCategories (category_name)
VALUES ('Category 1');INSERT INTO BookCategories (category_name)
VALUES ('Category 2');INSERT INTO BookCategories (category_name)
VALUES ('Category 3');INSERT INTO BookCategories (category_name)
VALUES ('Category 4');INSERT INTO BookCategories (category_name)
VALUES ('Category 5');INSERT INTO BookCategories (category_name)
VALUES ('Category 6');INSERT INTO BookCategories (category_name)
VALUES ('Category 7');INSERT INTO BorrowRecords (user_id, book_id, borrow_date, return_date)
VALUES (1, 1, '2024-07-01', '2024-07-15');INSERT INTO BorrowRecords (user_id, book_id, borrow_date, return_date)
VALUES (2, 2, '2024-07-05', '2024-07-20');INSERT INTO BorrowRecords (user_id, book_id, borrow_date, return_date)
VALUES (3, 3, '2024-07-10', NULL);INSERT INTO BorrowRecords (user_id, book_id, borrow_date, return_date)
VALUES (4, 4, '2024-07-15', NULL);INSERT INTO BorrowRecords (user_id, book_id, borrow_date, return_date)
VALUES (5, 5, '2024-07-20', NULL);INSERT INTO BorrowRecords (user_id, book_id, borrow_date, return_date)
VALUES (6, 6, '2024-07-25', NULL);INSERT INTO BorrowRecords (user_id, book_id, borrow_date, return_date)
VALUES (7, 7, '2024-07-30', NULL);INSERT INTO Suppliers (supplier_name, contact_name, phone, email)
VALUES ('Supplier 1', 'Contact 1', '1234567890', 'upplier1@example.com');INSERT INTO Suppliers (supplier_name, contact_name, phone, email)
VALUES ('Supplier 2', 'Contact 2', '0987654321', 'upplier2@example.com');INSERT INTO Suppliers (supplier_name, contact_name, phone, email)
VALUES ('Supplier 3', 'Contact 3', '1112223333', 'upplier3@example.com');INSERT INTO Suppliers (supplier_name, contact_name, phone, email)
VALUES ('Supplier 4', 'Contact 4', '4445556666', 'upplier4@example.com');INSERT INTO Suppliers (supplier_name, contact_name, phone, email)
VALUES ('Supplier 5', 'Contact 5', '7778889999', 'upplier5@example.com');INSERT INTO Suppliers (supplier_name, contact_name, phone, email)
VALUES ('Supplier 6', 'Contact 6', '0001112222', 'upplier6@example.com');INSERT INTO Suppliers (supplier_name, contact_name, phone, email)
VALUES ('Supplier 7', 'Contact 7', '3334445555', 'upplier7@example.com');INSERT INTO PurchaseRecords (supplier_id, book_id, purchase_date, quantity, price)
VALUES (1, 1, '2024-06-01', 50, 20.00);INSERT INTO PurchaseRecords (supplier_id, book_id, purchase_date, quantity, price)
VALUES (2, 2, '2024-06-05', 40, 18.00);INSERT INTO PurchaseRecords (supplier_id, book_id, purchase_date, quantity, price)
VALUES (3, 3, '2024-06-10', 30, 25.00);INSERT INTO PurchaseRecords (supplier_id, book_id, purchase_date, quantity, price)
VALUES (4, 4, '2024-06-15', 20, 30.00);INSERT INTO PurchaseRecords (supplier_id, book_id, purchase_date, quantity, price)
VALUES (5, 5, '2024-06-20', 15, 22.00);INSERT INTO PurchaseRecords (supplier_id, book_id, purchase_date, quantity, price)
VALUES (6, 6, '2024-06-25', 10, 15.00);INSERT INTO PurchaseRecords (supplier_id, book_id, purchase_date, quantity, price)
VALUES (7, 7, '2024-06-30', 5, 10.00);
相关文章:
图书馆借阅表
DDL 用户表 (Users) 图书表 (Books) 图书类别表 (BookCategories) 图书与类别关联表 (BookCategoryRelations) 借阅记录表 (BorrowRecords) 供应商表 (Suppliers) 采购记录表 (PurchaseRecords) CREATE TABLE Users (user_id INT PRIMARY KEY AUTO_INCREMENT,username …...
云动态摘要 2024-06-25
给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 最新产品更新 Web应用防火墙 - 验证码支持微信小程序接入 阿里云 2024-06-25 支持客户从微信小程序场景下接入,提供人机识别的安全防护。 工业数字模型驱动引擎 - iDME控制台换新升级 华为云…...
Docker编译nanopc-t4源码流程介绍
官方文档 Android系统编译 vnc加环境变量配置 https://github.com/friendlyarm/docker-cross-compiler-novnc 下载 git clone https://github.com/friendlyarm/docker-ubuntu-lxde-novnc cd docker-ubuntu-lxde-novnc docker build --no-cache -t docker-ubuntu-lxde-novnc …...
Redis八股文目录
Redis缓存穿透-CSDN博客 Redis缓存击穿-CSDN博客 Redis缓存雪崩(主从复制、哨兵模式(脑裂)、分片集群)-CSDN博客 Redis双写一致性-CSDN博客 Redis持久化-CSDN博客 Redis数据过期、淘汰策略-CSDN博客 分布式锁(Re…...
Ext JS+Spring Boot 使用Ajax方式上传文件
实现方式 使用 Ext JS 进行 AJAX 调用以传递文件通常涉及到创建一个 FormData 对象,将文件附加到这个对象中,然后通过 Ext JS 的 AJAX API 发送这个对象。 基本步骤 以下是使用 Ext JS 发送文件的基本步骤: 准备文件和数据: 首先需要获取到要传递的文件 创建 FormData 对…...
windows桌面运维----第九天
1、新的电脑需要安装哪些驱动: 显卡驱动、声卡驱动、主板驱动、网卡驱动、打印机驱动、外设驱动、 2、网络打印机如何开启打印机共享核客户端连接共享打印机: 一、打开控制面板并定位到设备和打印机: 首先,我们在电脑桌面上找…...
【Docker】安装和加速
目录 1.安装 2.了解 docker 信息 3.查询状态 4. 重新启动Docker 1.安装 yum install –y docker 2.了解 docker 信息 cat /etc/redhat-release 3.查询状态 systemctl status docker 4.支持 1.12 的 docker 镜像加速 sudo mkdir -p /etc/docker sudo tee /etc/docke…...
如何关闭win10音量调节时 左上角出现的黑框
目录 1.谷歌浏览器: 2.edge浏览器: 3.没得办法的办法: 4.官方回复: 1.谷歌浏览器: 把这行地址chrome://flags/#hardware-media-key-handling 输入到chrome的地址栏里,回车,把黄色里的Hardwa…...
准确率(accuracy)、召回率(recall)的意义和区别
准确率(accuracy)、召回率(recall)的意义和区别 对于准确率和召回率:一句话,准确率就是“找的对”,召回率就是“找的全” (精确率:正样本中找对的准确率) 注…...
分享5个卫星影像查看网站
我们在《分享5个图源二维码及使用方法》一文中,为你分享了5个图源二维码。 现在再为你为分享5种在线卫星影像,如果你需要更多的图源二维码,请在文末查看领取方式。 MapBox卫星影像 可能很多人都知道MapBox的地名路网地图,但可能…...
37岁,被裁员,失业三个月,被面试官嫌弃“太水”:就这也叫10年以上工作经验?
今年部门要招两个自动化测试,这几个月我面试了几十位候选人。发现一个很奇怪的现象,面试中一问到元素定位、框架api、脚本编写之类的,很多候选人都对答如流。但是一问到实际项目,比如“项目中UI自动化和接口自动化如何搭配使用&am…...
如何选择一款优质的酱香酒?
很多人在评价一款酒的好坏时,往往只关注一个标准:口感是否顺滑。然而,真正品鉴一款酒的品质,首要的是香味,其次是味道,最后才是岁月带来的柔和。这种由岁月赋予的柔和,才能展现出酒的力量感和层…...
SQL Server数据库安装
原文:https://blog.c12th.cn/archives/26.html SQL Server数据库安装 测试:笔记本原装操作系统:Windows 10 家庭中文版 资源分享链接:提取码:qbt2 注意事项: 请严格按照步骤安装,SQL软件安装较…...
Hadoop 面试题(十)
1. 简述下列关于Hadoop命令中,命令执行成功返回0,执行失败返回-1,下列命令返回-1的是 ? A:hadoop fs -mv /user/hadoop/file1 /user/hadoop/file2 B:hdfs dfs -mv hdfs:///testData file:///tmp/testData …...
Python网络安全项目开发实战,如何看清Web攻击
注意:本文的下载教程,与以下文章的思路有相同点,也有不同点,最终目标只是让读者从多维度去熟练掌握本知识点。 下载教程: Python网络安全项目开发实战_看清Web攻击_编程案例解析实例详解课程教程.pdf 一、引言 在网络安全领域,Web攻击一直是一个严峻的问题。攻击者通过各…...
持续总结中!2024年面试必问的操作系统面试题(三)
上一篇地址:持续总结中!2024年面试必问的操作系统面试题(二)-CSDN博客 五、什么是分页和分段?它们之间有什么区别? 分页和分段是操作系统中用于内存管理的两种不同技术,它们都旨在允许操作系统…...
请说明Thread类中run和start的区别,从方法的区别,及运行结果的区别分别说明
方法本身的区别 start() 方法: run()方法是Thread类的一个普通方法,它包含了线程要执行的代码。当你直接调用一个线程的run()方法(如myThread.run()),你实际上是在当前线程(通常是主线程)中执行…...
MySQL:概念、逻辑与物理结构设计详解
MySQL:概念、逻辑与物理结构设计详解 一、引言 MySQL是一个流行的开源关系型数据库管理系统(RDBMS),广泛应用于各种规模和类型的应用程序中。在设计和实现一个MySQL数据库时,理解其基本概念、逻辑结构设计和物理结构…...
《昇思 25 天学习打卡营第 6 天 | 函数式自动微分 》
《昇思 25 天学习打卡营第 6 天 | 函数式自动微分 》 活动地址:https://xihe.mindspore.cn/events/mindspore-training-camp 签名:Sam9029 函数式自动微分 自动微分是深度学习中的一个核心概念,它允许我们自动计算模型参数的梯度,…...
刷题——二叉树的中序遍历
双指针法 void midorder(vector<int>&res, TreeNode* root){if(root NULL) return;midorder(res, root->left);res.push_back(root->val);midorder(res, root->right);}vector<int> inorderTraversal(TreeNode* root) {// write code herevector<…...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...
【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...
SQL Server 触发器调用存储过程实现发送 HTTP 请求
文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...
