国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python數(shù)據(jù)庫(kù)模塊sqlite3操作實(shí)例(非常實(shí)用)

這篇具有很好參考價(jià)值的文章主要介紹了Python數(shù)據(jù)庫(kù)模塊sqlite3操作實(shí)例(非常實(shí)用)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

當(dāng)使用Python進(jìn)行SQLite數(shù)據(jù)庫(kù)操作時(shí),sqlite3模塊是一個(gè)非常常用和強(qiáng)大的工具。它提供了一系列函數(shù)和方法,用于創(chuàng)建、連接、查詢和管理數(shù)據(jù)庫(kù)。下面是一些常見(jiàn)的用法示例:

import sqlite3

#連接到現(xiàn)有數(shù)據(jù)庫(kù)Connection個(gè)新數(shù)據(jù)庫(kù)
conn = sqlite3.connect('stockssqlite3.db')

# 創(chuàng)建內(nèi)存中的數(shù)據(jù)庫(kù)(不保存到磁盤(pán))
# conn = sqlite3.connect(':memory:')
# 獲取數(shù)據(jù)庫(kù)游標(biāo)
cursor = conn.cursor()

# 創(chuàng)建表
# cursor.execute('''CREATE TABLE stocks2(date text, symbol text, price real)''')

# 插入數(shù)據(jù)
# cursor.execute("INSERT INTO stocks2 VALUES ('2023-07-01', 'WL22', 140.34)")
# cursor.execute("INSERT INTO stocks VALUES ('2023-07-02', 'HengDa', 2515.62)")

# 提交更改
conn.commit()

# # 更新數(shù)據(jù)
cursor.execute("UPDATE stocks SET price =888 WHERE symbol = 'WL'")
# conn.commit()

# 刪除數(shù)據(jù)
cursor.execute("DELETE FROM stocks WHERE symbol = 'HengDa'")
conn.commit()

# 使用參數(shù)化查詢防止SQL注入
symbol = 'WL'
cursor.execute("SELECT * FROM stocks WHERE symbol=?", (symbol,))
rows2 = cursor.fetchall()
# 遍歷查詢結(jié)果
for row in rows2:
    print('WL: ',row)


# # 開(kāi)始事務(wù)
# conn.execute("BEGIN TRANSACTION")
# # 執(zhí)行多個(gè)操作
# cursor.execute("INSERT INTO stocks VALUES ('2023-07-03', 'MSFT', 278.21)")
# cursor.execute("INSERT INTO stocks VALUES ('2023-07-04', 'AMZN', 3606.02)")

# # 提交事務(wù)
# conn.commit()

# 批量插入數(shù)據(jù)
# data = [('2023-07-05', 'SanAN', 144.50),
#         ('2023-07-05', 'ZXGJ', 2540.10),
#         ('2023-07-05', 'MaoTai', 280.50)]

# cursor.executemany("INSERT INTO stocks VALUES (?, ?, ?)", data)
# conn.commit()

try:
    # 開(kāi)始事務(wù)
    conn.execute("BEGIN TRANSACTION")
    # 執(zhí)行一些操作
    cursor.execute("INSERT INTO stocks VALUES ('2023-07-06', 'WuHanD', 148.20)")
    cursor.execute("INSERT INTO stocks VALUES ('2023-07-06', 'GOOGL', 2570.80,'55')")
    # 拋出異常,觸發(fā)回滾
    raise Exception("Some error occurred")
    # 提交事務(wù)
    conn.commit()
except Exception as e:
    # 發(fā)生異常,回滾事務(wù)
    conn.rollback()
    print("Transaction rolled back:", str(e))

# # 使用命名參數(shù)化查詢
# symbol = 'AAPL'
# price = 150.25
# cursor.execute("SELECT * FROM stocks WHERE symbol=:symbol AND price>=:price", {'symbol': symbol, 'price': price})

# 查詢數(shù)據(jù)
cursor.execute("SELECT * FROM stocks")
rows = cursor.fetchall()
# 遍歷查詢結(jié)果 獲取所有行數(shù)據(jù)
for row in rows:
    print(row)

# 獲取部分行數(shù)據(jù)
cursor.execute("SELECT * FROM stocks2 LIMIT 5")
rows = cursor.fetchmany(3)
for row in rows:
    print('stocks2 fetchmany(3): ',row)

# 獲取查詢結(jié)果的列信息
cursor.execute("SELECT * FROM stocks")
columns = [description[0] for description in cursor.description]
print(columns)

