Python中SQLite数据库连接和操作

合集下载

Python之Sqlite3数据库基本操作

Python之Sqlite3数据库基本操作

Python之Sqlite3数据库基本操作在⼀些⼩的应⽤中,难免会⽤到数据库,Sqlite数据库以其⼩巧轻便,⽆需安装,移植性好著称,本⽂主要以⼀个简单的⼩例⼦,简述Python在Sqlite数据库⽅⾯的应⽤,仅供学习分享使⽤,如有不⾜之处,还请指正。

涉及知识点1. sqlite3是Python集成的内置类库,提供Python操作sqlite3的相关接⼝。

2. sqlite3.connect(dbfile) 创建数据库连接,返回⼀个连接对象3. conn.cursor() 创建游标对象,通过返回的cursor对象,执⾏相应的SQL语句。

4. cur.execute(sql, *args) 执⾏语句5. mit() 提交执⾏的结果到数据库6. conn.rollback() 回退执⾏的结果7. cur.close() 关闭cursor对象8. conn.close() 关闭连接对象基础操作代码关于Python操作sqlite3的相关核⼼代码,如下所⽰:创建数据表1def createDb():2"""创建db数据表"""3 sql = '''4 create table person (5 id integer primary key autoincrement not null,6 name varchar not null,7 age integer8 )9'''10 executeSql(sql)View Code插⼊语句1def insertData(name, age):2"""插⼊数据"""3 sql = 'insert into person (name,age)values(?,?)'4 executeSql(sql, (name, age))View Codeupdate语句1def updateData(id, name, age):2"""通过ID进⾏修改语句"""3 sql = 'update person set name=?,age =? where id=?'4 executeSql(sql, (name, age, id))View Codedelete语句1def deleteData(id):2"""通过ID删除数据"""3 sql = 'delete from person where id=?'4 executeSql(sql, (id,))View Code上⾯的语句都调⽤统⼀的executeSql⽅法,如下所⽰:1def executeSql(sql, *args):2"""执⾏更新语句"""3 conn = sqlite3.connect(dbfile)4 cur = conn.cursor()5try:6 cur.execute(sql, *args)7 mit()8print('执⾏成功,影响⾏数:', cur.rowcount)9except Exception as e:10 conn.rollback()11print(e)12print('执⾏失败')13finally:14 cur.close()15 conn.close()View Code查询语句(⽆条件查询)1def queryData():2"""查询语句"""3 sql = 'select id,name,age from person '4 executeQuerySql(sql)View Code查询语句(条件查询)1def queryDataById(id):2"""通过id进⾏查询"""3 sql = 'select id,name,age from person where id = ? '4 executeQuerySql(sql, (id,))View Code上⾯的查询语句,都调⽤统⼀的executeQuerySql⽅法,如下所⽰:1def executeQuerySql(sql, *args):2"""执⾏查询语句,可带参数"""3 conn = sqlite3.connect(dbfile)4 cur = conn.cursor()5try:6 cur.execute(sql, *args)7 persons = cur.fetchall()8for p in persons:9print('当前⾏信息如下:')10print(p) # 返回的是⼀个元组tuple11print('查询成功')12except Exception as e:13print(e)14print('查询失败')15finally:16 cur.close()17 conn.close()View Code关于本例⼦的执⾏源码,可通过链接进⾏下载,如下所⽰:Python参数传递⽅式Python的参数传递⼀共有以下五种(位置参数、默认参数、变长参数、关键字参数、命名关键字参数)位置传递,即参数按照定义的位置及顺序进⾏传递,如下所⽰:1# 位置传递实例:2def fun1(a, b, c):3return a + b + c456print(fun1(1, 2, 3))View Code关键字传递,即通过传递的参数的名称进⾏识别。

利用Python进行数据库编程的基本原理和技术

利用Python进行数据库编程的基本原理和技术

利用Python进行数据库编程的基本原理和技术Python是一种广泛使用的编程语言,它可以轻松地与各种数据库进行交互和操作。

本文将介绍利用Python进行数据库编程的基本原理和技术。

1. 数据库编程概述数据库编程是指通过编程语言与数据库进行交互、查询、插入、更新和删除数据的过程。

Python提供了多种库和模块,可以方便地连接和操作各种类型的数据库,如MySQL、PostgreSQL、SQLite等。

