日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

python進(jìn)階學(xué)習(xí)筆記(三)

系統(tǒng) 2119 0

python進(jìn)階學(xué)習(xí)筆記(三)

2013-05-26 01:47 ?蟲(chóng)師 閱讀( ... ) 評(píng)論( ... ) 編輯 收藏

?

? 本節(jié)通過(guò)SQLite了解數(shù)據(jù)庫(kù)操作

-------------------------

?

數(shù)據(jù)庫(kù)支持

?

?

?

使用簡(jiǎn)單的純文本只能實(shí)現(xiàn)有退限的功能,所需要引入數(shù)據(jù)庫(kù),完成更強(qiáng)大的功能,本節(jié)使用的簡(jiǎn)單數(shù)據(jù)庫(kù) SQLite?

?

SQLite? PySQLite

?

sqlite 是非常著名的開(kāi)源嵌入式數(shù)據(jù)庫(kù)軟件,它可以嵌入到其他程序中使用,并且提供 SQL 接口用來(lái)查詢,非常方便。它的官方站點(diǎn)為 http://www.sqlite.org

? pysqlite? 則是一個(gè)? sqlite? 為? python? 提供的? api? 接口,它讓一切對(duì)于? sqlite? 的操作都變得異常簡(jiǎn)單

?

python2.5 版本這后, SQLite 的優(yōu)勢(shì)在于它的一個(gè)包裝( PySQLite )已經(jīng)被包括在標(biāo)準(zhǔn)庫(kù)內(nèi),所以我們可以直接使用。

?

?

?

入門(mén)操作

?

可以將 SQLite 作為名為 sqlite3 的模塊導(dǎo)入。之后就可以創(chuàng)建一個(gè)到數(shù)據(jù)庫(kù)文件的連接 ---- 如果文件不存在就會(huì)被創(chuàng)建 ---- 通過(guò)提供一個(gè)文件名:

                >>> 
                
                  import
                
                
                   sqlite3

                
                >>> conn = sqlite3.connect(
                
                  '
                
                
                  somedatabase.db
                
                
                  '
                
                ) 
                
                  #
                
                
                   創(chuàng)建數(shù)據(jù)庫(kù)
                
                
>>>cu = conn.cursor()   
                
                  #
                
                
                  能獲得連接的游標(biāo)
                
                
                  #
                
                
                  創(chuàng)建數(shù)據(jù)表
                
                
>>> cu.execute(
                
                  """
                
                
                  create table catalog (
    id integer primary key,
    pid integer,
    name varchar(10) UNIQUE
   )
                
                
                  """
                
                
                  )

                  
# 插入兩條數(shù)據(jù) >>> cu.execute( " insert into catalog values(0,0,'name1') " ) >>> cu.execute( " insert into catalog values(1,0,'name2') " ) >>> conn.commit()
# 選擇(select) >>> cu.execute( " select * from catalog " ) >>> cu.fetchall() [(0, 0, ' name1 ' ), (1, 0, ' name2 ' )] >>> cu.execute( " select * from catalog where id = 1 " ) >>> cu.fetchall() [( 1, 0, ' name2 ' )] # 修改(update) >>> cu.execute(“update catalog set name=’name2′ where id = 0″)
>>> cx.commit()
>>> cu.execute(“select * from catalog”)
>>> cu.fetchone() (0, 0, ‘name2′)
# 刪除(delete) >>> cu.execute(“delete from catalog where id = 1″)
>>> cx.commit()
>>> cu.execute(“select * from catalog”)
>>> cu.fetchall()
[(0, 0, ' name2 ' )]

?

?

連接

為了使用基礎(chǔ)數(shù)據(jù)庫(kù)系統(tǒng),首先必須連接到它,這個(gè)時(shí)候需要使用具有名稱的 connect 函數(shù),該函數(shù)有多個(gè)參數(shù),而具體用哪個(gè)參數(shù)取決于數(shù)據(jù)庫(kù)。

connect 函數(shù)的常用參數(shù):

python進(jìn)階學(xué)習(xí)筆記(三)_第1張圖片

connect 函數(shù)返回連接對(duì)象。這個(gè)對(duì)象表示目前和數(shù)據(jù)庫(kù)的會(huì)話。連接對(duì)象支持的方法如下;

連接對(duì)象方法:

python進(jìn)階學(xué)習(xí)筆記(三)_第2張圖片

commit? 方法總是可用的,但如果數(shù)據(jù)庫(kù)不支持事務(wù),它就沒(méi)有任何作用。如果關(guān)閉了連接但還有未提交的事務(wù),它們會(huì)隱式地回滾 --- 但是只有在數(shù)據(jù)庫(kù)支持持回滾的時(shí)候才可以。

?

rollback? 方法可能不可用,因?yàn)椴皇撬械臄?shù)據(jù)庫(kù)都支持事務(wù)(事務(wù)是一系列動(dòng)作)。如果可用,那么就可以“撤銷(xiāo)”所有未提交的事務(wù)。

?

cursor? 方法將我們引入另外一個(gè)主題:游標(biāo)對(duì)象。通過(guò)游標(biāo)掃行 SQL? 查詢并檢查結(jié)果。游標(biāo)連接支持更多的方法,而且可能在程序中更好用。

?

?

游標(biāo):

cu?=?conn.cursor()

能獲得連接的游標(biāo), 這個(gè)游標(biāo)可以用來(lái)執(zhí)行 SQL 查詢。

?

?conn.commit() ??

完成插入并且做出某些更改后確保已經(jīng)進(jìn)行了提交,這樣才可以將這些修改真正地保存到文件中。

?

?

游標(biāo)對(duì)象方法:

python進(jìn)階學(xué)習(xí)筆記(三)_第3張圖片

游標(biāo)對(duì)象特性:

python進(jìn)階學(xué)習(xí)筆記(三)_第4張圖片

?

cu.fetchone()

?

fetchall()返回結(jié)果集中的全部數(shù)據(jù),結(jié)果為一個(gè)tuple的列表。每個(gè)tuple元素是按建表的字段順序排列。注意,游標(biāo)是有狀態(tài)的,它可以記錄當(dāng)前已經(jīng)取到結(jié)果的第幾個(gè)記錄了,因此,一般你只可以遍歷結(jié)果集一次。在上面的情況下,如果執(zhí)行fetchone()會(huì)返回為空。這一點(diǎn)在測(cè)試時(shí)需要注意。

?

conn.close()

可以在每次修改數(shù)據(jù)庫(kù)后都進(jìn)行提交,而不是僅僅在準(zhǔn)備關(guān)閉才提交,準(zhǔn)備關(guān)閉數(shù)據(jù)時(shí),使用 close?方法。

?

?

---------------

參考:

pysqlite? 簡(jiǎn)明教程 http://blog.donews.com/limodou/archive/2004/07/05/37895.aspx

?

SQLite 轉(zhuǎn)碼問(wèn)題: http://blog.sina.com.cn/s/blog_68013e850100w66d.html ?

?


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 阳曲县| 正定县| 东宁县| 新兴县| 瓦房店市| 铁岭市| 博兴县| 兰考县| 大渡口区| 犍为县| 绥芬河市| 唐海县| 仙桃市| 奇台县| 南陵县| 东方市| 博湖县| 忻州市| 青海省| 浮山县| 洛南县| 广宗县| 武川县| 廊坊市| 株洲市| 蚌埠市| 安多县| 康定县| 昌宁县| 洱源县| 定日县| 常德市| 蛟河市| 元朗区| 神池县| 衡山县| 甘肃省| 霍林郭勒市| 田阳县| 和龙市| 策勒县|