基于qt的图书管理系统----01数据库设计

参考b站:视频连接

目录

      • 1、数据库设计
      • 2、数据库增删改查
        • 2.1 book表操作
        • 2.2 user表操作
        • 2.3 record表的操作(重点)
      • 3、数据表导出

1、数据库设计

使用sqlite3,新建一个book的表,并且都让主键自增
在这里插入图片描述

NmaeValue
bookid书本标签
name书名
count数量
press价格
type类别
pic书本封面图片

书的借阅记录表
在这里插入图片描述

NmaeValue
bookid书本标签
id序号
userid用户id
start开始时间
end结束时间
record借阅记录

用户表

在这里插入图片描述

NmaeValue
userid用户id
username用户名
auth结束时间
department借阅记录
password密码
nickname姓名

将record表的bookid和userid和另外两个表关联起来,设置外键关联可以避免一些前置的错误

在这里插入图片描述

2、数据库增删改查

2.1 book表操作
#插入书籍
insert into book VALUES(NULL,'精品美','19.9','历史','人文','','100','');
insert into book VALUES(NULL,'三国演义','30','历史','人文','','50','');
insert into book VALUES(NULL,'西游记','20','神话','人文','','50','');
#查询所有书籍
select * from book
#删除书籍
DELETE from book WHERE bookid=2
#修改书籍价格
update book set press = '300'where bookid = 2;
#清空库,并且让主键从1自增
DELETE from book;
DELETE FROM sqlite_sequence WHERE name = 'book';
2.2 user表操作
#插入
insert into user VALUES(NULL,'小强','1年级1班','学生','计算机系','xiaoqiang','123456');
insert into user VALUES(NULL,'小张','1年级1班','学生','计算机系','xiaozhang','123456');
insert into user VALUES(NULL,'小明','1年级1班','学生','计算机系','xiaoming','123456');
2.3 record表的操作(重点)
#record增加,设置好的外键要存在才能添加进入
insert into record VALUES(NULL,1,2,'2024年2月21日10:00:14','2024年2月23日10:00:14');
#record删除
DELETE from record;
#删除用户,需要先把记录删了,因为外键的存在,要先归还
DELETE from user where userid = 2;
#删除书籍同理#通过记录查询人和书籍,多表联查
SELECT * from record join book using(bookid);
SELECT * from record join user using(userid);

设置的外键阻止删除

在这里插入图片描述

多表联查
在这里插入图片描述
在这里插入图片描述

3、数据表导出

/*
` Navicat Premium Data Transfer
` Source Server         : book
` Source Server Type    : SQLite
` Source Server Version : 3035005 (3.35.5)
` Source Schema         : main
` Target Server Type    : SQLite
` Target Server Version : 3035005 (3.35.5)
` File Encoding         : 65001
` Date: 21/02/2024 10:42:57
*/
PRAGMA foreign_keys = false;
-- ----------------------------
-- Table structure for book
-- ----------------------------
DROP TABLE IF EXISTS "book";
CREATE TABLE "book" (`  "bookid" integer NOT NULL PRIMARY KEY AUTOINCREMENT,`  "name" text,`  "press" integer,`  "type1" TEXT,`  "type2" TEXT,`  "type3" TEXT,`  "count" integer,`  "  pic" TEXT
);
-- ----------------------------
-- Records of book
-- ----------------------------
INSERT INTO "book" VALUES (1, '精品美', 19.9, '历史', '人文', '', 100, '');
INSERT INTO "book" VALUES (2, '精品美', 300, '历史', '人文', '', 100, '');
INSERT INTO "book" VALUES (3, '三国演义', 30, '历史', '人文', '', 50, '');
INSERT INTO "book" VALUES (4, '西游记', 20, '神话', '人文', '', 50, '');
-- ----------------------------
-- Table structure for record
-- ----------------------------
DROP TABLE IF EXISTS "record";
CREATE TABLE "record" (`  "bookid" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,`  "id" INTEGER,`  "userid" INTEGER,`  "start" TEXT,`  "end" TEXT,`  "record" TEXT,`  FOREIGN KEY ("bookid") REFERENCES "book" ("bookid") ON DELETE NO ACTION ON UPDATE NO ACTION,`  FOREIGN KEY ("userid") REFERENCES "user" ("userid") ON DELETE NO ACTION ON UPDATE NO ACTION
);
-- ----------------------------
-- Records of record
-- ----------------------------
-- ----------------------------
-- Table structure for sqlite_sequence
-- ----------------------------
DROP TABLE IF EXISTS "sqlite_sequence";
CREATE TABLE "sqlite_sequence" (`  "name",`  "seq"
);
-- ----------------------------
-- Records of sqlite_sequence
-- ----------------------------
INSERT INTO "sqlite_sequence" VALUES ('book', 4);
INSERT INTO "sqlite_sequence" VALUES ('record', 0);
INSERT INTO "sqlite_sequence" VALUES ('book', 4);
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS "user";
CREATE TABLE "user" (`  "userid" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,`  "username" TEXT,`  "auth" TEXT,`  "department" TEXT,`  "password" TEXT,`  "nickname" TEXT
);
-- ----------------------------
-- Records of user
-- ----------------------------
-- ----------------------------
-- Auto increment value for book
-- ----------------------------
UPDATE "sqlite_sequence" SET seq = 4 WHERE name = 'book';
-- ----------------------------
-- Auto increment value for record
-- ----------------------------
PRAGMA foreign_keys = true;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/693372.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GIN框架介绍以及使用

