大家好,我是文文!咱们今天来聊聊数据库,这玩意儿就像个超级大的冰箱,能把各种数据食材整整齐齐地放进去,需要的时候随时取用,方便得很!而SQLite呢,就像是一个小巧玲珑的迷你冰箱,特别适合咱们做些小项目或者在移动设备上用,麻雀虽小五脏俱全!它轻量级、免服务器,用起来不要太方便!
SQLite是什么?
SQLite是一个嵌入式数据库,这意味着它直接集成到应用程序中,不需要单独的服务器进程。它使用单个文件存储整个数据库,使得数据库的管理和部署都非常简单。想想看,一个文件就能搞定数据库,是不是很方便?
安装SQLite
Python自带sqlite3模块,所以咱们不需要额外安装任何东西!直接导入就能用,是不是超级方便?
import sqlite3
基础功能示例
咱们先来创建一个数据库和一个表格,然后插入一些数据:
# 连接到数据库,如果数据库不存在则会自动创建
conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()
# 创建一个名为students的表格
cursor.execute('''
CREATE TABLE IF NOT EXISTS students (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER
)
''')
# 插入两条数据
cursor.execute("INSERT INTO students (name, age) VALUES (?, ?)", ('Alice', 20))
cursor.execute("INSERT INTO students (name, age) VALUES (?, ?)", ('Bob', 22))
# 提交更改,保存数据
conn.commit()
# 关闭连接
conn.close()
这段代码首先连接到名为mydatabase.db的数据库。如果数据库不存在,它会自动创建一个。然后,我们创建了一个名为students的表格,包含id、name和age三个字段。id字段是主键,会自动递增。最后,我们插入了两条学生数据,并提交更改。是不是很简单?
查询数据
现在咱们来查询一下刚才插入的数据:
conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()
# 查询所有学生的信息
cursor.execute("SELECT * FROM students")
rows = cursor.fetchall()
for row in rows:
print(row)
conn.close()
这段代码查询了students表格中的所有数据,并将结果打印出来。fetchall()方法会返回所有查询结果。
更新和删除数据
咱们还可以更新和删除数据:
conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()
# 更新Alice的年龄
cursor.execute("UPDATE students SET age = ? WHERE name = ?", (21, 'Alice'))
# 删除Bob的记录
cursor.execute("DELETE FROM students WHERE name = ?", ('Bob',))
conn.commit()
conn.close()
这段代码将Alice的年龄更新为21,并删除了Bob的记录。记得要用conn.commit()提交更改哦!
进阶特性:使用WHERE子句进行条件查询
WHERE 子句允许我们根据特定条件筛选数据,就像从冰箱里挑出想要的食材一样!
conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()
# 查询年龄大于20岁的学生
cursor.execute("SELECT * FROM students WHERE age > ?", (20,))
rows = cursor.fetchall()
for row in rows:
print(row)
conn.close()
这段代码查询了年龄大于20岁的学生信息。
实际应用场景
SQLite可以用于各种小型项目,例如:
数据缓存 配置文件存储 轻量级Web应用
使用技巧和注意事项
使用参数化查询可以防止SQL注入攻击。 及时提交更改以保存数据。 关闭数据库连接以释放资源。
总结
SQLite小巧强大,非常适合小型项目。咱们今天学习了SQLite的基本操作,包括创建数据库、创建表格、插入数据、查询数据、更新数据和删除数据。
学习建议
多练习,多尝试不同的SQL语句,熟能生巧!
互动邀请
大家还有什么想了解的数据库知识?欢迎在评论区留言!
结束语
希望今天的分享对大家有所帮助!咱们下次再见!