2. 连接数据库在Python中,可以使用相应的库来连接不同的数据库。

例如,使用`mysql-connector-python`库连接MySQL数据库,使用`psycopg2`库连接PostgreSQL数据库。

首先,需要安装相应的库,然后使用库提供的函数或方法创建数据库连接对象。

3. 执行SQL语句一旦建立了数据库连接,就可以通过执行SQL语句来与数据库交互。

Python提供了与数据库交互的接口,可以执行查询语句、插入、更新和删除数据等操作。

可以通过库提供的函数或方法来执行SQL语句,并获得结果。

4. 查询数据查询是数据库编程中最常用的操作之一。

通过执行SQL的SELECT 语句,可以从数据库中检索数据。

Python提供了多种方式来执行查询操作,可以直接执行原始SQL查询,也可以使用ORM(对象关系映射)工具,通过类和对象来执行查询。

5. 插入数据插入数据是向数据库中添加新记录的操作。

通过执行SQL的INSERT语句,可以将数据插入到指定的表中。

在Python中,可以使用库提供的函数或方法来执行插入操作,传递相应的数据参数即可。

6. 更新数据更新数据是修改数据库中已有记录的操作。

通过执行SQL的UPDATE语句,可以修改表中的数据。

在Python中,可以使用库提供的函数或方法来执行更新操作,传递相应的条件和新数据参数即可。

7. 删除数据删除数据是从数据库中删除记录的操作。

通过执行SQL的DELETE语句,可以删除表中的数据。

python开发_sqlite3_绝对完整

python开发_sqlite3_绝对完整

