数据库的要求

本来我是不准备写数据库的。而且是准备从零开始,学习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 命令,用于创建这些表格:

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 语句来添加标签和搜索标签:

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 的完整示例代码,包括添加标签和搜索标签的功能:

python 复制代码
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.Text
    FROM Texts
    INNER JOIN Tags ON Texts.ID = Tags.TextID
    WHERE 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.lastrowid
    conn.commit()
    return text_id

# 主程序
while True:
    print("\n请输入文本(以#结束):")
    text_lines = []
    while True:
        line = input().strip()
        if line == "#":
            break
        text_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。然后,在命令行中运行该文件,按照提示操作即可。

相关推荐
喜欢猪猪2 分钟前
Java技术专家视角解读:SQL优化与批处理在大数据处理中的应用及原理
android·python·adb
海绵波波1073 分钟前
flask后端开发(1):第一个Flask项目
后端·python·flask
林的快手9 分钟前
209.长度最小的子数组
java·数据结构·数据库·python·算法·leetcode
从以前24 分钟前
准备考试:解决大学入学考试问题
数据结构·python·算法
Ven%40 分钟前
如何修改pip全局缓存位置和全局安装包存放路径
人工智能·python·深度学习·缓存·自然语言处理·pip
枫欢41 分钟前
将现有环境192.168.1.100中的svn迁移至新服务器192.168.1.4;
服务器·python·svn
测试杂货铺1 小时前
UI自动化测试实战实例
自动化测试·软件测试·python·selenium·测试工具·测试用例·pytest
余~~185381628002 小时前
NFC 碰一碰发视频源码搭建技术详解,支持OEM
开发语言·人工智能·python·音视频
一只淡水鱼662 小时前
【mybatis】详解 # 和 $ 的区别,两者分别适用于哪种场景,使用 $ 不当会造成什么影响
sql·spring·mybatis·sql注入
苏三有春2 小时前
PyQt实战——使用python提取JSON数据(十)
python·json·pyqt