Gin是一个用Go语言编写的web框架。它是一个类似于martini但拥有更好性能的API框架, 由于使用了httprouter,速度提高了近40倍。 如果你是性能和高效的追求者, 你会爱上Gin,而且现在大多数企业都在使用Gin框架,反正学一学总没有错。 1、 GIn框…

赞:java使用easy-excel导入数据的通用模板思路

我们在项目中都会有导入导出的功能&#xff0c;这篇文章主要是讲导出的&#xff0c;导入我会在另外一篇博客文章中讲解。 现在我们开始。 首先&#xff1a;需要在项目中的pom.xml中导入easy-excel的依赖 <!--使用esay-excel进行导入导出 --> <dependency> &…

实习日志26 捷通打印机交接

概要 捷通打印机的研究和使用需要下载一些软件 打印机驱动下载说明 驱动&#xff1a;选择DL-721Z 端口选择&#xff1a;USB002 智能助手&#xff1a;&#xff08;连接&#xff0c;设置打印机&#xff09; 打印机显示 rfid未校准 时可以在这里点RFID标签校验 LabelEditor编译…

unity学习(31)——跳转到角色选择界面(打勾?手滑挂错脚本)

There are 2 audio listeners in the scene. Please ensure there is always exactly one audio listener in the scene. 是因为后来创建了一个camera&#xff0c;因为camera中自带一个组件Audio Listener。所以有两个camera就有两个audio listener导致报错。 一个简单的解决…

超声波清洗机大测评!希亦、洁盟、德国ODI、苏泊尔哪款性价比高?

眼镜逐渐已经成为现在大部分都离不开的一个视线辅助&#xff0c;但是很多朋友对于眼镜的清洗从开始佩戴眼镜时&#xff0c;就没有重视起来。其实清洗眼镜的方法有很多种&#xff0c;手动清洗跟超声波清洗机&#xff0c;后者的清洗相对来说会更加方便快捷一点&#xff0c;且清洗…

计算机网络——15套接字编程

套接字编程 Socket编程 Socket编程&#xff1a;应用进程使用传输层提供的服务才能够交换报文&#xff0c;实现应用协议&#xff0c;实现应用 TCP/IP&#xff1a;应用进程使用Socket API访问传输服务 地点&#xff1a;界面上的SAP 方式&#xff1a;Socket API 目标&#xff1…

强化学习入门(Matlab2021b)-创建环境【2】

目录 1 前言2 利用step和reset函数创建自定义环境2.1 对象描述2.2 reset函数2.3 step函数2.3 构建自定义环境3 使用匿名函数传递额外的参数4 可视化检查自定义函数的输出参考链接1 前言 本文介绍如何基于MATLAB编写step、reset函数,创建自己的强化学习环境(Environment)。 使…

Windows 中文版下 MSVC 对 UTF-8 支持(避免乱码)

原文&#xff1a;https://blog.iyatt.com/?p14017 1 测试环境 我这里在 Windows 11 专业版 23H2 中文版PowerShell 7.4.1 中&#xff0c;默认的字符编码是 936 GB2312 官方的标识码解释&#xff1a;https://learn.microsoft.com/zh-cn/windows/win32/Intl/code-page-iden…

IDEA的版本控制Local Changes和settings按钮显示问题