python开发_sqlite3_绝对完整 1import sqlite32import os3'''SQLite数据库是⼀款⾮常⼩巧的嵌⼊式开源数据库软件,也就是说4没有独⽴的维护进程,所有的维护都来⾃于程序本⾝。

5在python中,使⽤sqlite3创建数据库的连接,当我们指定的数据库⽂件不存在的时候6连接对象会⾃动创建数据库⽂件;如果数据库⽂件已经存在,则连接对象不会再创建7数据库⽂件,⽽是直接打开该数据库⽂件。

8连接对象可以是硬盘上⾯的数据库⽂件,也可以是建⽴在内存中的,在内存中的数据库9执⾏完任何操作后,都不需要提交事务的(commit)1011创建在硬盘上⾯: conn = sqlite3.connect('c:\\test\\test.db')12创建在内存上⾯: conn = sqlite3.connect('"memory:')1314下⾯我们⼀硬盘上⾯创建数据库⽂件为例来具体说明:15 conn = sqlite3.connect('c:\\test\\hongten.db')16其中conn对象是数据库链接对象,⽽对于数据库链接对象来说,具有以下操作:1718 commit() --事务提交19 rollback() --事务回滚20 close() --关闭⼀个数据库链接21 cursor() --创建⼀个游标2223 cu = conn.cursor()24这样我们就创建了⼀个游标对象:cu25在sqlite3中,所有sql语句的执⾏都要在游标对象的参与下完成26对于游标对象cu,具有以下具体操作:2728 execute() --执⾏⼀条sql语句29 executemany() --执⾏多条sql语句30 close() --游标关闭31 fetchone() --从结果中取出⼀条记录32 fetchmany() --从结果中取出多条记录33 fetchall() --从结果中取出所有记录34 scroll() --游标滚动3536'''3738#global var39#数据库⽂件绝句路径40 DB_FILE_PATH = ''41#表名称42 TABLE_NAME = ''43#是否打印sql44 SHOW_SQL = True4546def get_conn(path):47'''获取到数据库的连接对象,参数为数据库⽂件的绝对路径48如果传递的参数是存在,并且是⽂件,那么就返回硬盘上⾯改49路径下的数据库⽂件的连接对象;否则,返回内存中的数据接50连接对象'''51 conn = sqlite3.connect(path)52if os.path.exists(path) and os.path.isfile(path):53print('硬盘上⾯:[{}]'.format(path))54return conn55else:56 conn = None57print('内存上⾯:[:memory:]')58return sqlite3.connect(':memory:')5960def get_cursor(conn):61'''该⽅法是获取数据库的游标对象,参数为数据库的连接对象62如果数据库的连接对象不为None,则返回数据库连接对象所创63建的游标对象;否则返回⼀个游标对象,该对象是内存中数据64库连接对象所创建的游标对象'''65if conn is not None:66return conn.cursor()67else:68return get_conn('').cursor()6970###############################################################71#### 创建|删除表操作 START72###############################################################73def drop_table(conn, table):74'''如果表存在,则删除表,如果表中存在数据的时候,使⽤该75⽅法的时候要慎⽤!'''76if table is not None and table != '':77 sql = 'DROP TABLE IF EXISTS ' + table78if SHOW_SQL:79print('执⾏sql:[{}]'.format(sql))80 cu = get_cursor(conn)81 cu.execute(sql)82 mit()83print('删除数据库表[{}]成功!'.format(table))84 close_all(conn, cu)85else:86print('the [{}] is empty or equal None!'.format(sql))8788def create_table(conn, sql):89'''创建数据库表:student'''90if sql is not None and sql != '':91 cu = get_cursor(conn)92if SHOW_SQL:93print('执⾏sql:[{}]'.format(sql))94 cu.execute(sql)95 mit()96print('创建数据库表[student]成功!')97 close_all(conn, cu)98else:99print('the [{}] is empty or equal None!'.format(sql))100101############################################################### 102#### 创建|删除表操作 END103############################################################### 104105def close_all(conn, cu):106'''关闭数据库游标对象和数据库连接对象'''107try:108if cu is not None:109 cu.close()110finally:111if conn is not None:112 conn.close()113114############################################################### 115#### 数据库操作CRUD START116############################################################### 117118def save(conn, sql, data):119'''插⼊数据'''120if sql is not None and sql != '':121if data is not None:122 cu = get_cursor(conn)123for d in data:124if SHOW_SQL:125print('执⾏sql:[{}],参数:[{}]'.format(sql, d))126 cu.execute(sql, d)127 mit()128 close_all(conn, cu)129else:130print('the [{}] is empty or equal None!'.format(sql))131132def fetchall(conn, sql):133'''查询所有数据'''134if sql is not None and sql != '':135 cu = get_cursor(conn)136if SHOW_SQL:137print('执⾏sql:[{}]'.format(sql))138 cu.execute(sql)139 r = cu.fetchall()140if len(r) > 0:141for e in range(len(r)):142print(r[e])143else:144print('the [{}] is empty or equal None!'.format(sql))145146def fetchone(conn, sql, data):147'''查询⼀条数据'''148if sql is not None and sql != '':149if data is not None:150#Do this instead151 d = (data,)152 cu = get_cursor(conn)153if SHOW_SQL:154print('执⾏sql:[{}],参数:[{}]'.format(sql, data))155 cu.execute(sql, d)156 r = cu.fetchall()157if len(r) > 0:158for e in range(len(r)):159print(r[e])160else:161print('the [{}] equal None!'.format(data))162else:163print('the [{}] is empty or equal None!'.format(sql))164165def update(conn, sql, data):166'''更新数据'''167if sql is not None and sql != '':168if data is not None:169 cu = get_cursor(conn)170for d in data:171if SHOW_SQL:172print('执⾏sql:[{}],参数:[{}]'.format(sql, d))173 cu.execute(sql, d)174 mit()175 close_all(conn, cu)176else:177print('the [{}] is empty or equal None!'.format(sql))178179def delete(conn, sql, data):180'''删除数据'''181if sql is not None and sql != '':182if data is not None:183 cu = get_cursor(conn)184for d in data:185if SHOW_SQL:186print('执⾏sql:[{}],参数:[{}]'.format(sql, d))187 cu.execute(sql, d)188 mit()189 close_all(conn, cu)190else:191print('the [{}] is empty or equal None!'.format(sql))192############################################################### 193#### 数据库操作CRUD END194############################################################### 195196197############################################################### 198#### 测试操作 START199############################################################### 200def drop_table_test():201'''删除数据库表测试'''202print('删除数据库表测试...')203 conn = get_conn(DB_FILE_PATH)204 drop_table(conn, TABLE_NAME)205206def create_table_test():207'''创建数据库表测试'''208print('创建数据库表测试...')209 create_table_sql = '''CREATE TABLE `student` (210 `id` int(11) NOT NULL,211 `name` varchar(20) NOT NULL,212 `gender` varchar(4) DEFAULT NULL,213 `age` int(11) DEFAULT NULL,214 `address` varchar(200) DEFAULT NULL,215 `phone` varchar(20) DEFAULT NULL,216 PRIMARY KEY (`id`)217 )'''218 conn = get_conn(DB_FILE_PATH)219 create_table(conn, create_table_sql)220221def save_test():222'''保存数据测试...'''223print('保存数据测试...')224 save_sql = '''INSERT INTO student values (?, ?, ?, ?, ?, ?)'''225 data = [(1, 'Hongten', '男', 20, '⼴东省⼴州市', '13423****62'),226 (2, 'Tom', '男', 22, '美国旧⾦⼭', '15423****63'),227 (3, 'Jake', '⼥', 18, '⼴东省⼴州市', '18823****87'),228 (4, 'Cate', '⼥', 21, '⼴东省⼴州市', '14323****32')]229 conn = get_conn(DB_FILE_PATH)230 save(conn, save_sql, data)231232def fetchall_test():233'''查询所有数据...'''234print('查询所有数据...')235 fetchall_sql = '''SELECT * FROM student'''236 conn = get_conn(DB_FILE_PATH)237 fetchall(conn, fetchall_sql)238239def fetchone_test():240'''查询⼀条数据...'''241print('查询⼀条数据...')242 fetchone_sql = 'SELECT * FROM student WHERE ID = ? '243 data = 1244 conn = get_conn(DB_FILE_PATH)245 fetchone(conn, fetchone_sql, data)246247def update_test():248'''更新数据...'''249print('更新数据...')250 update_sql = 'UPDATE student SET name = ? WHERE ID = ? '251 data = [('HongtenAA', 1),252 ('HongtenBB', 2),253 ('HongtenCC', 3),254 ('HongtenDD', 4)]255 conn = get_conn(DB_FILE_PATH)256 update(conn, update_sql, data)257258def delete_test():259'''删除数据...'''260print('删除数据...')261 delete_sql = 'DELETE FROM student WHERE NAME = ? AND ID = ? ' 262 data = [('HongtenAA', 1),263 ('HongtenCC', 3)]264 conn = get_conn(DB_FILE_PATH)265 delete(conn, delete_sql, data)266267############################################################### 268#### 测试操作 END269############################################################### 270271def init():272'''初始化⽅法'''273#数据库⽂件绝句路径274global DB_FILE_PATH275 DB_FILE_PATH = 'c:\\test\\hongten.db'276#数据库表名称277global TABLE_NAME278 TABLE_NAME = 'student'279#是否打印sql280global SHOW_SQL281 SHOW_SQL = True282print('show_sql : {}'.format(SHOW_SQL))283#如果存在数据库表,则删除表284 drop_table_test()285#创建数据库表student286 create_table_test()287#向数据库表中插⼊数据288 save_test()289290291def main():292 init()293 fetchall_test()294print('#' * 50)295 fetchone_test()296print('#' * 50)297 update_test()298 fetchall_test()299print('#' * 50)300 delete_test()301 fetchall_test()302303if__name__ == '__main__':304 main()。

