当前位置: 首页 > news >正文

数据库的要求

本来我是不准备写数据库的。而且是准备从零开始,学习python,学完语言学,会c和写作技法,再来学习数据库
那样做的复杂度是天量的,按部就班什么的具备,因为你完全不清楚什么时候就有这个基础和条件,写这个数据库

写一个数据库
编号  文本 时间
1    第一个文本  我有1000000万数据id INTEGER PRIMARY KEY, text TEXT, time TIMESTAMP DEFAULT CURRENT_TIMESTAMP );用中文给数据库文本贴标签数据库是
input输入多行文本,允许特殊字符串
按“# ꧂ ꧁”结束一个文本输入
无限循环有查询和统计行每次搜索存储数据库中 作为标签存储添加

我们来设计一下这个数据库,以及相应的添加标签和搜索功能#

首先,我们需要一个表格来存储文本数据,包括编号、文本内容和时间戳。然后,我们需要一个表格来存储标签,每个标签与一个或多个文本相关联。

这里是一个简单的数据库设计:

文本表 (Texts)

  • 编号 (ID): 整数类型,主键,自增长
  • 文本 (Text): 文本类型,存储输入的文本内容
  • 时间 (Time): 时间戳类型,默认为当前时间

标签表 (Tags)

  • 编号 (ID): 整数类型,主键,自增长
  • 标签 (Tag): 文本类型,存储标签内容
  • 文本编号 (Text ID): 整数类型,外键,与文本表中的编号关联

下面是一些示例 SQL 命令,用于创建这些表格:

CREATE TABLE Texts (ID INTEGER PRIMARY KEY AUTOINCREMENT,Text TEXT,Time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);CREATE TABLE Tags (ID INTEGER PRIMARY KEY AUTOINCREMENT,Tag TEXT,TextID INTEGER,FOREIGN KEY (TextID) REFERENCES Texts(ID)
);

接下来,我们需要实现添加标签和搜索功能。这些功能可以通过编写相应的 SQL 查询语句和应用程序代码来完成。具体实现取决于你使用的编程语言和数据库管理系统。

例如,添加标签的功能可以通过向 Tags 表中插入新记录来实现。搜索功能可以通过查询 Tags 表并联合查询 Texts 表来实现。

你可以使用类似以下的 SQL 语句来添加标签和搜索标签:

-- 添加标签
INSERT INTO Tags (Tag, TextID) VALUES ('标签内容', 文本编号);-- 搜索标签
SELECT Texts.Text
FROM Texts
INNER JOIN Tags ON Texts.ID = Tags.TextID
WHERE Tags.Tag = '标签内容';

通过这种设计和实现,你就可以向数据库中的文本添加标签,并可以根据标签搜索文本。

#完整代码#

以下是一个使用 Python 和 SQLite3 的完整示例代码,包括添加标签和搜索标签的功能:

import sqlite3# 连接到 SQLite 数据库
conn = sqlite3.connect('text_database.db')
cursor = conn.cursor()# 创建文本表
cursor.execute('''
CREATE TABLE IF NOT EXISTS Texts (ID INTEGER PRIMARY KEY AUTOINCREMENT,Text TEXT,Time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
''')# 创建标签表
cursor.execute('''
CREATE TABLE IF NOT EXISTS Tags (ID INTEGER PRIMARY KEY AUTOINCREMENT,Tag TEXT,TextID INTEGER,FOREIGN KEY (TextID) REFERENCES Texts(ID)
);
''')# 添加标签函数
def add_tag(text_id, tag):cursor.execute("INSERT INTO Tags (Tag, TextID) VALUES (?, ?)", (tag, text_id))conn.commit()# 搜索标签函数
def search_by_tag(tag):cursor.execute('''SELECT Texts.TextFROM TextsINNER JOIN Tags ON Texts.ID = Tags.TextIDWHERE Tags.Tag = ?''', (tag,))results = cursor.fetchall()if results:print("搜索结果:")for result in results:print(result[0])else:print("未找到匹配的文本。")# 添加文本函数
def add_text(text):cursor.execute("INSERT INTO Texts (Text) VALUES (?)", (text,))text_id = cursor.lastrowidconn.commit()return text_id# 主程序
while True:print("\n请输入文本(以#结束):")text_lines = []while True:line = input().strip()if line == "#":breaktext_lines.append(line)text = '\n'.join(text_lines)text_id = add_text(text)print("请输入标签:")tag = input().strip()add_tag(text_id, tag)print("文本已添加,并贴上了标签。")print("\n是否继续添加文本?(yes/no)")choice = input().strip().lower()if choice != 'yes':break# 搜索标签
print("\n请输入要搜索的标签:")
search_tag = input().strip()
search_by_tag(search_tag)# 关闭数据库连接
conn.close()

