python之sqlite3使用詳解

2021-08-19 02:36:45 字數 3057 閱讀 7012

** :

如果該資料庫操作不需要返回結果,就直接用conn.execute查詢,根據資料庫事務隔離級別的不同,可能修改資料庫需要conn.commit

如果需要返回查詢結果則用conn.cursor建立游標物件cur, 通過cur.execute查詢資料庫,用cur.fetchall/cur.fetchone/cur.fetchmany返回查詢結果。根據資料庫事 務隔離級別的不同,可能修改資料庫需要conn.commit

關閉cur, conn

import sqlite3

cx = sqlite3.connect("e:/test.db")

這樣定義了乙個游標。游標物件有以下的操作:

1,建表:

cu.execute('create table catalog (id integer primary key,pid integer,name varchar(10) unique)') 上面語句建立了乙個叫catalog的表,它有乙個主鍵id,乙個pid,和乙個name,name是不可以重複的。

2,插入資料:

cu.execute("insert into catalog values(0, 0, 'name1')") cu.execute("insert into catalog values(1, 0, 'hello')") 簡單的插入兩行資料,不過需要提醒的是,只有提交了之後,才能生效.我們使用資料庫連線物件cx來進行提交commit和回滾rollback操作.

cx.commit()

3,查詢:

cu.execute("select * from catalog") 要提取查詢到的資料,使用游標的fetch***函式,如:

print cu.fetchall() 返回結果如下:

[(0, 0, u'name1'), (1, 0, u'hello')] 如果我們使用cu.fetchone(),則首先返回列表中的第一項,再次使用,則返回第二項,依次下去.

4,修改:

cu.execute("update catalog set name='name2' where id = 0")

cx.commit() 注意,修改資料以後提交

5,刪除:

cu.execute("delete from catalog where id = 1") cx.commit() 以上簡單的操作反應的python sqlite資料庫操作的基本要點,這裡點到為止.然後,sqlite的強大,並不僅限於此,其對sql高階特性的支援及其小巧靈活的特點,使得sqlite在眾多領域受到開發者的青睞.

import sqlite3

con = sqlite3.connect('d:/mydatabase.db3')

cur = con.cursor()

cur.execute('create

table foo (o_id integer

primary

key, fruit varchar(20), veges varchar(30))')

con.commit()

cur.execute('

insert

con.commit()

print cur.lastrowid

cur.execute('

select * from foo')

print cur.fetchall()

exemplary exemplar 2

import sqlite3

conn = sqlite3.connect("d:/aaa.db")

conn.isolation_level = none

#這個就是事務隔離級別,預設是需要自己commit才能修改資料庫,置為none則自動每次修改都提交,否則為""

# 下面就是建立乙個表

conn.execute("create table if not exists t1(id integer primary key autoincrement, name varchar(128), info varchar(128))")

# 插入資料

conn.execute("insert into t1(name,info) values ('zhaowei', 'only a test')")

# 如果隔離級別不是自動提交就需要手動執行commit

conn.commit()

# 獲取到游標物件

cur = conn.cursor()

# 用游標來查詢就可以獲取到結果

cur.execute("select * from t1")

# 獲取所有結果

res = cur.fetchall()

print

'row:', cur.rowcount

# cur.description是對這個表結構的描述

print

'desc', cur.description

# 用fetchall返回的結果是乙個二維的列表

for line in res:

for f in line:

print f,

print

print

'-'*60

cur.execute("select * from t1")

# 這次查詢後只取乙個結果,就是一維列表

res = cur.fetchone()

print

'row:', cur.rowcount

for f in res:

print f,

print

# 再取一行

res = cur.fetchone()

print

'row:', cur.rowcount

for f in res:

print f,

print

print

'-'*60

cur.close()

conn.close()

python之sqlite3使用詳解

python sqlite資料庫是一款非常小巧的嵌入式開源資料庫軟體,也就是說沒有獨立的維護程序,所有的維護都來自於程式本身。它使用乙個檔案儲存整個資料庫,操作十分方便。它的最大優點是使用方便,功能相比於其它大型資料庫來說,確實有些差距。但是效能表現上,sqlite並不遜色。麻雀雖小,五臟俱全,sq...

使用sqlite3 模組操作sqlite3資料庫

python內建了sqlite3模組,可以操作流行的嵌入式資料庫sqlite3。如果看了我前面的使用 pymysql 操作mysql資料庫這篇文章就更簡單了。因為它們都遵循pep 249,所以操作方法幾乎相同。廢話就不多說了,直接看 吧。都差不多,首先匯入模組,然後建立連線,然後獲取游標物件,之後利...

Python之sqlite3資料庫

關於splite3的知識,可以參考 鏈結 import sqlite3 import os path os.getcwd conn sqlite3.connect path db.db cur conn.cursor 我們以快 的ip位址作為儲存物件 import pandas as pd url ...