Python数据库操作中的SQLite技巧

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Python数据库操作中的SQLite技巧
SQLite是一种轻型的数据库管理系统,它是基于C语言实现的,并占用了很少的计算机资源。

在Python中,SQLite可以通过Python 自带的sqlite3模块来操作,这使得Python成为使用SQLite的绝佳工具。

在本篇论文中,我们将探讨一些Python操作SQLite的技巧。

一、连接SQLite及基本数据类型
SQLite通过sqlite3模块在Python中的使用需要先生成数据库连接。

通常的写法为:
```
import sqlite3
conn = sqlite3.connect('test.db')
```
在这个例子中,我们连接了一个名为“test.db”的SQLite数据库。

如果这个数据库不存在,那么Python会自动创建它,否则Python 就会打开它,并连通到这个数据库之中。

生成连接之后,我们便可以通过SQLite支持的数据类型进行操作。

SQLite支持的数据类型包括:
1. NULL:SQLite中的NULL表示空值。

2. INTEGER: SQLite中的整型数据类型,其中,integer可以使
用4 、 6 、 8.
3. REAL: SQLite中的实数数据类型。

4. TEXT: SQLite中的字符串数据类型。

5. BLOB: SQLite中的二进制数据类型。

在操作SQLite时,我们需要注意的是,SQLite是基于文件的,因此操作之前,需要确保数据表存在,否则Python会抛出一个错误。

二、创建、插入、查询数据表
1.创建数据表
Python允许我们通过SQL语句在SQLite中创建数据表,例子如下:```python
import sqlite3
conn = sqlite3.connect('test.db')
print("Opened database successfully")
conn.execute('''CREATE TABLE COMPANY
(ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL);''')
print("Table created successfully")
conn.close()
```
在这个例子中,我们创建了一个名为COMPANY的数据表,其中包含ID、NAME、AGE、ADDRESS、SALARY五个列,ID为主键,且是一个自动增长的列。

值得注意的是,诸如AUTOINCREMENT等SQLite特有的数据类型在Python中的使用也是完全兼容的,如下面这个例子所示:```python
import sqlite3
conn = sqlite3.connect('test.db')
print("Opened database successfully")
conn.execute('''CREATE TABLE COMPANY
(ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL DEFAULT 0);''')
print("Table created successfully")
conn.close()
在这个例子中,我们将SALARY的默认值设为了0。

2.插入数据
插入数据也是SQLite基础操作,如下展示的例子中,我们插入了一行数据:
```python
import sqlite3
conn = sqlite3.connect('test.db')
print("Opened database successfully")
conn.execute("INSERT INTO COMPANY
(ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (1, 'Paul', 32, 'California', 20000.00 )")
mit()
print("Records created successfully")
conn.close()
在这个例子中,我们向COMPANY表中插入了一行数据,这行数据的ID为1、姓名为Paul、年龄为32、地址为California、薪水为20000美元。

3.查询数据
获得SQLite数据表中的数据也很容易。

我们通过使用SELECT语句,通过UPDATE或DELETE语句来进行更新或删除数据。

下面的例子展示了如何查询数据:
```python
import sqlite3
conn = sqlite3.connect('test.db')
print("Opened database successfully")
cursor = conn.execute("SELECT id, name, address, salary from COMPANY")
for row in cursor:
print("ID = ", row[0])
print("NAME = ", row[1])
print("ADDRESS = ", row[2])
print("SALARY = ", row[3], "\n")
print("Operation done successfully")
conn.close()
```
我们将在COMPANY表中查询所有信息并打印出来,结果会如下所示:
```
ID = 1
NAME = Paul
ADDRESS = California
SALARY = 20000.0
```
三、Python生成数据表
我们也可以使用Python相关模块来生成数据表,这其实就意味着可以像通过SQL语句一样通过代码来完成表的创建。

Python中最常用的库是pandas、numpy,其中pandas包包括了对于数据库操作的封装,能够将DataFrame转为数据库的数据表,如下所示:
```python
import pandas as pd
import sqlite3
data_frame = pd.read_csv('data.csv')
dbs = sqlite3.connect('test.db')
data_frame.to_sql('name',dbs)
dbs.close()
```
这个例子中,我们通过读取数据文件(data.csv),并使用pandas来生成DataFrame,然后通过to_sql函数,将DataFrame存为SQLite数据库中的一个名为name的数据表。

四、批量插入数据
在生产环境下,往往会有大量数据进行批量插入的需求,我们有几种方法可以应对。

第一种方法,我们可以通过for循环插入,如下所示:
```python
import sqlite3
conn = sqlite3.connect('test.db')
cur = conn.cursor()
cur.execute("DROP TABLE IF EXISTS person")
cur.execute("CREATE TABLE person(id INT, name TEXT)")
data = [(1, 'John'), (2, 'David'), (3, 'Mary'), (4,
'Joseph')]
for d in data:
cur.execute("INSERT INTO person VALUES (?, ?)", d)
mit()
print("Records created successfully")
conn.close()
```
这个例子中,我们使用for循环插入了四条数据,即使有很多条数据,我们也几乎可以使用相同的代码完成。

另一种方法是,使用executemany()函数,例如:
```python
import sqlite3
conn = sqlite3.connect('test.db')
cur = conn.cursor()
cur.execute("DROP TABLE IF EXISTS person")
cur.execute("CREATE TABLE person(id INT, name TEXT)")
data = [(1, 'John'), (2, 'David'), (3, 'Mary'), (4,
'Joseph')]
cur.executemany("INSERT INTO person VALUES (?, ?)", data) mit()
print("Records created successfully")
conn.close()
```
使用executemany函数可以很方便的将多个元组批量插入到数据库。

总结:
在本篇论文中,我们介绍了一些Python数据库操作中的SQLite
技巧,包括连接SQLite、基本的数据类型、创建、插入和查询数据表。

我们还介绍了Python生成数据表、批量插入数据的技巧,这些技
巧都是在生产环境中非常实用的。

虽然本篇论文只是对SQLite的操作提供了最基本的入门知识,但是这些知识已经足以让你开始在Python中使用SQLite进行数据库操作了。

感谢您的阅读,希望这篇论文对您有所帮助!。

相关文档
最新文档