请确保你已经安装了 Python 和 SQLite3 模块,并将此代码保存在一个文件中,例如 text_database.py。然后,在命令行中运行该文件,按照提示操作即可。

相关文章:

数据库的要求

本来我是不准备写数据库的。而且是准备从零开始,学习python,学完语言学,会c和写作技法,再来学习数据库 那样做的复杂度是天量的,按部就班什么的具备,因为你完全不清楚什么时候就有这个基础和条件&#xff0…...

Spring MVC(二)

1. 注解RequestMapping修饰类 在Spring MVC中一般都是使用注解RequestMapping来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,相当于Servlet中在web.xml中配置的映射地址作用一致。在上一节的内容中,我们通过注解RequestMapping改进…...

ECP44304T-76是一款增强型通信处理器吗?

ABB ECP44304T-76是一款增强型通信处理器,专为ABB的PLC控制系统设计。 这款通信处理器的主要功能是提供PLC与其他设备或网络之间的通信接口。它支持多种通讯协议,包括但不限于Profibus、Ethernet、Modbus等,使得PLC可以轻松集成到复杂的工业…...

mongoDB分组查询

完整代码 //根据医院编号 和 科室编号 &#xff0c;查询排班规则数据Overridepublic Map<String, Object> getRuleSchedule(long page, long limit, String hoscode, String depcode) {//1 根据医院编号 和 科室编号 查询Criteria criteria Criteria.where("hosco…...

【Java 刷题记录】位运算

位运算 33. 位1的个数 编写一个函数&#xff0c;输入是一个无符号整数&#xff08;以二进制串的形式&#xff09;&#xff0c;返回其二进制表达式中 设置位 的个数&#xff08;也被称为汉明重量&#xff09;。 示例 1&#xff1a; 输入&#xff1a;n 11 输出&#xff1a;3 解释…...

WINDOWS下zookeeper突然无法启动但是端口未占用的解决办法(用了WSL)

windows下用着用着时候突然zookeeper启动不了了。netstat查也没有找到端口占用&#xff0c;就是起不来。控制台报错 java.lang.reflect.UndeclaredThrowableException: nullat org.springframework.util.ReflectionUtils.rethrowRuntimeException(ReflectionUtils.java:147) ~…...

【LLM第三篇】名词解释:RLHF——chatgpt的功臣

RLHF (Reinforcement Learning from Human Feedback) &#xff0c;直译为&#xff1a;“来自人类反馈的强化学习”。RLHF是一种结合了强化学习和人类反馈的机器学习方法&#xff0c;主要用于训练大模型以执行复杂的任务&#xff0c;尤其是当这些任务难以通过传统的奖励函数来精…...

基于Opencv的车牌识别系统(毕业设计可用)

系统架构 图像采集&#xff1a;首先&#xff0c;通过摄像头等设备捕捉车辆图像。图像质量直接影响后续处理的准确性&#xff0c;因此高质量的图像采集是基础。 预处理&#xff1a;对获取的原始图像进行预处理&#xff0c;包括灰度化、降噪、对比度增强和边缘检测等。这些操作旨…...

Leetcode—295. 数据流的中位数【困难】

2024每日刷题&#xff08;132&#xff09; Leetcode—295. 数据流的中位数 实现代码 class MedianFinder { public:MedianFinder() {}void addNum(int num) {if(maxHeap.empty() || num < maxHeap.top()) {maxHeap.push(num);} else {minHeap.push(num);}if(maxHeap.size(…...

JavaWeb之过滤器(Filter)与监听器(Listener)

前言 过滤器(Filter) 1.什么是过滤器 2.过滤器的语法格式 3.使用场景 3.1.如何防止用户未登录就执行后续操作 3.2.设置编码方式--统一设置编码 3.3.加密解密(密码的加密和解密) 3.4.非法文字筛选 3.5.下载资源的限制 监听器(Listener) 1.什么是监听器 2.监听器分类…...

video.js的请求头问题

为了防止视频被轻易下载&#xff0c;我们项目需要在请求视频地址的时候&#xff0c;增加token识别&#xff0c;避免url一粘贴到浏览器地址上就能被盗。 明明一开始就找到的方法&#xff1a; // ts-ignorevideojs.Vhs.xhr.beforeRequest function (options) {options.headers …...

leetcode 1235

