亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

淺談Python自帶數據庫SQLite3模塊的使用(全面詳細)

系統(tǒng) 2149 0

目錄

  • 寫在前面
  • 一:使用數據庫的宏觀過程
  • 二:數據庫使用
    • 1、導入數據庫模塊
    • 2、打開數據庫
      • 2.1、在硬盤上建立數據庫
      • 2.2、在內存上建立數據庫
    • 3、創(chuàng)建游標
    • 4、執(zhí)行SQL語句
      • 4.1、創(chuàng)建表
      • 4.2、新增數據
      • 4.2、更新數據
      • 4.3、刪除數據
      • 4.4、查詢數據
      • 4.5、刪除表
    • 5、查詢并顯示數據
      • 5.1、全部顯示
      • 5.2、顯示一條
      • 5.2、顯示多條
    • 6、事務提交或回滾
      • 6.1、提交
      • 6.2、回滾
    • 7、關閉數據庫連接和游標

寫在前面

??SQLite3數據庫是一款非常小巧輕量級的嵌入式開源數據庫軟件,也就是說沒有獨立的維護進程,所有的維護都來自于程序本身。由于其方便快捷,從python2.5開始SQLite3就成了Python語言的標準模塊了;這也是Python中唯一一個數據庫接口類模塊,適合用戶開發(fā) 小型數據庫系統(tǒng)。 ,此外建議小伙伴們在閱讀之前先學習一些SQL數據庫語言的基本語法,否則看這SQL語句會有一點蒙。接下來就體驗一下它的神秘力量吧!

一:使用數據庫的宏觀過程

??我猜很多小伙伴們開始學習數據庫時應該和我一樣把重點放在學習使用數據庫的每一條SQL語句上,可是當我學習完近所有的語句后發(fā)現(xiàn):我還是對建立使用數據庫的過程一知半解,這樣缺少從整體上對數據庫的認識和了解。所以 我認為正確的方法應該是:先從整體上對數據庫的使用過程有一個清晰宏觀的掌握,之后再深入學習,這樣食用味道會更佳哦!

??話不多說,上菜:
淺談Python自帶數據庫SQLite3模塊的使用(全面詳細)_第1張圖片

二:數據庫使用

1、導入數據庫模塊

??此處沒有什么可說的,由于python2.5以后的安裝包已經自帶SQLite3的軟件包了,所以一行語句直接導入即可。

            
              
                import
              
               sqlite3

            
          

2、打開數據庫

??在python中,使用sqlite3創(chuàng)建數據庫的連接,當我們指定的數據庫文件不存在的時候連接對象會自動創(chuàng)建數據庫文件;如果數據庫文件已經存在,則連接對象不會再創(chuàng)建數據庫文件,而是直接打開該數據庫文件。 連接對象可以是硬盤上面的數據庫文件,也可以是建立在內存(memory)中的,在內存中的數據庫執(zhí)行完任何操作后,都不需要提交事務的(commit)

??connect方法返回con對象,即是數據庫鏈接對象,它提供了以下方法:

方法 描述
.cursor() 創(chuàng)建一個游標對象
.commit() 處理事務提交
.rollback() 處理事務回滾
.close() 關閉一個數據庫連接

2.1、在硬盤上建立數據庫

方法一:

            
              	con
              
                =
              
              sqlite3
              
                .
              
              connect
              
                (
              
              
                "E:\Test.db"
              
              
                )
              
            
          

??注意: E:\Test.db E:\\Test.db E:\TEST.db 均相同。由此可見 數據庫的名稱不區(qū)分大小寫,且以第一次建立時的名字為準。 但需要注意的是: E:\test.db 會報錯,因為編譯器會識別到 \t 為制表符,因此認為路徑不對。

方法二:

            
              	con
              
                =
              
              sqlite3
              
                .
              
              connect
              
                (
              
              
                "Test.db"
              
              
                )
              
            
          

??不加全路徑時,數據庫文件會自動建立在工程項目文件夾下。

2.2、在內存上建立數據庫

            
              	con
              
                =
              
              sqlite3
              
                .
              
              connect
              
                (
              
              
                "memory"
              
              
                )
              
            
          

3、創(chuàng)建游標

??游標對象有以下方法支持數據庫操作:

方法 描述
.execute() 用來執(zhí)行sql語句
.executemany() 用來執(zhí)行多條sql語句
.close() 用來關閉游標
.fetchone() 用來從結果中取一條記錄,并將游標指向下一條記錄
.fetchmany() 用來從結果中取多條記錄。
.fetchall() 用來從結果中取出所以記錄。
.scroll() 用于游標滾動。

??創(chuàng)建游標示例:

            
              	cur
              
                =
              
              con
              
                .
              
              cursor
              
                (
              
              
                )
              
            
          

4、執(zhí)行SQL語句

4.1、創(chuàng)建表

示例中所有的大寫字符為SQL語法標準,小寫字符為用戶自定義的字符,但由于SQL語句不區(qū)分大小寫,所以將SQL標準語句小寫也可以。

方法一:

            
              	cur
              
                .
              
              execute
              
                (
              
              
                "CREATE TABLE IF NOT EXISTS test(id INTEGER PRIMARY KEY,name TEXT,age INTEGER)"
              
              
                )
              
            
          

方法二:

            
              	cur
              
                .
              
              execute
              
                (
              
              
                "CREATE TABLE test(id INTEGER PRIMARY KEY,name TEXT,age INTEGER)"
              
              
                )
              
            
          

