測試環境為 CentOS 8 x86_64 (虛擬機)
參考範例 – https://note.charlestw.com/python-how-to-connect-sqlite/
python 可以將資料儲存在 sqlite 資料庫裡.
[root@localhost ~]# python3 Python 3.6.8 (default, Mar 25 2022, 11:15:52) [GCC 8.5.0 20210514 (Red Hat 8.5.0-10)] on linux Type "help", "copyright", "credits" or "license" for more information.
匯入 sqlite3 套件.
>>> import sqlite3
透過 sqlite3.connect 連線到資料庫檔案,沒有該資料庫檔案時會自動建立在現行路徑.
>>> con = sqlite3.connect('sqlite.db')
回傳 con 為 sqlite3.Connection 物件.
透過剛剛建立的 con 物件來建立 cursoe 物件.
>>> cur = con.cursor()
之後就可以透過這個 sqlite3.Cursor 物件來執行 SQL Query.下面先來看一下基本的 SQL 語法.
- CREATE TABLE
使用 SQL 語法 CREATE TABLE 建立資料表(使用 IF NOT EXISTS 時該資料表不存在時才會建立).>>> cur.execute("CREATE TABLE IF NOT EXISTS Employee (Name CHAR(20),Dept CHAR(20),JobTitle CHAR(20))") <sqlite3.Cursor object at 0x7f12c257bc70>
- INSERT
使用 SQL 語法 INSERT INTO 一次插入多筆資料.>>> cur.execute("INSERT INTO Employee VALUES ('Ben','Testing','Engineer'), ('Afa','Power','Engineer')") <sqlite3.Cursor object at 0x7f12c257bc70>
其他插入資料方法.
單筆資料.
>>> cur.execute("INSERT INTO employee VALUES ('Ben','Testing','Engineer')") <sqlite3.Cursor object at 0x7f12c257bc70>
指定欄位.
>>> cur.execute("INSERT INTO employee (Name , Dept) VALUES ('Afa','Power')") <sqlite3.Cursor object at 0x7f12c257bc70>
多筆資料, 使用 cur 物件的 executemany 方法(Method).
>>> sqldata = [('Ben','Testing','Engineer'), ('Afa','Power','Engineer')] >>> cur.executemany("INSERT INTO Employee VALUES(? , ? , ?)", sqldata) <sqlite3.Cursor object at 0x7f0d881beb20>
- SELECT
使用 SQL 語法 SELECT 讀取資料表資料.>>> data1=cur.execute("SELECT * FROM Employee")
資料可以透過以下幾種方式來觀看.
>>> list(data1) [('Ben', 'Testing', 'Engineer'), ('Afa', 'Power', 'Engineer')]
fetchall method.
>>> cur.fetchall() [('Ben', 'Testing', 'Engineer'), ('Afa', 'Power', 'Engineer')]
或是透過 for in 迴圈.
>>> for row in cur.execute('SELECT * FROM Employee'): ... print(row) ... ('Ben', 'Testing', 'Engineer') ('Afa', 'Power', 'Engineer')
將資料儲存到資料庫檔案.
>>> con.commit()
關閉資料庫連線.
>>> con.close()
其他 SQLite 項目
- 關於 SQL 基礎 INSERT , SELECT , UPDATE , DELETE
語法請參考 – https://benjr.tw/95609 - SQLite 是無法建立 Function 或是 Procedure
可以透過 python 提供 sqlite3 物件提供的 create_function 來建立相對應的 function – https://pynative.com/python-sqlite-create-or-redefine-sqlite-functions/ - SQLite 的 db
可以直接透過 DB Browser for SQLite 工具來查看其資料 – https://sqlitebrowser.org/dl/ - REGEXP SQL Query 無法使用
需定義 REGEXP – https://benjr.tw/104785
沒有解決問題,試試搜尋本站其他內容