<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python自動化操作sqlite數(shù)據(jù)庫

          共 4451字,需瀏覽 9分鐘

           ·

          2022-08-01 17:30

          你好,我是悅創(chuàng)。

          1. 什么是數(shù)據(jù)庫

          數(shù)據(jù)庫是“按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫”,是一個長期存儲在計算機內(nèi)的、有組織的、有共享的、統(tǒng)一管理的數(shù)據(jù)集合。

          數(shù)據(jù)庫是以一定方式儲存在一起、能與多個用戶共享、具有盡可能小的冗余度、與應用程序彼此獨立的數(shù)據(jù)集合,可視為電子化的文件柜。

          2. 有哪些數(shù)據(jù)庫

          2.1 數(shù)據(jù)庫類型

          大型數(shù)據(jù)庫:甲骨文Oracle。

          分布式數(shù)據(jù)庫:HBase。

          中型數(shù)據(jù)庫:SqlServer、Mysql、MariaDB、PostgreSQL、Redis等。

          小型數(shù)據(jù)庫:Sqlite、 Access 。

          2.2 如何選擇

          大集團:Oracle、HBase。

          發(fā)展中公司:PostgreSQL、Mysql。

          app 的臨時數(shù)據(jù)庫:Sqlite。

          2.3 Sqlite

          • 方便攜帶、易于操作、隨時創(chuàng)建、Python 原生支持的小型數(shù)據(jù)庫文件。
          • 輕型的數(shù)據(jù)庫,遵守 ACID 的關系型數(shù)據(jù)庫管理系統(tǒng),它包含在一個相對小的 C 庫中。
          • D.RichardHipp 建立的公有領域項目。
          • 設計目標是嵌入式的,而且已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設備中,可能只需要幾百 K 的內(nèi)存就夠了。
          • 支持 Windows/Linux/Unix 等等主流的操作系統(tǒng)。
          • 能夠跟很多程序語言相結(jié)合,比如 Tcl、C#、PHP、Java 等,還有 ODBC 接口。
          • 比起 Mysql、PostgreSQL 這兩款開源的世界著名數(shù)據(jù)庫管理系統(tǒng)來講,它的處理速度比他們都快。
          • 第一個 Alpha 版本誕生于 2000年5月。至 2015年已經(jīng)有 15 個年頭,SQLite 也迎來了一個版本 SQLite 3 已經(jīng)發(fā)布。
          • Python 自帶 sqlite3 這個庫,方便且直接的創(chuàng)建和讀取 sqlite3 數(shù)據(jù)庫。

          3. sqlite 創(chuàng)建表格

          3.1 sqlitestudio 介紹

          本節(jié)內(nèi)容的目的,是教大家如何在非代碼的情況下,創(chuàng)建 sqlite3 數(shù)據(jù)庫文件和表格編輯操作。

          既然不寫代碼,就肯定需要借助軟件來操作。本節(jié)課對應的源碼中,準備好了 windows、macos、linux 三個系統(tǒng)的 sqlitestudio 軟件,如下圖:

          windows 使用 zip;macos 使用 dmg;linux 使用 tar.xz;

          sqlitestudio 是一款綠色軟件,安裝你的操作系統(tǒng)所對應的 sqlitestudio 軟件,然后執(zhí)行,就可以得到啟動界面。

          3.2 新建  sqlite 數(shù)據(jù)庫文件

          點擊左上角的數(shù)據(jù)庫,選擇添加數(shù)據(jù)庫,則會彈框,讓你選擇某個數(shù)據(jù)庫文件,或者創(chuàng)建一個新的 sqlite 文件

          點擊黃色的文件夾,是指打開某個存在的 sqlite 文件。

          點擊 綠色的+ ,是新建一個 sqlite 文件,并且你也需要指定存儲的具體位置。

          選擇在三個 sqlitestudio 安裝包旁邊,新建一個名為 first.db 的文件,如下截圖:

          并且,文件也有對應的生成。

          3.3 新增數(shù)據(jù)

          回到 sqlitestudio 軟件界面,打開剛新建的 first.db ,里面什么都沒有,表格是空的,現(xiàn)在來新建一個表格。

          鼠標右鍵點擊 Tables,然后選擇新建表格,在新出的界面中,寫表格名、字段名和字段類型,如下圖:

          方法一:

          方法二:


          Table Name 表格名,輸入具體名稱。最上方框中的那個按鈕,是增列字段的按鈕,點擊按鈕彈出中間的字段信息,輸入字段名、類型、大小等。

          這里寫了id title content author 四個字段信息,然后點擊綠色的勾,保存表格即可。

          保存了文件,重新刷新頁面,就可以查看數(shù)據(jù)欄,如下:

          點擊綠色的+號,然后增加幾條數(shù)據(jù),方便我們下節(jié)課的代碼練習。圖中有三條。

          sqlitestudio 也要保留,方便我們下節(jié)課,查看代碼練習的數(shù)據(jù)變化結(jié)果。

          4. Python 鏈接和操作 sqlite

          4.1 鏈接和查詢代碼

          Python 自身攜帶 sqlite 庫,不需要額外安裝,直接使用即可。導入代碼:

          import sqlite3

          導入代碼之后,將 first.db 文件,放到代碼文件旁邊。這里用的是 py,所以是把 py 和 first.db 文件放一起,不放一起就只能使用絕對路徑。如下圖:

          然后使用 sqlite3 庫,鏈接 first.db 文件,代碼 firstdb = sqlite3.connect('first.db')

          正常運行后,寫查詢語句,從數(shù)據(jù)庫中讀取全部數(shù)據(jù),如下代碼:

          # 查詢語句
          query_sql = "select * from info"
          for result in firstdb.execute(query_sql):
              print(result)

          完整代碼:

          # -*- coding: utf-8 -*-
          # @Time    : 2022/7/17 14:36
          # @Author  : AI悅創(chuàng)
          # @FileName: main.py
          # @Software: PyCharm
          # @Blog    :http://www.aiyc.top
          # @公眾號   :AI悅創(chuàng)
          import sqlite3

          firstdb = sqlite3.connect("first.db")

          # 查詢語句
          query_sql = "select * from info"
          for result in firstdb.execute(query_sql):
              print(result)
          # firstdb.execute(): Executes an SQL statement./執(zhí)行 SQL 語句。
          print(list(firstdb.execute(query_sql)))

          輸出結(jié)構(gòu)效果圖:

          這是最簡單的查詢語句。數(shù)據(jù)庫都是支持查詢、刪除、增加、更新操作的。

          4.2 刪除數(shù)據(jù)操作

          刪除操作,將數(shù)據(jù)從數(shù)據(jù)庫中移除,關鍵詞 delete,先刪除一條數(shù)據(jù),如下代碼:

          # 刪除特定數(shù)據(jù)
          delete_sql = "delete from info where id = 1"

          firstdb.execute(delete_sql)
          firstdb.commit()

          # 查詢并輸出
          query_sql = "select * from info"
          for result in firstdb.execute(query_sql):
              print(result)

          運行結(jié)果如下圖:

          4.3 插入更多數(shù)據(jù)

          增加的操作,關鍵詞 add,使用 for 循環(huán),先批量的增加一些數(shù)據(jù):

          # 插入數(shù)據(jù)
          insert_sql = "insert into info(title, content, author) values ('第{}個標題', '隨機的第{}個內(nèi)容', '匿名')"
          for i in range(1020):
              sql = insert_sql.format(i, i * 2)
              firstdb.execute(sql)
              firstdb.commit()

          # 查詢并輸出
          query_sql = "select * from info"
          for result in firstdb.execute(query_sql):
              print(result)

          for 循環(huán),從 10 循環(huán)到 20,不含 20,然后全部執(zhí)行 sql 語句和提交到數(shù)據(jù)庫。最后查詢?nèi)繑?shù)據(jù),看下有沒有增多,如下結(jié)果圖:

          4.4 更新數(shù)據(jù)操作

          數(shù)據(jù)有增加,最后更新數(shù)據(jù),關鍵詞 update,做個條件更新,id 大于等于 4 的數(shù)據(jù),設置 author 為“不匿名”,如下代碼:

          # 更新數(shù)據(jù)
          update_sql = "update info set author = '不匿名' where id >= 4"
          firstdb.execute(update_sql)

          # 查詢并輸出
          query_sql = "select * from info"
          for result in firstdb.execute(query_sql):
              print(result)

          最后的結(jié)果圖如下:

          以上就是 Python 操作 sqlite 的全部代碼了。

          【多選題】小練習

          數(shù)據(jù)庫支持哪些操作?

          • [x] 查詢數(shù)據(jù)
          • [x] 新增數(shù)據(jù)
          • [x] 更新數(shù)據(jù)
          • [x] 刪除數(shù)據(jù)

          怎么批量更新數(shù)據(jù)呢?代碼該如何編寫呢?歡迎加我微信:Jiabcdefh,備注:進入自動化交流群。

          該數(shù)據(jù)庫是單數(shù)據(jù)庫操作,不要打開多個,這樣有可能會鎖死。

          AI悅創(chuàng)·推出輔導班啦,包括「Python 語言輔導班、C++輔導班、算法/數(shù)據(jù)結(jié)構(gòu)輔導班、少兒編程、pygame 游戲開發(fā)」,全部都是一對一教學:一對一輔導 + 一對一答疑 + 布置作業(yè) + 項目實踐等。QQ、微信在線,隨時響應!V:Jiabcdefh

          作者:AI悅創(chuàng)
          排版:AI悅創(chuàng)





          黃家寶丨AI悅創(chuàng)

          隱形字

          攝影公眾號「悅創(chuàng)攝影研習社」


          在這里分享自己的一些經(jīng)驗、想法和見解。


          長按識別二維碼關注




          好文和朋友一起看~
          瀏覽 54
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  影音先锋操逼 | 免费99视频 | 波多AV在线 | 日韩精品免费在线观看 | 人人爱人人爽 |