當前流行的資料庫有oracle、mysql、microsoft sql server、postgresql、mongodb、redis、microsoft access……sqlite(這個是按某報告調研的受歡迎程度來排名的)。當然每個資料庫都有它最適合的應用場合。這裡我們推薦一款輕型的關係型資料庫sqlite,推薦理由如下:
sqlite本身是c寫,所以體積小巧,占用資源低
sqlite本身是c寫,所以處理速度非常快
sqlite已經發布sqlite 3 版本
sqlite3支援windows/linux/unix等主流作業系統
python 2.5.x 以上版本缺省內置sqlite3,無需單獨安裝和配置,直接使用!!!
當我們僅僅是用於本地的資料管理,無需多使用者訪問,資料容量小於2t,無需海量資料處理,關鍵是要求移植方便、使用簡單、處理迅速的話, sqlite3確實是個很不錯的選擇。
在python 2.5.x以上定義了一套操作sqlite3的api介面,使用時需要匯入sqlite3模組,如下所示。
import sqlite3
接下來,我們僅需呼叫介面就可以,我們用例程來介紹下:
一、連線資料庫
要操作sqlite3首先需要連線到資料庫,介面函式:
sqlite3.connect(database [,timeout ,other optional arguments])
conn = sqlite3.connect('stock-data.db')
sqlite3是檔案型資料庫,可以看到乙個sqlite3就是乙個檔案,備份這個檔案就備份了整個資料庫。
在連線到資料庫後,需要建立cursor,通過cursor去執行sql語句,介面函式:
connection.cursor([cursorclass])
使用如下所示:
c = conn.cursor()
二、建立表
資料庫中是以表的形式存放資料的,我們在先前建立的資料庫中建立乙個stock600123表。可以使用如下介面去執行乙個 sql 語句:
cursor.execute(sql [, optional parameters])
sql 語句中create table 語句的基本語法如下:
資料庫系統識別到createtable關鍵字後會建立乙個新錶。createtable語句後跟著表的唯一的名稱或標識。如下所示:
建立表後記得提交當前的操作,介面函式:
connection.commit()
整體操作如下所示:
c.execute(pragma table_info(stock600123))
print(c.fetchall())
[(0, 'id', 'int', 1, none, 1), (1, 'time', 'text', 1, none, 0), (2, 'code', 'int', 1, none, 0), (3, 'high', 'real', 0, none, 0), (4, 'low', 'real', 0, none, 0), (5, 'close', 'real', 0, none, 0), (6, 'open', 'real', 0, none, 0), (7, 'description', 'char(50)', 0, none, 0)]
三、插入表
我們上面建立的 stock600123表中插入4行資料,如下所示:
我們可以檢視表的內容來驗證是否已成功插入四行,如下所示:
c.execute(select * from stock600123)
print(c.fetchall())
conn.commit()
[(1, '2019-1-1', 600123, 10.12, 10.12, 10.12, 10.12, 'event1'), (2, '2019-1-2', 600123, 10.13, 10.13, 10.13, 10.13, 'event2'), (3, '2019-1-3', 600123, 10.14, 10.14, 10.14, 10.14, 'event3'), (4, '2019-1-4', 600123, 10.15, 10.15, 10.15, 10.15, 'event4')]
四、更新表
當我們需要更新表中的第一行的「code」列內容時,可以使用update 語句,如下所示,600123更新為了600888。
# 更新表
c.execute(update stock600123 set code = 600888 where id=1)
conn.commit()
c.execute(select * from stock600123)
print(c.fetchall())
conn.commit()
[(1, '2019-1-1', 600888, 10.12, 10.12, 10.12, 10.12, 'event1'), (2, '2019-1-2', 600123, 10.13, 10.13, 10.13, 10.13, 'event2'), (3, '2019-1-3', 600123, 10.14, 10.14, 10.14, 10.14, 'event3'), (4, '2019-1-4', 600123, 10.15, 10.15, 10.15, 10.15, 'event4')]
五、選擇表
從當前建立的 stock600123 表中獲取id, time, code, description這四部分資訊,如下所示:
六、刪除表
從當前建立的 stock600123 表中刪除id為2的資訊,只剩下id為1、3、4行的內容,如下所示:
當要刪除stock600123整個表時,如下所示:
# 刪除乙個表
c.execute(drop table stock600123)
conn.commit()
當關閉資料庫連線時,可使用如下介面:
connection.close()
該介面不會自動呼叫 commit(),如果關閉資料庫連線前未呼叫 commit() 方法,所有的更改將丟失,切記!
python自帶sqlite 使用SQLite
python就內建了sqlite3,所以,在python中使用sqlite,不需要安裝任何東西,直接使用。在使用sqlite前,我們先要搞清楚幾個概念 表是資料庫中存放關係資料的集合,乙個資料庫裡面通常都包含多個表,比如學生的表,班級的表,學校的表,等等。表和表之間通過外來鍵關聯。要操作關聯式資料庫...
django自帶資料庫sqlite
python manage.py makemigrations 記錄關於models.py的所有改動,但是還沒有作用的資料庫檔案中 python manage.py migrate 把models.py的所有改動作用到資料庫檔案,更新資料庫,生成表單 建立modles,這直接關係到你的資料 和唯一性...
Python 如何使用SQLite資料庫
在資料庫支援方面,python提供了很簡便的介面,可以很容易地連線到mysql sqlite等各種各樣的資料庫。sqlite是一種輕量化的檔案型資料庫,預設是直接使用檔案的形式在本地計算機就可以直接擁有運算元據庫的優勢。也就說,雖然sqlite把資料庫以檔案的形式表現,但具有資料庫的操作功能,通過s...