激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python 如何操作 SQLite 數據庫

Python 如何操作 SQLite 數據庫

2020-08-17 18:33Rocky0429 Python

這篇文章主要介紹了Python 如何操作 SQLite 數據庫,幫助大家更好的理解和學習,感興趣的朋友可以了解下

寫在之前

SQLite 是一個小型的關系型數據庫,它最大的特點在于不需要單獨的服務、零配置。我們在之前講過的兩個數據庫,不管是 MySQL 還是 MongoDB,都需要我們安裝。安裝之后,然后運行起來,其實這就相當于已經有一個相應的服務在跑著。

SQLite 與前面所說的兩個數據庫不同。首先Python 已經將相應的驅動模塊作為了標準庫的一部分,只要是你安裝了 Python,就可以使用;再者它可以類似于操作文件那樣來操作 SQLite 數據庫文件。還有一點,SQLite 源代碼不受版權限制。

建立連接

SQLite 也是一個關系型數據庫,所以 SQL 可以直接在里面使用。由于 SQLite 的驅動已經在 Python 里面了,所以只要引用就可以直接使用,由于我們之前已經講過 MySQL 了,所以對于本次內容理解起來就容易多了。

?
1
2
>>> import sqlite3
>>> conn = sqlite3.connect('lite.db')

由上面的代碼我們得到了連接對象,是不是覺得比 MySQL 連接要簡單很多呢?在 sqlite3.connect('lite.db') 中,如果已經有了那個數據庫,就直接連接它,如果沒有的話,就會自動建一個。需要注意的是,這里的路徑是可以隨意指定的。

下面的代碼顯示的是連接對象的屬性和方法:

