国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python2.7編程中SQLite3基本操作方法示例

2019-11-25 15:57:11
字體:
來源:轉載
供稿:網友

本文實例講述了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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大连市| 福州市| 同心县| 瑞金市| 天祝| 东阳市| 永嘉县| 济南市| 依兰县| 霍林郭勒市| 嘉兴市| 大姚县| 成都市| 建德市| 台北市| 襄城县| 色达县| 深泽县| 芦溪县| 梧州市| 宜良县| 平度市| 大同县| 万荣县| 长子县| 仪陇县| 东平县| 弥勒县| 会东县| 南汇区| 宁安市| 远安县| 德保县| 海安县| 湄潭县| 金秀| 巴彦县| 朝阳区| 邢台市| 邢台县| 靖西县|