目录

数据库编程(一)

操作SQLite3数据库

基本流程

使用SQLite3创建表

使用SQLite3插入数据

使用SQLite3查询数据

使用SQLite3修改数据

数据库编程(一)

操作SQLite3数据库

从python3.X版本开始,在标准库中已经内置了SQLite3模块,它可以支持SQLite3数据库的访问和相关的数据库操作。在需要操作SQLite3数据库时,只须在程序中导入SQLite3模块即可。python语言操作SQLite3数据库的基本流程如下:

基本流程

(1)导入相关库或模块

(2)使用connect()链接数据库并获取数据库连接对象。它提供了以下方法:

方法

作用

.cursor()

创建一个游标对象

.commit()

处理事务提交

.rollback()

处理事务回滚

.close()

关闭一个数据库连接

(3)使用con.cursor()获取游标对象

(4)使用游标对象的方法(execute()、executemany()、fetchall()等)来操作数据库,实现插入、修改和删除操作,并查询获取显示相关的记录。在python程序中,连接函数sqlite3.connect()有如下两个常用参数:

<1>database:表示要访问的数据库名

<2>timeout:表示访问数据的超时设定。

(5)使用close()关闭游标对象和数据库连接。数据库操作完成之后,必须及时调用其close()方法关闭数据库连接,这样做的目的时减轻数据库服务器的压力。

使用SQLite3创建表

使用sqlite3模块的conn ect方法来创建/打开数据库,需要指定数据库路径,不存在则创建一个新的数据库。

con=sqlite3.connect('e:/sqlitebd/frist.db')

实例对象:

# coding=gbk
'''
1.导入sqlite3模块
2.创建连接sqlite3.connect
3. 创建游标对象
4.编写创建表的spl语句
5.执行spl语句
6.关闭链接
'''
import sqlite3
# 创建链接

con = sqlite3.connect('D:\sqlite3Demo/demo.db')
# 创建游标对象
cur = con.cursor()
# 编写创建表的spl语句
sql = '''create table t_person(
        pno INTEGER primary key autoincrement,
        pname VARCHAR not null,
        age INTEGHR)'''
try:
    # 执行spl语句
    cur.execute(sql)
    print("创建表成功")
except Exception as e:
    print(e)
    print("创建表失败")
finally:
    cur.close   # 关闭游标
    con.close()     # 关闭链接

使用SQLite3插入数据

调用游标对象的execu执行插入的sql,使用executemany()执行插入的多条sql语句,使用executemany()比循环使用 execute()执行多条sql语句效率高

使用SQLite3插入一条语句:

# 导入模块
import sqlite3
# 创建链接
con=sqlite3.connect("D:\sqlite3Demo/demo.db")
#创建游标对象
cur=con.cursor()
#编写插入sql
sql='insert into t_person(pname,age) values (?,?)'
try:
    # 执行sql
    cur.execute(sql, ('张三', 24))
    con.commit()
    print("事务插入数据成功")
except Exception as e:
    print(e)
    con.rollback()
    print("插入事务失败")
finally:
    cur.close()     #关闭游标链接
    con.close()     #关闭数据库链接

使用SQLite3插入多条语句:

# 导入模块
import sqlite3
# 创建链接
con = sqlite3.connect("D:\sqlite3Demo/demo.db")
# 创建游标对象
cur = con.cursor()
# 编写插入sql
sql = 'insert into t_person(pname,age) values (?,?)'
try:
    # 执行插入多条数据的sql
    cur.executemany(sql, [('张三', 24),('小李',23),("小张",23)])
    con.commit()
    print("事务插入数据成功")
except Exception as e:
    print(e)
    con.rollback()
    print("插入事务失败")
finally:
    cur.close()     #关闭游标链接
    con.close()     #关闭数据库链接

使用SQLite3查询数据

查询数据,游标对象提供了fetchall()和fetchone()方法。fetchall()方法获取所有数据,返回一个列表。fetchone()方法获取其中一个结果,返回一个元组。

fetchall()查询所有数据:

# 导入sqlite3模块
import sqlite3
# 创建链接
con = sqlite3.connect('D:/sqlite3Demo/demo.db')
# 创建游标对象
cur = con.cursor()
# 创建查询sql
sql = 'select * from t_person'
try:
    cur.execute(sql)
    # 获取结果集
    person_all = cur.fetchall()
    print(person_all)
    for person in person_all:
        print(person)
except Exception as e:
    print(e)
    print("查询所有数据失败")
finally:
    cur.close()     # 关闭游标
    con.close()     # 关闭链接

fetchone()查询单个数据:

# 导入sqlite3模块
import sqlite3
# 创建链接
con = sqlite3.connect('D:/sqlite3Demo/demo.db')
# 创建游标对象
cur = con.cursor()
# 创建查询sql
sql = 'select * from t_person'
try:
    cur.execute(sql)
    # 获取结果集
    person = cur.fetchone()
    print(person)
except Exception as e:
    print(e)
    print("查询所有数据失败")
finally:
    cur.close()     # 关闭游标
    con.close()     # 关闭链接

使用SQLite3修改数据

SQLite3修改数据实例:

# 导入模块
import sqlite3
# 创建链接
con=sqlite3.connect('D:/sqlite3Demo/demo.db')
# 创建游标对象
cur=con.cursor()
# 编写修改的SQL语句
sql='update t_person set pname=? where pno=?'
# 执行sql
try:
    cur.execute(sql,('小名',1))
    # 提交事务
    con.commit()
    print("修改成功")
except Exception as e:
    print(e)
    print("修改失败")
    con.rollbake()
finally:
    cur.close()     # 关闭游标
    con.close()     # 关闭链接

SQLite3删除数据实例:

# 导入模块
import sqlite3
# 创建链接
con=sqlite3.connect('D:/sqlite3Demo/demo.db')
# 创建游标对象
cur=con.cursor()
# 编写修改的SQL语句
sql='delete from t_person  where pno=?'
# 执行sql
try:
    cur.execute(sql, (1,))
    # 提交事务
    con.commit()
    print("删除成功")
except Exception as e:
    print(e)
    print("删除失败")
    con.rollbake()
finally:
    cur.close()     # 关闭游标
    con.close()     # 关闭链接