sqlite-web使用方法

sqlite-web使用方法

sqlite-web是一个基于 Web 的 SQLite 数据库管理工具,允许通过浏览器直观地管理SQLite 数据库。

以下是sqlite-web的使用方法:
1.安装sqlite-web:
可以通过使用 Python 的包管理工具pip来安装sqlite-web:
2.启动sqlite-web:
在命令行中输入以下命令来启动sqlite-web:
其中,your_database.db是要管理的 SQLite 数据库文件的路径。

如果没有指定数据库文件,sqlite-web将创建一个新的数据库文件。

还可以使用-H和-p选项来指定主机和端口号:
上述命令将允许从任何 IP 地址访问,并使用端口号 8080。

3.访问sqlite-web界面:
打开的浏览器,并访问指定的主机和端口。

4.使用sqlite-web管理数据库:
在sqlite-web的 Web 界面中,将看到数据库中的表格和其他信息。

可以:
–执行 SQL 查询。

–查看表格的内容。

–插入、更新或删除数据。

–导出数据为 CSV 文件。

–等等。

界面通常是直观的,可以通过点击和填写表单来进行各种操作。

5.关闭sqlite-web:
在命令行中按Ctrl + C组合键来停止sqlite-web。

请注意,sqlite-web是一个用于开发和调试目的的轻量级工具,不适合在生产环境中使用。

