SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。 至2021年已经接近有21个年头,SQLite也迎来了一个版本 SQLite 3已经发布。
功能特性
1. ACID事务
2. 零配置 – 无需安装和管理配置
3.储存在单一磁盘文件中的一个完整的数据库
5.支持数据库大小至2TB
6. 足够小, 大致13万行C代码, 4.43M
7. 比一些流行的数据库在大部分普通数据库操作要快
8. 简单, 轻松的API
9. 包含TCL绑定, 同时通过Wrapper支持其他语言的绑定
11. 独立: 没有额外依赖
12. 源码完全的开源, 你可以用于任何用途, 包括出售它
13. 支持多种开发语言,C, C++, PHP, Perl, Java, C#,Python, Ruby等
具体代码
用户注册
def register_user(username, password):
# 检查用户名是否已存在
cursor.execute("SELECT * FROM users WHERE username=?", (username,))
existing_user = cursor.fetchone()
if existing_user:
print("该用户名已被注册")
return False
else:
# 对密码进行哈希处理
hashed_password = hashlib.sha256(password.encode()).hexdigest()
# 插入新用户信息
cursor.execute("INSERT INTO users (username, password) VALUES (?, ?)", (username, hashed_password))
conn.commit()
print("用户注册成功")
return True
用户登录
def login_user(username, password):
# 对输入的密码进行哈希处理
hashed_password = hashlib.sha256(password.encode()).hexdigest()
# 查询用户信息
cursor.execute("SELECT * FROM users WHERE username=? AND password=?", (username, hashed_password))
user = cursor.fetchone()
if user:
print("登录成功")
return True
else:
print("用户名或密码错误")
return False
用户注销
def logout_user(username):
try:
# 查询用户名是否存在
cursor.execute("SELECT * FROM users WHERE username=?", (username,))
user = cursor.fetchone()
if user:
# 删除用户信息
cursor.execute("DELETE FROM users WHERE username=?", (username,))
conn.commit()
print("用户 {} 注销成功".format(username))
else:
print("用户 {} 不存在".format(username))
except sqlite3.Error as e:
print("SQLite 错误:", e)
示例
# 示例:注册新用户
register_user('user1', 'password123')
register_user('user2','123456')
# 示例:登录
login_user('user1', 'password123')
# 示例:注销
logout_user('user1')