成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

你知道Python有內置數據庫嗎?Python內置庫SQlite3使用指南

開發 后端
如果你是軟件開發人員,相信你一定知道或者曾經使用過一個非常輕量級的數據庫——SQLite。它具有作為關系數據庫所需的幾乎所有功能,但是這個數據庫把所有功能都保存在一個文件中。

 [[335808]]

如果你是軟件開發人員,相信你一定知道或者曾經使用過一個非常輕量級的數據庫——SQLite。它具有作為關系數據庫所需的幾乎所有功能,但是這個數據庫把所有功能都保存在一個文件中。在其官方網站上,SQLite的主要應用場景包括:

  • 嵌入式設備和物聯網
  • 數據分析
  • 數據傳輸
  • 文件存檔或數據容器
  • 內部或臨時數據庫
  • 在演示或測試期間替代企業數據庫
  • 教育、培訓和測試
  • 實驗性SQL語言擴展

當然,SQLite還有很多其他功能,在此不一一列舉,感興趣的同學可以去看官方文檔:https://www.sqlite.org/whentouse.html

最重要的是,SQLite實際上是作為Python庫內置的。換言之,你不需要安裝任何服務器端/客戶端軟件,也不需要運行某個服務,只要你在Python中導入庫并開始編程,那么你就有了一個關系數據庫管理系統!

導入和使用

 

這里我們說“內置”的意思就是,你甚至不需要運行 pip install ,就能獲取庫。只需要通過以下方式導入:

 

  1. import sqlite3 as sl 

1.創建與數據庫的連接

