数据库的要求

本来我是不准备写数据库的。而且是准备从零开始,学习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。然后,在命令行中运行该文件,按照提示操作即可。

相关推荐
工业3D_大熊5 分钟前
【虚拟仿真】CEETRON SDK在船舶流体与结构仿真中的应用解读
java·python·科技·信息可视化·c#·制造·虚拟现实
SEEONTIME14 分钟前
python-24-一篇文章彻底掌握Python HTTP库Requests
开发语言·python·http·http库requests
Bearnaise14 分钟前
PointMamba: A Simple State Space Model for Point Cloud Analysis——点云论文阅读(10)
论文阅读·笔记·python·深度学习·机器学习·计算机视觉·3d
哇咔咔哇咔1 小时前
【科普】conda、virtualenv, venv分别是什么?它们之间有什么区别?
python·conda·virtualenv
infiniteWei1 小时前
【Lucene】什么是全文检索?解读结构化数据与非结构化数据
django·全文检索·lucene
CSXB991 小时前
三十四、Python基础语法(文件操作-上)
开发语言·python·功能测试·测试工具
floret*1 小时前
HiveSQL面试题
hive·sql
亚图跨际2 小时前
MATLAB和Python及R潜变量模型和降维
python·matlab·r语言·生物学·潜变量模型
infiniteWei2 小时前
【Lucene】全文检索 vs 顺序扫描,为何建立索引比逐个文件搜索更高效?
django·全文检索·lucene
IT古董2 小时前
【机器学习】决定系数(R²:Coefficient of Determination)
人工智能·python·机器学习