经常用idea的小伙伴应该对标题的这两个功能不陌生&#xff0c;特别是Local Changes 周日刚开工&#xff0c;我的idea就过期了&#xff0c;索性就下载了一个2023.3.3版本的&#xff0c;安装好打开一看&#xff0c;发现Local Changes 和 settings的按钮消失了&#xff0c;虽然说…

红外光谱法(IR)应用领域宽广 全球市场增长速度加快

红外光谱法&#xff08;IR&#xff09;应用领域宽广 全球市场增长速度加快 红外光谱法&#xff08;IR&#xff09;&#xff0c;也称为红外分光光度法&#xff0c;分子吸收红外线&#xff0c;引起分子振动能级、转动能级跃迁&#xff0c;获得物质红外吸收光谱&#xff0c;测定物…

专业定制线缆厂家推荐:精工电联-小批量、多品类集成线缆定制的领航者

高品质定制线缆厂家推荐&#xff1a;精工电联-小批量、多品类集成线缆定制的领航者 在当今这个多元化、个性化的时代&#xff0c;定制化产品和服务越来越受到市场的青睐。精工电联作为高科技智能化产品及自动化设备专用连接线束和连接器配套服务商&#xff0c;致力于为高科技行…

怎么选择通配符证书?

通配符SSL证书又叫泛域名SSL证书&#xff08;Wildcard Certficates&#xff09;&#xff0c;通配符SSL证书可以保护一个域名下同级子域名&#xff0c;不限制该级子域名的数量&#xff0c;且添加新的该级子域名无需重新审核和另外付费&#xff0c;可以节省大量的时间和成本。 一…

QFormLayout 背景色设置不成功

&#xff08;图中的colour 拼错了&#xff09; layout 一定要放在QWidget 里面&#xff0c;然后设置QWidget 的背景色就好了

【C++】C++中的继承

目录 介绍&#xff1a; 一&#xff0c;继承的访问权限 二&#xff0c;基类和派生类对象赋值转换 三&#xff0c;继承中的作用域 四&#xff0c;派生类的默认成员函数 1&#xff0c;构造函数 2&#xff0c;析构函数 3&#xff0c;拷贝构造和赋值运算符 五&#xff0c;继…

GitCode配置ssh

下载SSH windows设置里选“应用” 选“可选功能” 添加功能 安装这个 坐等安装&#xff0c;安装好后可以关闭设置。 运行 打开cmd 执行如下指令&#xff0c;启动SSH服务。 net start sshd设置开机自启动 把OpenSSH服务添加到Windows自启动服务中&#xff0c;可避免每…

java中实体pojo对于布尔类型属性命名尽量别以is开头,否则 fastjson可能会导致属性读取不到

假如我们有一个场景&#xff0c;就是需要将一个对象以字符串的形式&#xff0c;也就是jsonString存到一个地方&#xff0c;比如mysql&#xff0c;或者redis的String结构。现在有一个实体&#xff0c;我们自己创建的&#xff0c;叫做CusPojo.java 有两个属性是布尔类型的&#x…

STM32引脚重定义问题

最近在搞资源管理&#xff0c;发现有些引脚不能用 比如这个PE引脚。我想用他输出PWM&#xff0c;但是不能用&#xff0c;我也重定义了&#xff0c;还是不能用。回去翻看了技术手册。 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //重映射引脚功能&#xff0c;需…

NoSQL 数据库管理工具,搭载强大支持:Redis、Memcached、SSDB、LevelDB、RocksDB,为您的数据存储提供无与伦比的灵活性与性能!

NoSQL 数据库管理工具&#xff0c;搭载强大支持&#xff1a;Redis、Memcached、SSDB、LevelDB、RocksDB&#xff0c;为您的数据存储提供无与伦比的灵活性与性能&#xff01; 【官网地址】&#xff1a;http://www.redisant.cn/nosql 介绍 直观的用户界面 从单一应用程序中同…

String 必知必会底层逻辑

String 是不可变的 String 类中使用 final 关键字修饰字符数组来保存字符串 public final class String implements java.io.Serializable, Comparable<String>, CharSequence {private final char value[];//... }final关键字的作用&#xff1a; 不可变性&#xff1a…

openai DALL-E 3 论文 提升图像生成的关键:更好的图像描述

摘要 我们展示了通过训练高度描述性的生成图像标题&#xff0c;可以显着改善文本到图像模型的提示跟随能力。 现有的文本到图像模型在跟随详细的图像描述方面存在困难&#xff0c;经常忽略单词或混淆提示的含义。 我们假设这个问题源于训练数据集中存在嘈杂和不准确的图像标…