我們根本不需要為驅動程序、連接字符串等煩惱??梢灾苯觿摻ㄒ粋€ SQLite 數據庫,并擁有一個簡單的連接對象:

 

  1. con = sl.connect('my-test.db'

運行此行代碼后,我們就已經創建并連接到該數據庫上。 如果要求Python連接的數據庫不存在,它就會自動幫我們創建一個空數據庫。 如果我們已經創建了數據庫,就能用上面完全相同的代碼連接到現有數據庫。

 

你知道Python有內置數據庫嗎?Python內置庫SQlite3使用指南

 

2.創建表格

接下來,我們先創建一個表格。

 

  1. with con: 
  2.     con.execute(""
  3.         CREATE TABLE USER ( 
  4.             id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, 
  5.             name TEXT, 
  6.             age INTEGER 
  7.         ); 
  8.     """) 

在這個 USER 表中,我們添加了三列。正如我們所看到的,SQLite 確實是輕量級的,但是它支持常規 RDBMS 應該具有的所有基本特性,例如數據類型、可為null、主鍵和自動遞增。

運行這段代碼之后,我們就已經創建好了一個表,盡管它什么都沒有輸出。

3.插入記錄

讓我們在剛剛創建的 USER 表中插入數據記錄,這也可以證明我們確實創建了它。

如果我們需要一次性插入多個記錄,Python中的SQLite也能很容易地實現這一點。

 

  1. sql = 'INSERT INTO USER (id, name, age) values(?, ?, ?)' 
  2. data = [ 
  3.     (1, 'Alice', 21), 
  4.     (2, 'Bob', 22), 
  5.     (3, 'Chris', 23) 

我們需要用問號作為占位符來定義SQL語句 。接下來就是創建一些要插入的示例數據。使用連接對象,就能插入這些示例行。

 

  1. with con: 
  2.     con.executemany(sql, data) 

在運行代碼之后,沒有報錯,那就是成功的。

4.查詢表格

接下來,我們通過實際的方式來驗證我們所做的一切,通過查詢表格來獲取示例行。

 

  1. with con: 
  2.     data = con.execute("SELECT * FROM USER WHERE age <= 22"
  3.     for row in data: 
  4.         print(row) 

 

你知道Python有內置數據庫嗎?Python內置庫SQlite3使用指南

 

 

你可以看到,很簡單就得到了結果。

此外,盡管 SQLite 是輕量級的,但是作為一個廣泛使用的數據庫,大多數SQL客戶端軟件都支持使用它。

我自己用得最多的是 DBeaver,接下來給大家介紹一下。

5.從SQL客戶端(DBeaver)連接到SQLite數據庫

因為我用的是 googlecolab,所以我要將 my-test.db 文件下載到我的本地計算機上。當然,你也可以直接在你的電腦上使用 Python 數據庫連接你的本地數據庫。

在 DBeaver 中,創建一個新連接并選擇 SQLite 作為數據庫類型。

 

你知道Python有內置數據庫嗎?Python內置庫SQlite3使用指南

 

然后,瀏覽DB文件。

 

你知道Python有內置數據庫嗎?Python內置庫SQlite3使用指南

 

現在你可以在數據庫上運行任何SQL查詢,看看它與其他常規關系數據庫有什么不同。

 

你知道Python有內置數據庫嗎?Python內置庫SQlite3使用指南

 

與Pandas無縫連接

 

你以為就只有這些?不,事實上,作為Python的一個內置特性,SQLite 可以與 Pandas 數據幀無縫連接。

讓我們先來定義一個數據幀。

 

  1. df_skill = pd.DataFrame({ 
  2.     'user_id': [1,1,2,2,3,3,3], 
  3.     'skill': ['Network Security''Algorithm Development''Network Security''Java''Python''Data Science''Machine Learning'
  4. }) 

 

你知道Python有內置數據庫嗎?Python內置庫SQlite3使用指南

 

 

然后,我們可以簡單地調用數據幀的to_sql()方法將其保存到數據庫中。

 

  1. df_skill.to_sql('SKILL', con) 

就這樣我們甚至不需要預先創建表,列的數據類型和長度都會被推斷出來。當然,如果你想的話,你也可以先定義。

然后,假設我們要將表 USER 和 SKILL 連接在一起,并將結果讀入Pandas數據框。

 

  1. df = pd.read_sql(''
  2.     SELECT s.user_id, u.name, u.age, s.skill  
  3.     FROM USER u LEFT JOIN SKILL s ON u.id = s.user_id 
  4. ''', con) 

 

你知道Python有內置數據庫嗎?Python內置庫SQlite3使用指南

 

 

是不是很厲害?讓我們把結果寫到一個名為USER_SKILL的新表中。

 

  1. df.to_sql('USER_SKILL', con) 

我們也可以用SQL客戶端來檢索表。

 

你知道Python有內置數據庫嗎?Python內置庫SQlite3使用指南

 

總結

實際上,Python中還隱藏著很多驚喜。而且這些驚喜并不沒有隱藏起來,只是Python有太多現成可以直接使用的特性了,這就導致很多人無法發現這些特性。

在本文中,我介紹了如何使用 Python 內置庫 sqlite3 在 SQLite 數據庫中創建和操作表。它也支持對表格進行更新和刪除操作,建議大家在看完這篇文章之后自己嘗試一下。

最重要的是,我們可以輕松地將表從 SQLite 數據庫讀入 Pandas 數據幀,反之亦然。這使我們能夠更容易地與我們的輕量級關系數據庫進行交互。

你可能會注意到 SQLite 沒有進行身份驗證,這也是它刻意設計的行為,因為需要輕量化。

一起去探索Python中更多令人驚訝的特性吧!

 

責任編輯:華軒 來源: 今日頭條
相關推薦

2023-11-24 11:11:08

Python數據庫

2020-08-29 19:15:09

python數據庫SQLite

2013-04-10 14:21:35

2013-04-09 16:47:19

iOS嵌入式數據庫SQLit

2021-09-12 17:25:12

SQLite數據庫

2011-07-07 16:42:38

iPhone Sqlite3 數據庫

2023-11-01 15:45:29

DBMPython

2021-06-05 21:29:53

數據庫MySQL函數

2012-03-06 09:50:24

Android SQLAndroidSQLite3

2017-01-18 18:28:54

大數據數據庫技術

2020-10-20 14:10:51

Python代碼字符串

2019-08-15 07:00:54

SQLite數據庫內存數據庫

2017-10-26 12:37:24

Pythonsqlite3數據庫

2025-05-07 04:45:00

AIOPS數據庫Oracle

2024-10-28 16:31:03

2025-06-23 08:40:00

MySQL數據庫運維

2024-03-13 10:40:00

性能探測工具SQL語句數據庫

2024-03-07 13:02:57

PythonSQLite數據庫

2024-01-30 15:29:20

Django數據庫Python

2021-09-15 09:20:37

Python函數代碼
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 毛片入口| 高清免费在线 | 一级免费看片 | 日韩高清国产一区在线 | 欧美日韩在线免费 | 无码国模国产在线观看 | 国产精品久久久久久福利一牛影视 | 国产丝袜一区二区三区免费视频 | 男女午夜激情视频 | 一区二区三区国产精品 | 午夜精品久久久久久久久久久久久 | 农村真人裸体丰满少妇毛片 | 99精品国产一区二区三区 | 在线免费观看成年人视频 | 五月婷婷色| 大吊一区二区 | 国产探花在线观看视频 | 在线成人精品视频 | 97伦理最新伦理 | 福利网站在线观看 | 91精品国产日韩91久久久久久 | 久久久久久国产精品免费免费狐狸 | 欧美成视频 | 国产精品永久免费视频 | 99精品九九| 99视频| 久久国产婷婷国产香蕉 | 欧美成人h版在线观看 | 国产一区999 | chinese中国真实乱对白 | 国产高清免费视频 | 欧美一区二区三区久久精品视 | 成人亚洲| 亚洲人成在线播放 | 一区二区在线不卡 | 蜜臀久久| 国产精品婷婷 | 亚洲三区在线观看 | 一区二区三区中文字幕 | 99久久精品国产毛片 | 黄色小视频入口 |