欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python操作Sqlite正確實(shí)現(xiàn)方法解析

 更新時(shí)間:2020年02月05日 18:18:00   投稿:mdxy-dxy  
我們今天將會(huì)在這篇文章中分步驟為大家詳細(xì)介紹一下有關(guān)Python操作Sqlite的相關(guān)應(yīng)用方式,希望大家可以從中獲得一些幫助

Python編程語(yǔ)言的優(yōu)點(diǎn)非常多,它的編程特色主要體現(xiàn)在可擴(kuò)充性方面。那么,在接下來(lái)的這篇文章中,我們將會(huì)為大家詳細(xì)介紹一下有關(guān)Python操作Sqlite 的相關(guān)應(yīng)用技巧,希望可以給大家?guī)?lái)些幫助。

一、安裝

去PySqlite主頁(yè)上下載安裝包,有windows的版本,現(xiàn)支持 Python 2.3和2.5版本。

二、創(chuàng)建數(shù)據(jù)庫(kù)/打開(kāi)數(shù)據(jù)庫(kù)

Python操作Sqlite使用文件作為數(shù)據(jù)庫(kù),你可以指定數(shù)據(jù)庫(kù)文件的位置。

>>> import sqlite3

>>> cx = sqlite.connect("d:/test.db", encoding='cp936')

使 用sqlite的connect可以創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)文件,上面我指明了路徑。當(dāng)數(shù)據(jù)庫(kù)文件不存在的時(shí)候,它會(huì)自動(dòng)創(chuàng)建。如果已經(jīng)存在這個(gè)文件,則打開(kāi)這個(gè) 文件。encoding指明保存數(shù)據(jù)所使用的編碼,這里cp936是 Python 中自帶的編碼,其實(shí)就是GBK編碼。cx為數(shù)據(jù)庫(kù)連接對(duì)象。

三、操作數(shù)據(jù)庫(kù)的基本對(duì)象

3.1 數(shù)據(jù)庫(kù)連接對(duì)象

象前面的cx就是一個(gè)數(shù)據(jù)庫(kù)的連接對(duì)象,它可以有以下操作:

commit()--事務(wù)提交
rollback()--事務(wù)回滾
close()--關(guān)閉一個(gè)數(shù)據(jù)庫(kù)連接
cursor()--創(chuàng)建一個(gè)游標(biāo)

3.2 游標(biāo)對(duì)象

所有sql語(yǔ)句的執(zhí)行都要在游標(biāo)對(duì)象下進(jìn)行。

cu = cx.cursor()這樣定義了一個(gè)游標(biāo)。游標(biāo)對(duì)象有以下的操作:
execute()--執(zhí)行sql語(yǔ)句
executemany--執(zhí)行多條sql語(yǔ)句
close()--關(guān)閉游標(biāo)
fetchone()--從結(jié)果中取一條記錄
fetchmany()--從結(jié)果中取多條記錄
fetchall()--從結(jié)果中取出多條記錄
scroll()--游標(biāo)滾動(dòng)

關(guān)于對(duì)象的方法可以去 Python 主頁(yè)上查看DB API的詳細(xì)文檔。不過(guò)PySqlite?到底支持DB API到什么程序,我就不知道了。我列出的操作都是支持的,不過(guò)我不是都使用過(guò)。

四、使用舉例

4.1 建庫(kù)

前面已經(jīng)有了,不再重復(fù)。(這些例子,如果你有興趣,可以直接在Python的交互環(huán)境下試試)

4.2 建表

>>> cu=cx.cursor() >>> cu.execute("""create table catalog
( id integer primary key, pid integer, name varchar(10) UNIQUE )""")

上面語(yǔ)句創(chuàng)建了一個(gè)叫catalog的表,它有一個(gè)主鍵id,一個(gè)pid,和一個(gè)name,name是不可以重復(fù)的。

關(guān)于Python操作Sqlite支持的數(shù)據(jù)類型,在它主頁(yè)上面的文檔中有描述,可以參考:Version 2 DataTypes?

4.3 insert(插入)

>>> cu.execute("insert into catalog values(0, 0, 'name1')")
>>> cu.execute("insert into catalog values(1, 0, 'hello')") >>> cx.commit()

如果你愿意,你可以一直使用cu游標(biāo)對(duì)象。注意,對(duì)數(shù)據(jù)的修改必須要使用事務(wù)語(yǔ)句:commit()或rollback(),且對(duì)象是數(shù)據(jù)庫(kù)連接對(duì)象,這里為cx。

4.4 select(選擇)

>>> cu.execute("select * from catalog") >>> cu.fetchall()
[(0, 0, 'name2'), (1, 0, 'hello')]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í)需要注意。

>>> cu.execute("select * from catalog where id = 1")
>>> cu.fetchone() (1, 0, 'hello')

對(duì)數(shù)據(jù)庫(kù)沒(méi)有修改的語(yǔ)句,執(zhí)行后不需要再執(zhí)行事務(wù)語(yǔ)句。