在生产环境中,可能会选择更为强大和安全的数据库管理工具。

如何在Python中使用数据库

如何在Python中使用数据库

如何在Python中使用数据库在Python中使用数据库Python是一种简洁而强大的编程语言,广泛应用于数据分析、Web开发以及科学计算等领域。

在许多应用中,数据库是必不可少的组成部分,用于存储和管理数据。

本文将介绍如何在Python中使用数据库,并提供一些实用的示例和技巧。

一、Python中的数据库模块Python提供了多个数据库模块,用于连接和操作各种类型的数据库。

其中最常用的几个模块包括:1.1 SQLite3模块:SQLite是一种轻量级的嵌入式数据库,适用于小型项目和原型开发。

1.2 MySQL Connector/Python模块:用于连接和操作MySQL数据库,支持Python 3。

1.3 psycopg2模块:用于连接和操作PostgreSQL数据库,是一个成熟且可靠的模块。

1.4 PyMongo模块:用于连接和操作MongoDB数据库,适用于NoSQL数据库的操作。

二、连接数据库无论使用哪个数据库模块,在Python中连接到数据库的步骤大致相同。

以下是一个通用的连接数据库的示例:```pythonimport 模块名# 建立数据库连接connection = 模块名.connect(参数)# 创建游标对象cursor = connection.cursor()# 执行SQL查询或命令cursor.execute(SQL语句)# 获取查询结果results = cursor.fetchall()# 关闭游标和连接cursor.close()connection.close()```其中,模块名是指你选择使用的数据库模块的名字,参数是连接数据库所需的一些信息,如主机名、用户名、密码等。

SQL语句可以根据实际需求进行修改。

三、执行SQL查询连接数据库后,我们可以执行各种SQL查询操作,如插入、更新、删除和查询数据等。

以下是一些常用的SQL查询示例:3.1 插入数据```python# 插入一条数据insert_query = "INSERT INTO 表名 (列1, 列2, 列3) VALUES (值1,值2, 值3)"cursor.execute(insert_query)# 提交事务mit()```3.2 更新数据```python# 更新数据update_query = "UPDATE 表名 SET 列 = 新值 WHERE 条件"cursor.execute(update_query)# 提交事务mit()```3.3 删除数据```python# 删除数据delete_query = "DELETE FROM 表名 WHERE 条件" cursor.execute(delete_query)# 提交事务mit()```3.4 查询数据```python# 查询数据select_query = "SELECT * FROM 表名 WHERE 条件" cursor.execute(select_query)# 获取查询结果results = cursor.fetchall()# 遍历结果for row in results:# 处理每一行数据...```四、使用ORM(对象关系映射)除了使用原始的SQL查询,Python中还有一种更高级的数据库访问方式,即使用ORM框架。

pyodbc pymssql 用法

pyodbc pymssql 用法

一、介绍pyodbc和pymssqlpyodbc和pymssql都是Python语言中用于操作数据库的库,它们可以帮助开发者连接数据库并执行SQL语句,从而实现对数据库的增删改查操作。

本文将介绍pyodbc和pymssql的用法,包括安装、连接数据库、查询数据、插入数据、更新数据和删除数据等方面。

通过学习本文,读者将能够熟练使用pyodbc和pymssql来操作数据库,提高对数据库的管理能力。

二、安装pyodbc和pymssql1. 使用pip安装pyodbc:```bashpip install pyodbc```2. 使用pip安装pymssql:```bashpip install pymssql```安装完毕后,即可开始使用pyodbc和pymssql进行数据库操作。

三、连接数据库1. 使用pyodbc连接数据库:```pythonimport pyodbcconn = pyodbc.connect('DRIVER={SQL Server Native Client 11.0};SERVER=your_server;DATABASE=your_database;UID=your _username;PWD=your_password')```2. 使用pymssql连接数据库:```pythonimport pymssqlconn = pymssql.connect(server='your_server',user='your_username', password='your_password', database='your_database')```通过上述代码,即可成功连接数据库。

