Python和SQLite数据库的交互 基本的增删改查操作

Python和SQLite数据库的交互 基本的增删改查操作

python中使用sqlite3模块操作SQLite,使用pip命令先安装:pip install sqlite3。在Python2.5以后,sqlite3属于内置模块,不要在安装,直接就可以使用。

创建数据库

如果数据库存在则打开,不存在则创建一个新的数据库。

# 硬盘中创建,不存在创建,存在打开
conn=sqlite3.connect('D:/test.db')

# 内存中创建
conn=sqlite3.connect(':memory:')

连接对象

conn就是数据库连接对象,我们需要通过连接对象操作,它有以下几个方法:

  1. cursor():创建游标对象
  2. commit():提交事务
  3. rollback():事务回滚
  4. close():关闭数据库连接

游标对象的使用

对数据库的查询需要使用到游标对象,记得先创建游标。游标对象支持一下几种方法:

  1. execute():执行SQL语句
  2. executemany():执行多条SQL语句
  3. close():关闭游标
  4. fetchone():从结果中取出一条,并将游标指向下一条记录
  5. fetchmay():从结果中取出多条记录
  6. fetchall():从结果中取出所有记录
  7. scroll():用于游标滚动

首先需要使用游标执行SQL语句,创建数据库表student

import sqlite3
# 创建链接对象
conn=sqlite3.connect(':memory:')
# 创建游标对象
cur=conn.cursor()
try:
    # 通过游标执行sql语句,创建数据表student
    cur.execute("""create table student(id primary key not null,
     name varchar(255),
     birth date not null,
     city varchar(255));""")

    # 插入数据
    cur.execute('insert into student values(1,"eyujun","1999-01-31","henan");')
    # 使用占位符?
    cur.execute('insert into student values(?,?,?,?);',(2,"鳄鱼君",'1999-03-31',"nanyang"))
    # 循环插入
    data=[(3,'zjj','1997-03-01','beijing'),
        (4,'wff','1959-03-21','jingzhou'),
        (5,'zn','1994-03-31','kaifeng'),
    ]
    cur.executemany('insert into student values(?,?,?,?);',data)
    # 执行事务
    conn.commit()
except Exception as e:
    # 出现错误执行 回滚事务
    print('数据库出错',e)
    conn.rollback()

# 数据查询
cur.execute('select * from student;')
result=cur.fetchone() # 一个结果 返回元组
result=cur.fetchall() # 所有结果 返回列表
print(result)

# 修改和删除数据
cur.execute('update student set name=? where id=?;',('soajdoij',1))
cur.execute('delete from student where id=?',(1,))

#关闭游标
cur.close()
#关闭连接
conn.close()
分享到 :

发表评论

登录... 后才能评论