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