# 創(chuàng)建索引
# cursor.execute("CREATE INDEX idx_symbol ON stocks (symbol)")
conn.commit()
# 執(zhí)行查詢(使用索引)
cursor.execute("SELECT * FROM stocks WHERE symbol = 'WK'")
result = cursor.fetchall()
print(result)

# 創(chuàng)建觸發(fā)器
# 該語(yǔ)句指定了觸發(fā)器的名稱update_price
# 觸發(fā)的事件AFTER UPDATE OF price ON stocks,以及在觸發(fā)時(shí)要執(zhí)行的操作。
# 觸發(fā)器是強(qiáng)大的數(shù)據(jù)庫(kù)功能,可以用于在特定事件發(fā)生時(shí)自動(dòng)執(zhí)行復(fù)雜的操作。它們可以用于實(shí)現(xiàn)數(shù)據(jù)完整性約束、記錄日志、更新其他表的數(shù)據(jù)等
# cursor.execute("""
#     CREATE TRIGGER update_price
#     AFTER UPDATE OF price ON stocks
#     BEGIN
#         -- 觸發(fā)時(shí)執(zhí)行的操作
#         UPDATE stocks2 SET price = 5555 WHERE symbol = 'WL22';
#     END
# """)
# conn.commit()

# # 刪除觸發(fā)器
# cursor.execute("DROP TRIGGER IF EXISTS update_price")

# # 提交更改
# conn.commit()

# 查詢觸發(fā)器信息
cursor.execute("SELECT name, tbl_name, sql FROM sqlite_master WHERE type='trigger'")
triggers = cursor.fetchall()

# 打印觸發(fā)器信息
for trigger in triggers:
    name, tbl_name, sql = trigger
    print(f"Name: {name}")
    print(f"Table: {tbl_name}")
    print(f"SQL: {sql}")
    print("-" * 30)
# 獲取數(shù)據(jù)庫(kù)版本號(hào)
cursor.execute("SELECT sqlite_version()")
version = cursor.fetchone()[0]
print("SQLite version:", version)

# 獲取數(shù)據(jù)庫(kù)中的表列表
cursor.execute("SELECT name FROM sqlite_master WHERE type='table'")
tables = cursor.fetchall()
for table in tables:
    print("Table name:", table[0])

# 獲取表的列信息
cursor.execute("PRAGMA table_info(stocks)")
columns = cursor.fetchall()
for column in columns:
    print("Column name:", column[1])
    print("Column type:", column[2])
# 定義用戶自定義函數(shù)
def calculate_total(a, b):
    return a + b

# 注冊(cè)用戶自定義函數(shù)
conn.create_function("total", 2, calculate_total)

# 使用用戶自定義函數(shù)
cursor.execute("SELECT total(10, 5)")
result = cursor.fetchone()[0]
print("Total:", result)
import re

# 創(chuàng)建自定義函數(shù)來(lái)進(jìn)行正則表達(dá)式匹配
def regex_match(pattern, string):
    return bool(re.match(pattern, string))

# 注冊(cè)自定義函數(shù)
conn.create_function("regex_match", 2, regex_match)

# 使用正則表達(dá)式進(jìn)行查詢
cursor.execute("SELECT * FROM my_table WHERE regex_match('^A.*', name)")
import sqlite3

# 連接到數(shù)據(jù)庫(kù)
conn = sqlite3.connect("mydatabase.db")
cursor = conn.cursor()

# 刪除觸發(fā)器
cursor.execute("DROP TRIGGER IF EXISTS update_price")

# 提交更改
conn.commit()

# 關(guān)閉連接
conn.close()

?

import sqlite3

# 連接到數(shù)據(jù)庫(kù)
conn = sqlite3.connect("mydatabase.db")
cursor = conn.cursor()

# 查詢觸發(fā)器信息
cursor.execute("SELECT name, tbl_name, sql FROM sqlite_master WHERE type='trigger'")
triggers = cursor.fetchall()

# 打印觸發(fā)器信息
for trigger in triggers:
    name, tbl_name, sql = trigger
    print(f"Name: {name}")
    print(f"Table: {tbl_name}")
    print(f"SQL: {sql}")
    print("-" * 30)

# 關(guān)閉連接
conn.close()

