當前位置:
首頁 > 知識 > 如何使用自帶的SQLite資料庫

如何使用自帶的SQLite資料庫

當前流行的資料庫有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])

該函數會鏈接到 SQLite3資料庫並返回一個連接對象,如果資料庫不存在,那麼將會自動創建一個資料庫。如下所示:

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() 方法,所有的更改將丟失,切記!

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 千鋒JAVA開發學院 的精彩文章:

工作中一些常用的linux命令

TAG:千鋒JAVA開發學院 |