4.5 update(修改)

>>> cu.execute("update catalog set name='name2' where id = 0")
>>> cx.commit() >>> cu.execute("select * from catalog")
>>> cu.fetchone() (0, 0, 'name2')4.6 delete(刪除)
>>> cu.execute("delete from catalog where id = 1") >>> cx.commit()
>>> cu.execute("select * from catalog") >>> cu.fetchall() [(0, 0, 'name2')]

以上是關(guān)于如何使用Python操作Sqlite的簡(jiǎn)單示例。

相關(guān)文章

  • Python?正則表達(dá)式基礎(chǔ)知識(shí)點(diǎn)及實(shí)例

    Python?正則表達(dá)式基礎(chǔ)知識(shí)點(diǎn)及實(shí)例

    在本篇文章里小編給大家整理了關(guān)于Python正則表達(dá)式的一些基礎(chǔ)知識(shí)點(diǎn)以及相關(guān)用法實(shí)例內(nèi)容,需要的朋友們可以參考下。
    2021-12-12
  • python3在各種服務(wù)器環(huán)境中安裝配置過(guò)程

    python3在各種服務(wù)器環(huán)境中安裝配置過(guò)程

    這篇文章主要介紹了python3在各種服務(wù)器環(huán)境中安裝配置過(guò)程,源碼包編譯安裝步驟詳解,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01
  • Python attrs提高面向?qū)ο缶幊绦试敿?xì)

    Python attrs提高面向?qū)ο缶幊绦试敿?xì)

    Python是面向?qū)ο蟮恼Z(yǔ)言,一般情況下使用面向?qū)ο缶幊虝?huì)使得開(kāi)發(fā)效率更高,軟件質(zhì)量更好,并且代碼更易于擴(kuò)展,可讀性和可維護(hù)性也更高,但是Python的類寫起來(lái)是真的累,這是可以在創(chuàng)建類的時(shí)候自動(dòng)添加上attrs模塊,下面文章我們就來(lái)介紹這個(gè)東西,需要的朋友可參考一下
    2021-09-09
  • 解決python matplotlib imshow無(wú)法顯示的問(wèn)題

    解決python matplotlib imshow無(wú)法顯示的問(wèn)題

    今天小編就為大家分享一篇解決python matplotlib imshow無(wú)法顯示的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • Django組件之cookie與session的使用方法

    Django組件之cookie與session的使用方法

    這篇文章主要介紹了Django組件之cookie與session的使用方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • Python+OpenCV實(shí)現(xiàn)閾值分割的方法詳解

    Python+OpenCV實(shí)現(xiàn)閾值分割的方法詳解

    閾值分割法是一種基于區(qū)域的圖像分割技術(shù),原理是把圖像像素點(diǎn)分為若干類。本文將利用Python+OpenCV實(shí)現(xiàn)閾值分割,感興趣的可以了解一下
    2022-05-05
  • Python面向?qū)ο筮M(jìn)階學(xué)習(xí)

    Python面向?qū)ο筮M(jìn)階學(xué)習(xí)

    在本文里我們整理了關(guān)于Python面向?qū)ο蟮倪M(jìn)階學(xué)習(xí)知識(shí)點(diǎn)以及學(xué)習(xí)路線等內(nèi)容,有興趣的朋友們學(xué)習(xí)下。
    2019-05-05
  • python回調(diào)函數(shù)的使用方法

    python回調(diào)函數(shù)的使用方法

    在計(jì)算機(jī)程序設(shè)計(jì)中,回調(diào)函數(shù),或簡(jiǎn)稱回調(diào)(Callback),是指通過(guò)函數(shù)參數(shù)傳遞到其它代碼的,某一塊可執(zhí)行代碼的引用。這一設(shè)計(jì)允許了底層代碼調(diào)用在高層定義的子程序
    2014-01-01
  • Python使用Pyqt5實(shí)現(xiàn)簡(jiǎn)易瀏覽器(最新版本測(cè)試過(guò))

    Python使用Pyqt5實(shí)現(xiàn)簡(jiǎn)易瀏覽器(最新版本測(cè)試過(guò))

    這篇文章主要介紹了Python使用Pyqt5實(shí)現(xiàn)簡(jiǎn)易瀏覽器(最新版本測(cè)試過(guò)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 基于Python的數(shù)據(jù)分析與可視化

    基于Python的數(shù)據(jù)分析與可視化

    在當(dāng)今數(shù)字化時(shí)代,數(shù)據(jù)分析和可視化已經(jīng)成為了企業(yè)和個(gè)人必備的技能,Python 作為一種高級(jí)編程語(yǔ)言,具有易學(xué)易用、高效快捷的特點(diǎn),在數(shù)據(jù)科學(xué)領(lǐng)域中得到了廣泛應(yīng)用,本篇文章將介紹基于 Python 的數(shù)據(jù)分析與可視化
    2023-07-07

最新評(píng)論