数据库的要求

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

相关推荐
_.Switch42 分钟前
Python Web 应用中的 API 网关集成与优化
开发语言·前端·后端·python·架构·log4j
一个闪现必杀技1 小时前
Python入门--函数
开发语言·python·青少年编程·pycharm
小鹿( ﹡ˆoˆ﹡ )1 小时前
探索IP协议的神秘面纱:Python中的网络通信
python·tcp/ip·php
逸巽散人2 小时前
SQL基础教程
数据库·sql·oracle
卷心菜小温2 小时前
【BUG】P-tuningv2微调ChatGLM2-6B时所踩的坑
python·深度学习·语言模型·nlp·bug
陈苏同学2 小时前
4. 将pycharm本地项目同步到(Linux)服务器上——深度学习·科研实践·从0到1
linux·服务器·ide·人工智能·python·深度学习·pycharm
唐家小妹2 小时前
介绍一款开源的 Modern GUI PySide6 / PyQt6的使用
python·pyqt
月空MoonSky2 小时前
Oracle中TRUNC()函数详解
数据库·sql·oracle
羊小猪~~3 小时前
深度学习项目----用LSTM模型预测股价(包含LSTM网络简介,代码数据均可下载)
pytorch·python·rnn·深度学习·机器学习·数据分析·lstm
Marst Code3 小时前
(Django)初步使用
后端·python·django