leetcode 1235 代码 class Solution { public:int jobScheduling(vector<int>& startTime, vector<int>& endTime, vector<int>& profit) {int n startTime.size();vector<vector<int>> jobs(n);for(int i0; i<n; i){jobs[i] …...

Activiti7 开发快速入门【2024版】

记录开发最核心的部分&#xff0c;理论结合业务实操减少废话&#xff0c;从未接触工作流快速带入开发。假设你是后端的同学学过JAVA和流程图&#xff0c;则可以继续向后看&#xff0c;否则先把基础课程书准备好先翻翻。 为什么要工作流 比起直接使用状态字段&#xff0c;工作…...

vue3组件插槽

Index.vue: <script setup> import { ref, onMounted } from vue import Child from ./Child.vue import ./index.cssonMounted(() > {}) </script><template><div class"m-home-wrap"><Child>插槽</Child><div class&qu…...

Cloudera简介和安装部署

ChatGPT Cloudera 是一个基于 Apache Hadoop 的数据管理和分析平台。它是由 Hadoop 的几位创始人及早期贡献者于 2008 年创立的公司&#xff0c;并随着公司的不断发展&#xff0c;Cloudera 开始提供企业级的解决方案&#xff0c;帮助企业更好地利用 Hadoop 生态系统进行大数据…...

Spring Boot集成Ldap快速入门Demo

1.Ldap介绍 LDAP&#xff0c;Lightweight Directory Access Protocol&#xff0c;轻量级目录访问协议. LDAP是一种特殊的服务器&#xff0c;可以存储数据数据的存储是目录形式的&#xff0c;或者可以理解为树状结构&#xff08;一层套一层&#xff09;一般存储关于用户、用户…...

杨辉三角的打印

题目内容&#xff1a; 在屏幕上打印杨辉三角。 思路&#xff1a; 首先我们通过观察发现&#xff0c;每一步的打印都与行列数有关&#xff0c;中间的数据由这一列和上一行的前一列数据控制。所以我们可以使用二维数组进行操作&#xff1a; &#xff08;&#xff11;&#xff…...

贪吃蛇(下)游戏的实现

感谢大佬的光临各位&#xff0c;希望和大家一起进步&#xff0c;望得到你的三连&#xff0c;互三支持&#xff0c;一起进步 个人主页&#xff1a;LaNzikinh-CSDN博客 文章目录 前言一.蛇和食物的打印二.游戏的运行逻辑三.结束游戏 &#xff08;善后工作&#xff09;四.游戏的测…...

偏微分方程算法之椭圆型方程差分格式编程示例

目录 一、示例1-五点菱形格式 1.1 C代码 1.2 计算结果 二、示例2-九点紧差分格式 2.1 C代码 2.2 计算结果 三、示例3-二阶混合边值 3.1 C代码 3.2 计算结果 本专栏对椭圆型偏微分方程的三种主要差分方法进行了介绍&#xff0c;并给出相应格式的理论推导过程。为加深对…...

PCIe协议之-TLP路由基础

✨前言&#xff1a; 在PCI Express (PCIe) 技术中&#xff0c;数据包的路由方式对于确保信息能够高效、准确地传送至目标设备至关重要。PCIe定义了几种路由方式&#xff0c;主要有以下几种。 &#x1f31f;地址路由&#xff08;Address Based Routing&#xff09; 这是最基本…...

inline内联函数-虚函数(virtual)可以是内联函数(inline)吗?

目录标题 inline内联函数特征&#xff1a;使用&#xff1a;编译器对inline函数的处理步骤优点&#xff1a;缺点&#xff1a; 虚函数&#xff08;virtual&#xff09;可以是内联函数&#xff08;inline&#xff09;吗&#xff1f;特征&#xff1a;使用&#xff1a; inline内联函…...

Spring Boot | Spring Boot 消息管理 ( 消息中间件 ) 、RabbitMQ“消息中间件“

目录: 一、"消息服务" 概述 :1.1 为什么要使用 "消息服务" ( 消息中间件 ) &#xff1f;① 异步处理② 应用解耦③ 流量削峰④ 分布式事务管理 1.2 常用 "消息中间件" 介绍 :ActiveMQ ( 广泛应用于中小型企业 )RabbitMQ ( 没有特别要求的场景下…...

二层交换机与路由器连通上网实验

华为二层交换机与路由器连通上网实验 二层交换机是一种网络设备&#xff0c;用于在局域网&#xff08;LAN&#xff09;中转发数据帧。它工作在OSI模型的第二层&#xff0c;即数据链路层。二层交换机通过学习和维护MAC地址表&#xff0c;实现了数据的快速转发和广播域的隔离。 实…...

AJAX知识点(前后端交互技术)

原生AJAX AJAX全称为Asynchronous JavaScript And XML,就是异步的JS和XML&#xff0c;通过AJAX可以在浏览器中向服务器发送异步请求&#xff0c;最大的优势&#xff1a;无需刷新就可获取数据。 AJAX不是新的编程语言&#xff0c;而是一种将现有的标准组合在一起使用的新方式 …...

用wordpress为外贸进出口公司搭建多语言国际站

使用WordPress为外贸进出口公司搭建多语言国际站是一个很好的选择&#xff0c;因为WordPress不仅易于使用&#xff0c;而且具有丰富的插件和主题&#xff0c;可以支持多语言内容。以下是搭建多语言国际站的步骤和建议&#xff1a; 安装WordPress&#xff1a;首先&#xff0c;您…...

雷军-2022.8小米创业思考-6-互联网七字诀之口碑:口碑即定位,超预期才有口碑,品牌建设

第六章 互联网七字诀 专注、极致、口碑、快&#xff0c;这就是我总结的互联网七字诀&#xff0c;也是我对互联网思维的高度概括。 口碑 用户口碑是所有产品成功的关键因素&#xff0c;这是不言而喻的公理。 资源永远有限&#xff0c;对于创业公司尤其如此。只有专注&#xf…...

欧盟MDR法规对医疗器械网络安全都有哪些要求?

MDR&#xff0c;欧盟医疗器械法规&#xff08;Medical Device REGULATION (EU) 2017/745&#xff0c;简称“MDR”&#xff09;&#xff0c;当医疗器械办理欧盟CE认证时&#xff0c;需满足新法规 MDR (EU) 2017/745要求。 M DR符合性评估 医械网络安全咨询与相关文件出具&#x…...

Linux —— 信号初识

Linux —— 信号初识 什么是信号测试几个信号signal函数函数原型参数说明返回值注意事项示例 后台程序前台转后台检测输入中断向量表 我们今天来继续学习Linux的内容&#xff0c;今天我们要了解的是Linux操作系统中的信号&#xff1a; 什么是信号 信号是操作系统内核与进程之…...

webpack进阶 -- 自定义Plugin,Loader封装打包优化

介绍 Webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。在 Webpack 处理应用程序时&#xff0c;它会在内部构建一个依赖图(dependency graph)&#xff0c;这个依赖图对应映射到项目所需的每个模块&#xff0c;并生成一个或多个 bundle。在这个过程中…...

《Decoupled Optimisation for Long-Tailed Visual Recognition》阅读笔记

论文标题 《Decoupled Optimisation for Long-Tailed Visual Recognition》 长尾视觉识别的解耦优化 作者 Cong Cong、Shiyu Xuan、Sidong Liu、Shiliang Zhang、Maurice Pagnucco 和 Yang Song、 来自新南威尔士大学计算机科学与工程学院、北京大学计算机学院多媒体信息处…...

wordpress主题还原/seo发包软件

标星★公众号&#xff0c;第一时间获取最新研究作者&#xff1a;Rocky Kev编译&#xff1a;公众号编辑部近期原创文章&#xff1a;♥ 基于无监督学习的期权定价异常检测(代码数据)♥ 5种机器学习算法在预测股价的应用(代码数据)♥ 深入研读&#xff1a;利用Twitter情绪去预测股…...

sever2012做网站/中国最好的营销策划公司

在创建python包的过程中&#xff0c;IDE都会在包根目录下创建一个__init__.py文件&#xff0c;该Python文件默认是空的.目录结构如下&#xff1a; Pycharm下的package树结构&#xff1a; 在Finder中的目录结构&#xff1a; 从Finder中的目录就可以看出来&#xff0c;每个packag…...

食品网站开发毕业设计/网页设计欣赏

转载自 LinqiangHe最终编辑 LinqiangHe应用程序通过命令字IP_ADD_MEMBERSHIP把一个socket加入到一个多播组&#xff0c;IP_ADD_MEMBERSHIP是一个IP层的命令字&#xff0c;其调用使用的参数是结构体struct ip_mreq&#xff0c;其定义如下&#xff1a;struct ip_mreq{struct in_a…...

团购网站怎么做推广/百度收录官网

报错:叫我们删除log4j-over-slf4j.jar, 选中项目 然后搜索对应的包,然后排除即可,我这边已经排除了,就ok了 ctrlF搜索哦! 版本问题,使用插件解决吧: https://yidajava.blog.csdn.net/article/details/103668676...

网站建设中最重要的环节是/拍照搜索百度识图

https://jingyan.baidu.com/article/4e5b3e1935c7f3d0901e24e2.html 1. 打印机相关 打印机左下角蓝色的wifi网络设置按钮&#xff0c;按一下&#xff0c;进入到wifi设置菜单&#xff0c;左右切换菜单到 “wifi 默认设置” 按ok (这一步应该是初始化打印机的网络环境&#xff1…...

找建筑网站/互联网推广好做吗

传送门...