?
1
2
>>> dir(conn)
['DataError', 'DatabaseError', 'Error', 'IntegrityError', 'InterfaceError', 'InternalError', 'NotSupportedError', 'OperationalError', 'ProgrammingError', 'Warning', '__call__', '__class__', '__delattr__', '__dir__', '__doc__', '__enter__', '__eq__', '__exit__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'close', 'commit', 'create_aggregate', 'create_collation', 'create_function', 'cursor', 'execute', 'executemany', 'executescript', 'in_transaction', 'interrupt', 'isolation_level', 'iterdump', 'rollback', 'row_factory', 'set_authorizer', 'set_progress_handler', 'set_trace_callback', 'text_factory', 'total_changes']

建立游標

這一步其實跟 MySQL 也很類似,連接了數據庫之后,要建立游標對象:

?
1
>>> cur = conn.cursor()

接下來就是對數據庫內容的操作,都是用游標對象方法來實現:

?
1
2
>>> dir(cur)
['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__lt__', '__ne__', '__new__', '__next__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'arraysize', 'close', 'connection', 'description', 'execute', 'executemany', 'executescript', 'fetchall', 'fetchmany', 'fetchone', 'lastrowid', 'row_factory', 'rowcount', 'setinputsizes', 'setoutputsize']

我們在里面看到了一系列我們熟悉的名稱:close()、execute()、fetchall() 等。

1.創建數據庫表

面對 SQLite 數據庫,我們之前熟悉的 SQL 指令都可以用:

?
1
2
3
>>> create_table = "create table books (title,author,language)"
>>> cur.execute(create_table)
<sqlite3.Cursor object at 0x104f296c0>

這樣就在數據庫 lite.db 中建立了一個表 books。對這個表可以增加數據:

?
1
2
>>> cur.execute('insert into books values("python basic","rocky","python")')
<sqlite3.Cursor object at 0x104f296c0>

為了保證數據能夠保存,還要進行如下操作:

?
1
2
3
>>> conn.commit()
>>> cur.close()
>>> conn.close()

以上,在剛才建立的數據庫中已經有了一個表 books,表中已經有了一條記錄。

2.查詢

保存以后我們來查詢一下:

?
1
2
3
4
5
6
>>> conn = sqlite3.connect('lite.db')
>>> cur = conn.cursor()
>>> cur.execute('select * from books')
<sqlite3.Cursor object at 0x104f297a0>
>>> cur.fetchall()
[('python basic', 'rocky', 'python')]

3.批量插入

我們來給 books 表中多增加一些內容,以便于我們進行其它的操作:

?
1
>>> books = [("first book","first","c"),("second book","second","c++"),("third book","third","java")]

這次我們來一個批量插入:

?
1
2
3
>>> cur.executemany('insert into books values (?,?,?)',books)
<sqlite3.Cursor object at 0x104f297a0>
>>> conn.commit()

接下來我們用循環語句來打印一下查詢結果:

?
1
2
3
4
5
6
7
8
>>> rows = cur.execute('select * from books')
>>> for row in rows:
... print(row)
...
('python basic', 'rocky', 'python')
('first book', 'first', 'c')
('second book', 'second', 'c++')
('third book', 'third', 'java')

4.更新

正如我們前面所說的,在 cur.execute() 中,可以寫 SQL 語句來操作數據庫:

?

    1
    2
    3
    >>> cur.execute("update books set id="codetool">

    接下來我們按照條件查詢來看一看:

    ?
    1
    2
    3
    4
    5
    6
    >>> cur.execute("select * from books where author='first'")
    <sqlite3.Cursor object at 0x104f297a0>
    >>> cur.fetchall()
     
     
    [('physics', 'first', 'c')]

    5.刪除

    刪除也是操作數據庫必須的動作:

    ?
    1
    2
    3
    4
    >>> cur.execute("select * from books")
    <sqlite3.Cursor object at 0x104f297a0>
    >>> cur.fetchall()
    [('python basic', 'rocky', 'python'), ('physics', 'first', 'c'), ('third book', 'third', 'java')]

    最后不要忘記在完成對數據庫的操作以后,一定記得給人家「關上門」:

    ?
    1
    2
    >>> cur.close()
    >>> conn.close()

    寫在之后

    基本的知識差不多就是這些,當然肯定不局限于此。在實際的編程中我們肯定會遇到很多的問題,大家記得要多多去查閱官方文檔,學會解決問題。

    至此,Python 操作數據這一部分就結束了,其實不光是這一個章節的結束,我計劃里面的整個「零基礎入門學習 Python」這個系列也到此結束了,后續隨著我碰到的知識的增加,還會再給大家更新關于 Python 方面的東西,讓我們一起加油。

    如果你覺得本篇文章對你有所幫助的話,歡迎點贊 + 關注,期待和你的交流。

    The end。

    以上就是Python 如何操作 SQLite 數據庫的詳細內容,更多關于python操作 SQLite 數據庫的資料請關注服務器之家其它相關文章!

    原文鏈接:https://cloud.tencent.com/developer/article/1534514

    延伸 · 閱讀

    精彩推薦
    主站蜘蛛池模板: 国内精品久久久久久久久久 | 精品一区二区三区在线视频 | 调教小男生抽打尿孔嗯啊视频 | 国产毛片毛片毛片 | 黄色高清免费网站 | 成人电影毛片 | 玩偶姐姐 在线观看 | 欧洲成人一区二区 | 97精品视频在线观看 | 福利片在线看 | 97视频一二区 | 91精品久久久久久久久 | 国产精品国产成人国产三级 | 人人看人人艹 | 激情午夜天| 免费视频一区 | 本色视频aaaaaa一级网站 | 91精品国产91久久久 | 久久久人| 国产精品一区在线观看 | 久久精品国产99国产精品亚洲 | 欧美极品免费 | 国产精品午夜性视频 | 一区二区三区日韩在线 | 久久成年网站 | 国产精品剧情一区二区三区 | 久久久久久久久成人 | 成人福利在线播放 | 99最新地址 | 少妇的肉体的满足毛片 | 色a综合 | 国产一级爱c视频 | 黄色一级视频 | 黄色的视频在线观看 | 久久精品欧美视频 | 欧美一级毛片美99毛片 | 蜜桃网站在线 | 27xxoo无遮挡动态视频 | 99精品欧美一区二区 | 小雪奶水翁胀公吸小说最新章节 | 日韩a毛片免费观看 |