四、查询数据1. 使用pyodbc查询数据:```pythoncursor = conn.cursor()cursor.execute('SELECT * FROM your_table')for row in cursor:print(row)```2. 使用pymssql查询数据:```pythoncursor = conn.cursor()cursor.execute('SELECT * FROM your_table')for row in cursor:print(row)```通过上述代码,即可成功查询数据。

python数据库表数据的读写方法

python数据库表数据的读写方法

Python提供了多种库用于与数据库进行交互,其中最常用的是SQLite,MySQL和PostgreSQL。

下面是使用Python对数据库表数据进行读写的基本步骤:安装数据库库:在Python中,你需要安装相应的数据库库来进行数据库的操作。

如果你使用的是SQLite数据库,那么你可以直接使用Python的标准库,而不需要额外的安装。

如果你使用的是MySQL 或PostgreSQL,你可能需要安装如mysql-connector-python或psycopg2这样的库。

例如,如果你想使用SQLite,你无需任何额外的安装步骤。

如果你想使用MySQL,你可以通过pip来安装mysql-connector-python:bashpip install mysql-connector-python对于PostgreSQL,你可以安装psycopg2:bashpip install psycopg2连接到数据库:在Python中连接到数据库是必要的第一步。

这通常涉及到提供数据库的位置以及用于连接的凭据(例如用户名和密码)。

以下是一个连接到SQLite数据库的例子:pythonimport sqlite3conn = sqlite3.connect('example.db')如果你正在使用MySQL或PostgreSQL,连接过程可能稍有不同。

