本文實例講述了Python2.7中SQLite3基本操作方法。分享給大家供大家參考,具體如下:
1、基本操作
# -*- coding: utf-8 -*-#!/usr/bin/env pythonimport sqlite3def mykey(x): return x[3]conn=sqlite3.connect("D://demo//my_db.db")sql = "CREATE TABLE IF NOT EXISTS mytb ( a char , b int , c real, d DATE)"# a char , b int , c real 表示該表有三個字段,# a 是字符串類型, b 是整數類型, c 是實數類型。conn.execute( sql )cs = conn.cursor()#cs.execute("DELETE FROM mytb WHERE A='張三' ")cs.execute("DELETE FROM mytb ")#刪除所有記錄'''''cs.execute( "INSERT INTO mytb ( a,b,c,d ) values('Zhang San',25, 120, '2014-03-04')" )cs.execute( "INSERT INTO mytb ( a,b,c,d ) values( 'Wang Wu',24, 110, '2014-05-01')" )cs.execute( "INSERT INTO mytb ( a,b,c,d ) values( 'Li Si',23, 130, '2014-04-06')" )'''#批量注入,batchdata是一個列表,列表里每一個元素都是一個元組batchdata=[('Zhang San',25, 120, '2014-03-04'), ( 'Wang Wu',24, 110, '2014-05-01'), ( 'Li Si',23, 130, '2014-04-06')]cs.executemany('INSERT INTO mytb values (?,?,?,?)',batchdata)conn.commit() #將加入的記錄保存到磁盤,非常重要!cs.execute("SELECT name, sql FROM sqlite_master WHERE type='table'")recs = cs.fetchall( )print ( recs )cs.execute( "SELECT * FROM mytb ")#打開數據表recs = cs.fetchall()#取出所有記錄print ( "there is ", len(recs)," notes." )print recsrecs.sort(key = mykey)print recscs.close()conn.close()2、刪除一條記錄,使用sql字符串變量可以實現帶參數的刪除
sql="DELETE FROM my_table WHERE number='" + my_num + "'"cs.execute(sql)
3、查詢某一條或多條記錄
如果SQLite3查找的數據庫記錄中含有中文,取出到Python時要對數據進行decode處理。當時我上網查的時候說要用GBK解碼,但我自己卻解碼失敗了,換成utf-8解碼才成功顯示。 另外,如果只查詢一條可以用fetchone語句,或者fetchall之后再通過python把它找出來。
sql="SELECT name FROM my_table WHERE number ='" + my_num + "'"cs.execute(sql)the_name=(cs.fetchall())[0][0].decode('utf-8')4、避免重復注入
有時候我們會有重復的記錄,為了避免把相同的記錄多次插入到數據庫,可以使用如下語句:
sql="INSERT OR REPLACE INTO "+my_table+" values (?,?,?,?,?,?,?) "#假設my_table有7項
5、插入中文記錄至SQLite3
Python是unicode編碼,但數據庫對中文是使用GBK編碼,比如stock_name變量含有中文,則需要做unicode(name, "gbk")處理
batch=[(stock_num, unicode(stock_name, "gbk") )]cs.executemany( "INSERT OR REPLACE INTO my_table values (?,?) ",batch)
更多關于Python相關內容感興趣的讀者可查看本站專題:《Python操作SQLite數據庫技巧總結》、《Python常見數據庫操作技巧匯總》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設計有所幫助。
新聞熱點
疑難解答
圖片精選