sqlite-utils、sqlitebiter和其他類(lèi)似的庫(kù)可以提供更高級(jí)的功能,包括預(yù)編譯語(yǔ)句的執(zhí)行優(yōu)化和數(shù)據(jù)庫(kù)連接池的管理。這些庫(kù)可以作為sqlite3模塊的擴(kuò)展,提供更便捷和高效的SQLite數(shù)據(jù)庫(kù)操作。下面是這些庫(kù)的簡(jiǎn)要介紹:

  1. sqlite-utils:它是一個(gè)Python庫(kù),提供了許多工具和功能來(lái)簡(jiǎn)化SQLite數(shù)據(jù)庫(kù)的操作。它支持創(chuàng)建、連接、查詢和管理數(shù)據(jù)庫(kù),還提供了高級(jí)功能,如預(yù)編譯語(yǔ)句的執(zhí)行優(yōu)化、數(shù)據(jù)導(dǎo)入導(dǎo)出、數(shù)據(jù)庫(kù)遷移等。你可以使用sqlite-utils來(lái)執(zhí)行高級(jí)操作,以提高SQLite數(shù)據(jù)庫(kù)的性能和功能。

  2. sqlitebiter:它是一個(gè)命令行工具和Python庫(kù),用于將不同的數(shù)據(jù)源(如CSV、Excel、JSON等)轉(zhuǎn)換為SQLite數(shù)據(jù)庫(kù)。它可以自動(dòng)推斷表結(jié)構(gòu),并將數(shù)據(jù)導(dǎo)入SQLite數(shù)據(jù)庫(kù)中。sqlitebiter還提供了選項(xiàng)來(lái)優(yōu)化導(dǎo)入過(guò)程,包括使用預(yù)編譯語(yǔ)句和批量插入等。這使得數(shù)據(jù)導(dǎo)入過(guò)程更快速和高效。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-546117.html

