python用sqlite数据库,python 中使用sqlite数据库
sqlite3是使用文件作為數(shù)據(jù)庫,它屬于輕量級數(shù)據(jù)庫,支持在多平臺下使用。
SQLite數(shù)據(jù)庫是一款非常小巧的嵌入式開源數(shù)據(jù)庫軟件,也就是說沒有獨(dú)立的維護(hù)進(jìn)程,所有的維護(hù)都來自于程序本身。它是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),它的設(shè)計目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統(tǒng),同時能夠跟很多程序語言相結(jié)合,比如 Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源世界著名的數(shù)據(jù)庫管理系統(tǒng)來講,它的處理速度比他們都快。SQLite第一個Alpha版本誕生于2000年5月. 至今已經(jīng)有10個年頭,SQLite也迎來了一個版本 SQLite 3已經(jīng)發(fā)布。
在python語言中使用sqlite的方法如下:
1. 引用sqlite3數(shù)據(jù)庫
import sqlite3
2. 是歐諾有sqlite的connect()方法創(chuàng)建數(shù)據(jù)庫(如果數(shù)據(jù)庫不存在的情況下)或打開數(shù)據(jù)庫,可以在這個方法中數(shù)據(jù)的編碼格式,例:
#連接tat.db數(shù)據(jù)庫
conn = sqlite3.connect('/home/ubuntu/tat.db',encoding=‘cp936’)
cp936是python中自帶的編碼格式,其實也就是GBK編碼。
3. 常用的方法
上述的數(shù)據(jù)庫對象conn常用的操作有:
commit() --------------------事物提交
rollback()-------------------事物回滾
close() ---------------------關(guān)閉一個數(shù)據(jù)連接
cursor() --------------------創(chuàng)建一個游標(biāo)
創(chuàng)建的游標(biāo)對象,可以執(zhí)行sql語句等方法,例:
execute()----------------------執(zhí)行sql語句
executemany()------------------執(zhí)行多條sql語句
close() -----------------------關(guān)閉游標(biāo)
fetchone()---------------------從結(jié)果中取一條記錄
fetchmany()--------------------從結(jié)果中取多條語句
fetchall()---------------------從結(jié)果中取所有的記錄
scroll()-----------------------游標(biāo)滾動
4. 關(guān)于sql語句建表和數(shù)據(jù)庫的增刪改查操作與MYsql數(shù)據(jù)庫相同
#!/usr/bin/python
#-*- coding: utf-8 -*-
import sqlite3
#連接數(shù)據(jù)庫tat
conn = sqlite3.connect('/home/ubuntu/tat.db')
#設(shè)置事務(wù)隔離級別,默認(rèn)用戶修改數(shù)據(jù)需要commit才能修改成功,設(shè)置為None則每次修改都自動提交,否則為"" #conn.isolation_level = None
#獲取到游標(biāo)對象
cu = conn.cursor()
#創(chuàng)建一個表
cu.execute('''create table if not exists user(
id integer primary key autoincrement,
name varchar(10))''')
#插入數(shù)據(jù)
cu.execute('insert into user(name) values("jordy")')
#如果隔離級別不是自動提交就需要手動執(zhí)行commit
conn.commit()
#用游標(biāo)來查詢就可以獲取到結(jié)果
cu.execute("select * from user")
#獲取所有結(jié)果
res = cu.fetchall()
for row in res:
print row[0],row[1].encode('utf-8')
#更新語句
cu.execute('update user set name="邪少" where id=2')
conn.commit()
#刪除語句
cu.execute('delete from user where id=1')
conn.commit()
附 ? sqlite3官方網(wǎng)站:? http://docs.python.org/library/sqlite3.html#sqlite3-controlling-transactions
總結(jié)
以上是生活随笔為你收集整理的python用sqlite数据库,python 中使用sqlite数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 发那科攻丝回退参数_乐享:发那科MF选配
- 下一篇: python爬虫记录时间_Python新