python高階學習筆記(三)

2021-09-06 09:57:47 字數 3216 閱讀 6700

本節通過sqlite了解資料庫操作

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

資料庫支援

使用簡單的純文字只能實現有退限的功能,所需要引入資料庫,完成更強大的功能,本節使用的簡單資料庫sqlite 。

sqlite 和

pysqlite

sqlite是非常著名的開源嵌入式資料庫軟體,它可以嵌入到其他程式中使用,並且提供

sql介面用來查詢,非常方便。它的官方站點為

而pysqlite 則是乙個 

sqlite 

為 python 

提供的 

api 

介面,它讓一切對於 

sqlite 

的操作都變得異常簡單

在python2.5

版本這後,

sqlite

的優勢在於它的乙個包裝(

pysqlite

)已經被包括在標準庫內,所以我們可以直接使用。

入門操作

可以將sqlite

作為名為

sqlite3

的模組匯入。之後就可以建立乙個到資料庫檔案的連線

----

如果檔案不存在就會被建立

----

通過提供乙個檔名:

>>> import

sqlite3

>>> conn = sqlite3.connect('

somedatabase.db

') #

建立資料庫

>>>cu = conn.cursor() #

能獲得連線的游標

#建立資料表

>>> cu.execute("""

create table catalog (

id integer primary key,

pid integer,

name varchar(10) unique

)""")

#插入兩條資料

>>> 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

')]

連線

為了使用基礎資料庫系統,首先必須連線到它,這個時候需要使用具有名稱的connect

函式,該函式有多個引數,而具體用哪個引數取決於資料庫。

connect函式的常用引數:

connect函式返回連線物件。這個物件表示目前和資料庫的會話。連線物件支援的方法如下;

連線物件方法:

commit 方法總是可用的,但如果資料庫不支援事務,它就沒有任何作用。如果關閉了連線但還有未提交的事務,它們會隱式地回滾

---但是只有在資料庫支援持回滾的時候才可以。

rollback 方法可能不可用,因為不是所有的資料庫都支援事務(事務是一系列動作)。如果可用,那麼就可以「撤銷」所有未提交的事務。

cursor 方法將我們引入另外乙個主題:游標物件。通過游標掃行

sql 

查詢並檢查結果。游標連線支援更多的方法,而且可能在程式中更好用。

游標:

cu = conn.cursor()

能獲得連線的游標,

這個游標可以用來執行

sql查詢。

conn.commit()

完成插入並且做出某些更改後確保已經進行了提交,這樣才可以將這些修改真正地儲存到檔案中。

游標物件方法:

游標物件特性:

fetchall()返回結果集中的全部資料,結果為乙個tuple的列表。每個tuple元素是按建表的字段順序排列。注意,游標是有狀態的,它可以記錄當前已經取到結果的第幾個記錄了,因此,一般你只可以遍歷結果集一次。在上面的情況下,如果執行fetchone()會返回為空。這一點在測試時需要注意。

conn.close()

可以在每次修改資料庫後都進行提交,而不是僅僅在準備關閉才提交,準備關閉資料時,使用close 方法。

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

參考:pysqlite 簡明教程

:sqlite轉碼問題:

python學習筆記(三) python高階特性

python的高階特性有切片 迭代 列表生成式 生成器 迭代器等,下面來介紹這幾種高階特性 1 切片 切片特別簡單,用中括號表示範圍,包前不包後。就是中括號裡邊的範圍前面的數值被包括在內,後面的數值不被包括在內。l a b c d l 0 3 索引從0開始取到3,不包括3.索引從0開始,0可以省略 ...

Python學習筆記 高階

定義乙個類 注意的是 在類中的每個函式中最少要有乙個self引數 其實這裡的self this class test name 張三丰 age 200 defsay self print hi i am san feng 例項化乙個物件 t1 test 通過物件呼叫自身的方法 t1.say pyth...

Python學習筆記 高階函式

高階函式的概念是我在學習kotlin的時候才接觸到的,後來才發現很多語言都有該特性。簡單的定義為 把函式作為引數傳入另乙個函式中 例如 def add x,y,f return f x f y print add 5,6,abs 其中,abs函式作為引數傳到add函式中,add函式就可以稱為高階函式...