sqlite数据库在Python中的使用简介

本文介绍了Python中如何使用sqlite3库与SQLite数据库交互,包括建立数据库连接、创建和删除表、插入、更新和删除数据。同时,文章提醒在处理中文字符时需要注意编码问题,并提供了一段封装成类的示例代码供新手参考。
摘要由CSDN通过智能技术生成

sqlite数据库在Python中的使用简介

1. sqlite3介绍

import sqlite3

SQLite数据库是一款非常小巧的嵌入式开源数据库软件,没有独立的维护进程,所有的维护都来自于程序本身。在python中,使用sqlite3创建数据库的连接,当数据库文件不存在时,会新建数据库文件;如果数据库文件已经存在了,则打开数据库文件。
连接对象可以是硬盘上面的数据库文件,也可以是建立在内存中的,在内存中的数据库执行完任何操作后,不需要提交事务的commit。

    #使用:memory:标识打开的是内存数据库  
    con = sqlite3.connect(":memory:")
    #在本地当前目录下创建数据库文件\打开数据库文件-test.db
    conn = sqlite3.connect('test.db')

打开数据库时返回的对象conn就是一个数据库连接对象,它可以有以下操作:

    commit()            --事务提交
    rollback()          --事务回滚
    close()             --关闭一个数据库链接
    cursor()            --创建一个游标

创建一个游标对象:cu

    cu = conn.cursor()

关闭一个游标对象

    cu.close()

在sqlite3中,所有sql语句的执行都要在游标对象的参与下完成
对于游标对象cu,具有以下具体操作:

    execute()           --执行一条sql语句
    executemany()       --执行多条sql语句
    close()             --游标关闭
    fetchone()          --从结果中取出一条记录
    fetchmany()         --从结果中取出多条记录
    fetchall()          --从结果中取出所有记录
    scroll()            --游标滚动

2. 创建table

创建表(id,name,gender,age,address,phone),通过cu.execute(create_table_sql)执行sql语句创建表,如果失败会抛出异常。“table student already exists”,代表已经存在student表,不能再次创建。

   create_table_sql = '''CREATE TABLE `student` (
                          `id` int(11) NOT NULL,
                          `name` varchar(20) NOT NULL,
                          `gender` varchar(4) DEFAULT NULL,
                          `age` int(11) DEFAULT NULL,
                          `address` varchar(200) DEFAULT NULL,
                          `phone` varchar(20) DEFAULT NULL,
                           PRIMARY KEY (`id`)
                        )'''
    try:
        conn = sqlite3.connect('test.db')
        cu = conn.cursor()
        cu.execute(create_table_sql)
        print 'table create successful'
    except sqlite3.Error, why:
        print 'create table failed:' + why.args[0]

2. 删除table

删除表,删除失败会抛出异常。

    try:
        #如果存在表先删除
        drop_table_sql = 'DROP TABLE IF EXISTS student'
        conn = sqlite3.connect('test.db')
        cu = conn.cursor()
        cu.execute(drop_table_sql)
        print 'delete table successful'
    except sqlite3.Error, why:
        print 'delete table failed:' + why.args[0]

2. 插入数据

    try:
        save_sql = 'INSERT INTO student values (?, ?, ?, ?, ?, ?)'
        data = (1, 'zhang', '男', 20, '广东省广州市', '13423****62')
        conn = sqlite3.connect('test.db')
        cu = conn.cursor()
        cu.execute(save_sql, data)
        print 'save data successful'
    except sqlite3.Error, why:
        print 'save data failed:' + why.args[0]

cu.execute(save_sql, data),data参数为元组,如果是其他类型会出现错误提示,上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值