到了這里,關(guān)于Python數(shù)據(jù)庫(kù)模塊sqlite3操作實(shí)例(非常實(shí)用)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 嵌入式數(shù)據(jù)庫(kù)sqlite3【基礎(chǔ)篇】基本命令操作,小白一看就懂(C/C++)

    嵌入式數(shù)據(jù)庫(kù)sqlite3【基礎(chǔ)篇】基本命令操作,小白一看就懂(C/C++)

    目錄 前言 一、sqlite概念和特性 二、sqlite安裝 三、sqlite3數(shù)據(jù)類(lèi)型? 四、sqlite數(shù)據(jù)庫(kù)約束 五、sqlite常用命令? 六、SQL語(yǔ)句(增刪改查) 七、sqlite使用實(shí)例(教學(xué)管理數(shù)據(jù)庫(kù)) 總結(jié) 數(shù)據(jù)在實(shí)際工作中應(yīng)用非常廣泛,數(shù)據(jù)庫(kù)的產(chǎn)品也比較多,oracle、DB2、SQL2000、mySQL;基于嵌入式

    2024年02月08日
    瀏覽(21)
  • 數(shù)據(jù)庫(kù)--Sqlite3

    數(shù)據(jù)庫(kù)--Sqlite3

    ?1、思維導(dǎo)圖 ?2sqlite3在linux中是實(shí)現(xiàn)數(shù)據(jù)的增刪,改 #includemyhead.h int main(int argc, const char *argv[]) { ? ? ? ? //1、定義一個(gè)數(shù)據(jù)庫(kù)句柄指針 ? ? ? ? sqlite3* ppDb =NULL; ? ? ? ? //2、創(chuàng)建或打開(kāi)數(shù)據(jù)庫(kù) ? ? ? ? if(sqlite3_open(\\\"./mydb.db\\\",ppDb)!=SQLITE_OK) ? ? ? ? { ? ? ? ? ? ? ? ? printf(

    2024年04月27日
    瀏覽(28)
  • sqlite3數(shù)據(jù)庫(kù)的實(shí)現(xiàn)

    sqlite3代碼實(shí)現(xiàn)數(shù)據(jù)庫(kù)的插入、刪除、修改、退出功能

    2024年02月12日
    瀏覽(22)
  • sqlite3將詞典導(dǎo)入數(shù)據(jù)庫(kù)

    使用sqlite3代碼實(shí)現(xiàn)將詞典導(dǎo)入數(shù)據(jù)庫(kù)中

    2024年02月12日
    瀏覽(25)
  • SQlite3數(shù)據(jù)庫(kù)相關(guān)相關(guān)命令

    SQlite3數(shù)據(jù)庫(kù)相關(guān)相關(guān)命令

    1. 創(chuàng)建表格 2. 插入數(shù)據(jù) 3. 查看數(shù)據(jù)庫(kù)記錄 4. 刪除信息 5. 更新數(shù)據(jù) 6. 增加一列 7. 刪除一列 (sqlite3 不支持直接刪除一列) 1. 打開(kāi)數(shù)據(jù)庫(kù) 2. 關(guān)閉數(shù)據(jù)庫(kù) 3. 錯(cuò)誤信息 4. 執(zhí)行一條sql語(yǔ)句 5. 查詢回調(diào)函數(shù) 6. 查詢函數(shù) 小知識(shí):如果結(jié)構(gòu)體中定義的是一級(jí)指針,那么你要定義變量取

    2024年02月16日
    瀏覽(28)
  • 02.sqlite3學(xué)習(xí)——嵌入式數(shù)據(jù)庫(kù)的基本要求和SQLite3的安裝

    02.sqlite3學(xué)習(xí)——嵌入式數(shù)據(jù)庫(kù)的基本要求和SQLite3的安裝

    目錄 嵌入式數(shù)據(jù)庫(kù)的基本要求和SQLite3的安裝 嵌入式數(shù)據(jù)庫(kù)的基本要求 常見(jiàn)嵌入式數(shù)據(jù)庫(kù) sqlite3簡(jiǎn)介 SQLite3編程接口模型 ubuntu 22.04下的SQLite安裝 (1)安裝SQLite3軟件 sudo apt-get install sqlite3 (2)安裝庫(kù)文件 sudo apt-get install libsqlite3-dev 安裝成功后輸入sqlite3查看 (3)安裝sqlite3可

    2024年02月11日
    瀏覽(29)
  • 嵌入式數(shù)據(jù)庫(kù)之sqlite3

    嵌入式數(shù)據(jù)庫(kù)之sqlite3

    ????????數(shù)據(jù):能夠輸入計(jì)算機(jī)并能被計(jì)算機(jī)程序識(shí)別和處理的信息集合。 ????????數(shù)據(jù)庫(kù):數(shù)據(jù)庫(kù)是在數(shù)據(jù)庫(kù)管理系統(tǒng)管理和控制之下,存放在存儲(chǔ)介質(zhì)上的數(shù)據(jù)集合。 1.大型數(shù)據(jù)庫(kù) ????????Oracle公司是最早開(kāi)發(fā)關(guān)系數(shù)據(jù)庫(kù)的廠商之一,其產(chǎn)品支持最廣泛的操作

    2024年02月10日
    瀏覽(22)
  • 【嵌入式數(shù)據(jù)庫(kù)之sqlite3】

    目錄 一.數(shù)據(jù)庫(kù)基本概念(理解) 1.數(shù)據(jù) 2.數(shù)據(jù)庫(kù) 二.常用的數(shù)據(jù)的數(shù)據(jù)庫(kù)(了解) 1.大型數(shù)據(jù)庫(kù) 2.中型數(shù)據(jù)庫(kù) 3.小型數(shù)據(jù)庫(kù) 三.基于嵌入式的數(shù)據(jù)庫(kù)(了解) 四.SQLite基礎(chǔ)(了解) 五.創(chuàng)建數(shù)據(jù)庫(kù)(熟練) 1.手工創(chuàng)建 2.代碼創(chuàng)建 六.SQLite編程接口 七.代碼示例(學(xué)生管理系統(tǒng)) 八

    2024年02月09日
    瀏覽(20)
  • SQLite3數(shù)據(jù)庫(kù)的介紹和使用(面向業(yè)務(wù)編程-數(shù)據(jù)庫(kù))

    SQLite是一種用C語(yǔ)言實(shí)現(xiàn)的的SQL數(shù)據(jù)庫(kù) 它的特點(diǎn)有:輕量級(jí)、快速、獨(dú)立、高可靠性、跨平臺(tái) 它廣泛應(yīng)用在全世界范圍內(nèi)的手機(jī)電腦應(yīng)用的內(nèi)建數(shù)據(jù)庫(kù) 官網(wǎng)地址:https://www.sqlite.org/index.html SQLite因?yàn)槠洳捎梦募鎯?chǔ),且容易移植。在嵌入式中應(yīng)用非常廣泛,可以說(shuō)是嵌入式業(yè)

    2024年02月02日
    瀏覽(36)
  • 【C++】開(kāi)源:sqlite3數(shù)據(jù)庫(kù)配置使用

    【C++】開(kāi)源:sqlite3數(shù)據(jù)庫(kù)配置使用

    ?? ★,° :.☆( ̄▽ ̄)/$: .°★ ?? 這篇文章主要介紹sqlite3數(shù)據(jù)庫(kù)配置使用。 無(wú)專精則不能成,無(wú)涉獵則不能通?!?jiǎn)⒊?歡迎來(lái)到我的博客,一起學(xué)習(xí),共同進(jìn)步。 喜歡的朋友可以關(guān)注一下,下次更新不迷路?? 項(xiàng)目Github地址: https://github.com/sqlite/sqlite SQLite 是一種嵌入式

    2024年02月14日
    瀏覽(20)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包