??注意: 如果使用方法二(不加 IF NOT EXISTS ),當項目中存在相同的表時會報錯,所以為了省略檢查表是否已建立的過程,建議使用方法一。

4.2、新增數據

方法一

            
              	data 
              
                =
              
              
                "5,'leon',22"
              
              
	cur
              
                .
              
              execute
              
                (
              
              
                'INSERT INTO test VALUES (%s)'
              
              
                %
              
              data
              
                )
              
            
          

方法二

            
              	cur
              
                .
              
              execute
              
                (
              
              
                "INSERT INTO test values(?,?,?)"
              
              
                ,
              
              
                (
              
              
                6
              
              
                ,
              
              
                "zgq"
              
              
                ,
              
              
                20
              
              
                )
              
              
                )
              
            
          

方法三

            
              	cur
              
                .
              
              executemany
              
                (
              
              
                'INSERT INTO test VALUES (?,?,?)'
              
              
                ,
              
              
                [
              
              
                (
              
              
                3
              
              
                ,
              
              
                'name3'
              
              
                ,
              
              
                19
              
              
                )
              
              
                ,
              
              
                (
              
              
                4
              
              
                ,
              
              
                'name4'
              
              
                ,
              
              
                26
              
              
                )
              
              
                ]
              
              
                )
              
            
          

4.2、更新數據

方法一:

            
              	cur
              
                .
              
              execute
              
                (
              
              
                "UPDATE test SET name=? WHERE id=?"
              
              
                ,
              
              
                (
              
              
                "nihao"
              
              
                ,
              
              
                1
              
              
                )
              
              
                )
              
            
          

方法二:

            
              	cur
              
                .
              
              execute
              
                (
              
              
                "UPDATE test SET name='haha' WHERE id=1"
              
              
                )
              
            
          

4.3、刪除數據

方法一:

            
              	n
              
                =
              
              cur
              
                .
              
              execute
              
                (
              
              
                "DELETE FROM test WHERE id=?"
              
              
                ,
              
              
                (
              
              
                1
              
              
                ,
              
              
                )
              
              
                )
              
            
          

方法二:

            
              	n
              
                =
              
              cur
              
                .
              
              execute
              
                (
              
              
                "DELETE FROM test WHERE id=2"
              
              
                )
              
            
          

??返回的n為游標對象

4.4、查詢數據

            
              	cur
              
                .
              
              execute
              
                (
              
              
                "SELECT * FROM test"
              
              
                )
              
            
          

??查詢的結果存儲在游標對象cur中,可以使用對象的方法進行訪問。

4.5、刪除表

            
              	cur
              
                .
              
              execute
              
                (
              
              
                "DROP TABLE Test "
              
              
                )
              
            
          

5、查詢并顯示數據

5.1、全部顯示

            
              	cur
              
                .
              
              execute
              
                (
              
              
                "select * from Test"
              
              
                )
              
              
                for
              
               item 
              
                in
              
               cur
              
                :
              
              
                print
              
              
                (
              
              item
              
                )
              
            
          

            
              
                print
              
              
                (
              
              cur
              
                .
              
              fetchall
              
                (
              
              
                )
              
              
                )
              
            
          

5.2、顯示一條

            
              
                print
              
              
                (
              
              cur
              
                .
              
              fetchone
              
                (
              
              
                )
              
              
                )
              
            
          

5.2、顯示多條

            
              
                print
              
              
                (
              
              cur
              
                .
              
              fetchmany
              
                (
              
              
                3
              
              
                )
              
              
                )
              
            
          

注意:使用游標的方法返回的數據類型是列表。

6、事務提交或回滾

6.1、提交

            
              	con
              
                .
              
              commit
              
                (
              
              
                )
              
            
          

6.2、回滾

            
              	con
              
                .
              
              rollback
              
                (
              
              
                )
              
            
          

7、關閉數據庫連接和游標

            
              	cur
              
                .
              
              close
              
                (
              
              
                )
              
              
	con
              
                .
              
              close
              
                (
              
              
                )
              
            
          

??注意: 一定要先關閉游標,再關閉數據庫連接,否則會報錯!


更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 91色国产在线| 国产精品久久在线 | 久久青青草原精品国产麻豆 | 欧美国产亚洲精品高清不卡 | 久久精品在线视频 | 欧美特级毛片aaaa | 在线观看国产一区二区三区99 | 成人yyyy| 亚洲视频日韩 | 国产观看精品一区二区三区 | 精品无人区乱码一区2区3区 | 久久九九综合 | 91视频a | 欧美草草 | 午夜一级免费视频 | 亚洲丶国产丶欧美一区二区三区 | 欧美在线视频一区二区三区 | 你懂得国产 | 免费的性生活视频 | 久久国产精品高清一区二区三区 | 亚洲国产精品线观看不卡 | 久久99这里只有精品国产 | aaaaaaa毛片| 西西亚洲 | 久久精品视频18 | 九九热精品在线 | 老司机深夜福利影院 | 亚欧洲精品在线视频免费观看 | 96精品视频在线播放免费观看 | 日本a视频在线 | 国产麻豆高清视频在线第一页 | 国产乱码一区二区三区 | 色综合色狠狠天天久久婷婷基地 | 日韩a一级欧美一级 | 天天干天天做 | 骚婷婷| 久久精品国产一区二区 | 97av免费视频| 天啪天干在线视频 | 久久爆操 | 狠狠躁夜夜躁人人爽天天段 |