pythonsplite是一个轻量级的关系型数据库,它可以嵌入到Python中,让我们能够灵活地管理本地数据。其最大的好处就是不需要安装额外的软件,只需要导入相应的库即可开始使用。本文将从多个方面进行详细阐述,帮助读者更深入了解pythonsplite。
一、创建数据库和表格
在使用pythonsplite之前,首先需要了解如何创建数据库和表格。
import sqlite3
#创建一个本地数据库文件test.db
conn = sqlite3.connect("test.db")
#创建一张students表
conn.execute('''CREATE TABLE students
(ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
GRADE CHAR(50));''')
#关闭数据库连接
conn.close()
以上代码展示了如何创建一个本地数据库文件,并在其中创建了一张名为students的表格。其中,ID、NAME、AGE、GRADE分别代表表格的四个列,其中ID列是主键,不能重复,其他列则有各自的数据类型。
二、插入数据
创建好表格之后,我们需要往表格里插入数据。下面是一个插入数据的示例:
import sqlite3
conn = sqlite3.connect("test.db")
conn.execute("INSERT INTO students (ID, NAME, AGE, GRADE) \
VALUES (1, 'Tom', 18, 'A')")
conn.execute("INSERT INTO students (ID, NAME, AGE, GRADE) \
VALUES (?, ?, ?, ?)", (2, 'Mary', 19, 'B'))
conn.commit()
conn.close()
以上代码展示了两种插入数据的方式。第一种是直接在SQL语句中传入数据,不过需要注意的是,这种方式存在SQL注入的风险。第二种方式则是使用参数化的方式传入数据,避免了SQL注入的风险。
三、查询数据
插入数据之后,我们需要查询数据。下面是一个查询数据的示例:
import sqlite3
conn = sqlite3.connect("test.db")
#查询students表中的所有数据
cursor = conn.execute("SELECT * FROM students")
#遍历查询结果
for row in cursor:
print("ID = ", row[0])
print("NAME = ", row[1])
print("AGE = ", row[2])
print("GRADE = ", row[3])
conn.close()
以上代码展示了如何查询一张表格中所有的数据,并且使用遍历的方式将查询结果打印出来。
四、更新和删除数据
在有了插入和查询的基础之后,我们还需要了解如何更新和删除数据。
import sqlite3
conn = sqlite3.connect("test.db")
#更新一条记录,将ID为2的记录的AGE改为20
conn.execute("UPDATE students SET AGE = ? WHERE ID = ?", (20, 2))
#删除一条记录,删除ID为1的记录
conn.execute("DELETE FROM students WHERE ID = ?", (1,))
conn.commit()
conn.close()
以上代码展示了如何更新和删除数据。在更新数据时,我们可以使用UPDATE语句来更新一条记录。在删除数据时,我们使用DELETE语句来删除指定的记录。
五、使用ORM框架
ORM(Object Relational Mapping)是一种将对象和关系型数据库映射的技术,可以让我们在Python中使用类似于面向对象的方式来访问数据库。下面展示了在SQLAlchemy中使用ORM的方式:
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
#连接到test.db数据库
engine = create_engine('sqlite:///test.db')
#创建Session类
Session = sessionmaker(bind=engine)
#创建一个session实例
session = Session()
#定义students表的ORM类
class Student(Base):
__tablename__ = 'students'
ID = Column(Integer, primary_key=True)
NAME = Column(String(20), nullable=False, unique=True)
AGE = Column(Integer, nullable=False)
GRADE = Column(String(50))
#插入一条记录
s = Student(ID=3, NAME='Lucy', AGE=17, GRADE='C')
session.add(s)
session.commit()
#查询所有记录
students = session.query(Student).all()
for student in students:
print(student.NAME, student.AGE)
session.close()
以上代码展示了如何使用ORM框架将Python对象映射到数据库中。首先,我们需要在框架中定义ORM类,定义完成之后,我们就可以在Python代码中使用这个ORM类的实例来操作数据库了。在使用ORM框架时,我们无需编写SQL语句,可以大大提高代码的可读性和可维护性。
六、总结
本文从创建数据库和表格、插入数据、查询数据、更新和删除数据、使用ORM框架等多个方面进行了详细阐述,希望可以帮助读者更深入地了解pythonsplite。