PYTHON——數據存儲:SQLite數據庫


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已經發布。
  可以通過官網下載SQLite:  http://www.sqlite.org
  SQLite數據庫的管理工具很多,SQLite官方提供的是命令行的管理工具,不方便。建議采用DB Browser for SQLite,這是一款免費開源的SQLite數據庫管理工具。官網下載地址:http://sqlitebrowser.org。

用python操作SQLite數據庫實例:

import sqlite3
import os

dbPath = 'data.sqlite'
# 只有data.sqlite文件不存在時才創建該文件。
if not os.path.exists(dbPath):
   # 創建SQLite數據庫
conn = sqlite3.connect(dbPath)
  #獲取sqlite3.Cursor對象
c = conn.cursor()
  #創建persons數據庫表
c.execute('''CREATE TABLE persons
(id INT PRIMARY KEY NOT NULL,
name TEXT NOT NULL,
age INT NOT NULL,
address CHAR(50),
salary REAL);''')
  #修改數據庫后必須調用commit方法提交才能生效
conn.commit()
  #關閉數據庫
conn.close()
print('數據庫創建成功.')

conn=sqlite3.connect(dbPath)
c = conn.cursor()
#刪除persons表中的所有數據
c.execute('delete from persons')
#往persons表插入以下4條記錄
c.execute("insert into persons(id,name,age,address,salary)\
values(1,'Bill', 32,'California',20000.12)")
c.execute("insert into persons(id,name,age,address,salary)\
values(2,'Mary', 26,'Texas',1234)")
c.execute("insert into persons(id,name,age,address,salary)\
values(3,'John', 36,'Norway',5432)")
c.execute("insert into persons(id,name,age,address,salary)\
values(4,'Joe', 16,'Rich-Mond',6543)")
#必須提交,修改才能生效
conn.commit()
print('數據插入成功')
#查詢語句,生成一個對象
persons = c.execute('select id,name,age,address,salary from persons order by age')
print(type(persons))
result = []
#將sqlite3.Cursor對象中的數據轉換成列表
for person in persons:
values={}
#生成鍵值對
values['id'] = person[0]
values['name'] = person[1]
values['age'] = person[2]
values['address'] = person[3]
values['salary'] = person[4]
print(values)
result.append(values)
conn.close()
print(result)

# 還可以繼續生成json字符串
import json
# 將查詢結果轉換為字符串形式,如果要將數據通過網絡傳輸,就需要首先轉換為字符串形式才能傳輸。
resultstr = json.dumps(result)
print(resultstr)


參考文獻:
1、《python從菜鳥到高手》,作者:李寧


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM