Python:简单操作一下SQLite3

SQLite3

关于SQLite,下面引用:

SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。 至2015年已经有15个年头,SQLite也迎来了一个版本 SQLite 3已经发布。[更多]

以下引用自网络:

SQLite3 可使用 sqlite3 模块与 Python 进行集成。sqlite3 模块是由 Gerhard Haring 编写的。它提供了一个与 PEP 249 描述的 DB-API 2.0 规范兼容的 SQL 接口。您不需要单独安装该模块,因为 Python 2.5.x 以上版本默认自带了该模块。
为了使用 sqlite3 模块,您首先必须创建一个表示数据库的连接对象,然后您可以有选择地创建光标对象,这将帮助您执行所有的 SQL 语句。[更多]

其实,上面这一堆,只是说明:Python 2.5+的版本,自带了SQLite.你可以直接使用!

python Logo
image-2438

简单工具

抽了一小会时间,简单写了个工具,只是简单封装了一下增删改查.在文件下面有示例,使用Python 3.5.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#!/usr/bin/env python3
#! -*-coding=utf-8-*-

import sqlite3

'''


专注操作SQLite3.


-- SQLite3,方便.

@py-version 3.5
@version 2016.4.10
@author prd.

@version --> 0.1 初始.

'''
class SQLite3Tools(object):

    # 获取数据库
    def getDB(self):
        if not self.dbconn: # 如果还未赋值,则直接给一个
            self.dbconn = sqlite3.connect(self.dbFileName)
            return sqlite3.connect(self.dbFileName)
        else: # 已经赋值则直接返回.
            return self.dbconn
   
    # 关闭数据库连接.
    def closeDB(self):
        self.dbconn.close()
        self.dbconn = None

    # 工具入口函数getDB()
    def main(self,dbFileName):
        self.dbFileName = dbFileName
        self.dbconn = None

    # 执行:创建表
    def createTable(self,sql):
        self.getDB().execute(sql)
        self.closeDB()

    '''
    执行:插入数据

    @sql :可以为list类型(其中每个项均为str格式的sql语句)
          也可以为str类型.
    '''
    def insert(self,sql):
        if isinstance(sql,list):
            for xsqlitem in sql:
                self.getDB().execute(xsqlitem)
        else:
            self.getDB().execute(sql)
        self.getDB().commit()
        self.closeDB()

    # 执行:查询数据
    def select(self,sql):
        cursor = self.getDB().execute(sql)
        resultDict = cursor
        self.closeDB()
        return resultDict

    # 执行:更新或删除.
    def updateOrDelete(self,sql):
        print(self.getDB())
        self.getDB().execute(sql)
        print(self.getDB())
        self.getDB().commit()
        print(self.getDB())
        result = self.getDB().total_changes
        print(result)
        self.closeDB()
        return result

if __name__ == '__main__':
    print("仅用作演示,供参考.~")
    # 先获取实例
    # tools = SQLite3Tools()
   
    # 传入数据库文件路径.
    # tools.main("test.db")

    # 创建表.
    # tools.createTable('''
    # CREATE TABLE COMPANY
    #        (ID INT PRIMARY KEY     NOT NULL,
    #        NAME           TEXT    NOT NULL,
    #        AGE            INT     NOT NULL,
    #        ADDRESS        CHAR(50),
    #        SALARY         REAL);
    #       ''')
    # 创建表.END.

    # 单条插入.
    #sqllist = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Paul', 32, 'California', 20000.00 )"
    #tools.insert(sqllist)
    # END.

    # 多条插入.
    # sqllist = ["INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (2, 'Allen', 25, 'Texas', 15000.00 )",\
    #   "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)    VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )",\
    #   "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)   VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 )"]
    # tools.insert(sqllist)
    # END.

    # 查询
    # sqlselect = '''SELECT id, name, address, salary  from COMPANY'''
    # for x in tools.select(sqlselect):
    #   print(x)   
    # 查询END.

    # 更新
    # updatesql = "UPDATE COMPANY set NAME = 'wzretffgf' where ID=1 ;"
    # tools.updateOrDelete(updatesql)
    # 更新END.

    # 删除
    # updatesql = "DELETE FROM COMPANY  where ID=1 ;"
    # tools.updateOrDelete(updatesql)
    # 删除END.

    # 查询
    # sqlselect = '''SELECT id, name, address, salary  from COMPANY'''
    # for x in tools.select(sqlselect):
    #   print(x)   
    # 查询END.