以下是一个连接到MySQL 数据库的例子:pythonimport mysql.connectorconn = mysql.connector.connect(host="localhost", # your host, usually localhostuser="your_username", # your usernamepasswd="your_password", # your passworddb="mydatabase" # name of the data base)创建游标:在连接数据库之后,你需要创建一个游标对象,用于执行所有的SQL命令。

sqlite3数据库编写测试用例 -回复

sqlite3数据库编写测试用例 -回复

sqlite3数据库编写测试用例-回复本文旨在通过一个实际案例来描述如何编写SQLite3数据库的测试用例。

本文将详细解释SQLite3数据库的使用方式,并给出一些常见的测试用例。

本文假设读者已经对基本的数据库概念、SQL语言以及Python编程有一定的了解。

一、什么是SQLite3数据库?SQLite是一个嵌入式关系型数据库管理系统,是基于文件的数据库,它不需要一个独立的服务器进程来操作。

它是自包含、零配置的、支持事务的数据库引擎。

SQLite各种操作都通过标准的SQL语句完成。

在使用SQLite数据库时,可以直接使用SQLite提供的shell或命令行方式来操作,也可以通过各种编程语言的SQLite接口来进行操作,如Python、Java、C++等。

二、SQLite3数据库的安装与使用1. 安装SQLite3SQLite3数据库是SQLite这个软件的命令行工具,在Linux和Mac OS中,一般已经安装了SQLite3。

在Windows中,需要下载SQLite3的预编译二进制文件并安装。

安装完成后,在命令行中输入"sqlite3",即可进入SQLite3的交互式shell。

2. 创建一个SQLite数据库在SQLite3中,数据库以单一的文件形式存储,可以使用以下命令创建一个新的数据库文件:sqlite3 mydatabase.db这个命令将创建一个名为"mydatabase.db"的数据库文件。

进入SQLite shell后,可以开始使用各种SQL命令操作数据库。

三、编写SQLite3数据库的测试用例1. 测试表的创建在SQLite数据库中,表是存储数据的基本单元。

创建表是数据库设计的第一步,我们需要编写测试用例来确保表的创建操作正常。

pythonimport sqlite3创建数据库连接connection = sqlite3.connect("mydatabase.db")cursor = connection.cursor()执行SQL创建表的语句cursor.execute("CREATE TABLE IF NOT EXISTS user (id INT PRIMARY KEY, name TEXT, age INT)")上述代码中,我们导入了sqlite3模块,首先建立与数据库文件的连接,然后使用游标(cursor)执行`CREATE TABLE`语句来创建名为"user"的表,该表包含"id"、"name"和"age"三个列。

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

Python中SQLite数据库连接和操作
一、SQLite数据库介绍
SQLite是一种轻型、嵌入式数据库,与传统的客户端-服务器数据库不同,它是在同一进程中运行的库,实现了在本地磁盘中创建一个单一的文件来存储整个数据库,使得在编写应用程序时集成数据库变得更加容易。

SQLite由于其高效性和可移植性,已经被广泛地应用于移动开发、桌面应用程序和Web应用程序中。

二、Python中SQLite数据库的连接
Python中提供了一个名为sqlite3的标准API,用于连接和操作SQLite数据库,我们可以使用这个API在Python程序中轻松地进行数据库的读写操作。

1.导入SQLite模块
要使用SQLite数据库,需要先导入Python的sqlite3模块,可以使用以下代码进行导入:
```
import sqlite3
```
2.连接数据库
使用sqlite3.connect()方法可以连接到SQLite数据库,该方法需要指定数据库文件的路径,如果文件不存在,则会创建一个新的数据库文件。

```
conn = sqlite3.connect('test.db')
```
这里的test.db是要连接的数据库文件名,连接成功后返回一个数据库连接对象conn。

3.创建游标对象
在连接数据库后,需要创建游标对象来执行SQL语句,可以使用以下代码创建游标对象:
```
cursor = conn.cursor()
```
三、Python中SQLite数据库的操作
1.创建表
使用游标对象执行SQL语句可以创建表,例如:```
cursor.execute('''CREATE TABLE COMPANY (ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL, ADDRESS CHAR(50),
SALARY REAL);''')
```
这个语句创建了一个名为COMPANY的表,表中包含5个字段:ID、NAME、AGE、ADDRESS、SALARY,其中ID字段是主键,不允许为空。

2.插入数据
插入数据可以使用INSERT语句,例如:
```
cursor.execute("INSERT INTO COMPANY
(ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (1, 'Paul', 32, 'California', 20000.00 )")
```
这里插入了一行数据,该行数据包含COMPANY表中所有字段的值。

3.查询数据
查询数据可以使用SELECT语句,例如:
```
cursor.execute("SELECT * from COMPANY")
```
这个语句查询COMPANY表中所有数据,可以使用fetchall()方法获取查询结果。

```
rows = cursor.fetchall()
for row in rows:
print(row)
```
这个代码将打印COMPANY表中所有数据的结果。

4.更新数据
更新数据可以使用UPDATE语句,例如:
```
cursor.execute("UPDATE COMPANY set SALARY = 25000.00 where ID = 1")
```
这里更新了ID为1的行的SALARY字段的值为25000.00。

5.删除数据
删除数据可以使用DELETE语句,例如:
```
cursor.execute("DELETE from COMPANY where ID=2;")
```
这里删除了ID为2的行。

6.提交事务
在完成数据库操作后必须提交事务,可以使用commit()方法将事务提交到数据库,例如:
```
mit()
```
四、Python中SQLite数据库的事务处理
事务是一组数据库操作,可以被看做是一个单元,这些操作要么全部完成,要么全部不完成,这样可以确保在进行多个操作时保持数
据库的完整性。

如果其中一个操作失败,所有操作都不会被执行,数据库回滚到上一个状态。

SQLite中的事务默认是自动提交的,也就是说每个操作都会立即提交到数据库,如果需要支持事务,则需要将自动提交模式关闭。

可以使用以下代码将自动提交模式关闭:
```
conn.isolation_level = None
```
然后可以使用以下代码建立事务:
```
try:
cursor.execute("...")
cursor.execute("...")
...
mit()
except:
conn.rollback()
```
在这个代码块中,所有操作都将在一个事务中执行,如果发生异常,事务将回滚到上一个状态,所有操作都被撤销。

五、Python中SQLite数据库的关闭
在完成SQLite数据库的操作后,应该关闭数据库连接,可以使用
以下代码完成关闭:
```
conn.close()
```
这个代码断开数据库连接并释放相应的资源。

总结
Python中的SQLite数据库提供简单而高效的数据库存储解决方案,具有多种优势比如高效性、可移植性和轻量级等。

使用SQLite3 API
能够连接和操作数据库,其中包括创建表、插入数据、查询数据、更新数据、删除数据以及事务处理等。

应用SQLite数据库存储,可以更好地实现数据的存储和读取,同时也方便了需要数据存储的应用程序的开发。

相关文档
最新文档