日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 如何操作数据库 sql sqlite3 怎样操作数据库

發(fā)布時間:2024/5/8 python 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 如何操作数据库 sql sqlite3 怎样操作数据库 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

sqlite3模塊不同于PyMySQL模塊,PyMySQL是一個python與mysql的溝通管道,需要你在本地安裝配置好mysql才能使用,而SQLite是python自帶的數(shù)據(jù)庫,不需要任何配置,使用sqlite3模塊就可以驅(qū)動它。

我們將進行連接 SQLite數(shù)據(jù)庫、創(chuàng)建表、插入數(shù)據(jù)、讀取數(shù)據(jù)、修改數(shù)據(jù)等操作。

1. 導入sqlite3模塊

sqlite3是內(nèi)置模塊,所以不需要安裝的,直接import導入即可:

import sqlite3

2. 創(chuàng)建與SQLite數(shù)據(jù)庫的連接

使用sqlite3.connect()函數(shù)連接數(shù)據(jù)庫,返回一個Connection對象,我們就是通過這個對象與數(shù)據(jù)庫進行交互。 數(shù)據(jù)庫文件的格式是filename.db,如果該數(shù)據(jù)庫文件不存在,那么它會被自動創(chuàng)建。 該數(shù)據(jù)庫文件是放在電腦硬盤里的,你可以自定義路徑,后續(xù)操作產(chǎn)生的所有數(shù)據(jù)都會保存在該文件中。

# 創(chuàng)建與數(shù)據(jù)庫的連接 conn = sqlite3.connect('test.db')

還可以在內(nèi)存中創(chuàng)建數(shù)據(jù)庫,只要輸入特殊參數(shù)值:memory:即可,該數(shù)據(jù)庫只存在于內(nèi)存中,不會生成本地數(shù)據(jù)庫文件。

conn = sqlite3.connect(':memory:')

建立與數(shù)據(jù)庫的連接后,需要創(chuàng)建一個游標cursor對象,該對象的.execute()方法可以執(zhí)行sql命令,讓我們能夠進行數(shù)據(jù)操作。

#創(chuàng)建一個游標 cursor cur = conn.cursor()

3. 在SQLite數(shù)據(jù)庫中創(chuàng)建表

這里就要執(zhí)行sql的建表語句了,我們先創(chuàng)建一張如下的學生成績表-scores:

該表目前只有字段名和數(shù)據(jù)類型,沒有數(shù)據(jù),執(zhí)行以下語句實現(xiàn):

# 建表的sql語句 sql_text_1 = '''CREATE TABLE scores(姓名 TEXT,班級 TEXT,性別 TEXT,語文 NUMBER,數(shù)學 NUMBER,英語 NUMBER);''' # 執(zhí)行sql語句 cur.execute(sql_text_1)

4. 向表中插入數(shù)據(jù)

建完表-scores之后,只有表的骨架,這時候需要向表中插入數(shù)據(jù):

執(zhí)行以下語句插入單條數(shù)據(jù):

# 插入單條數(shù)據(jù) sql_text_2 = "INSERT INTO scores VALUES('A', '一班', '男', 96, 94, 98)" cur.execute(sql_text_2)

執(zhí)行以下語句插入多條數(shù)據(jù):

data = [('B', '一班', '女', 78, 87, 85),('C', '一班', '男', 98, 84, 90),] cur.executemany('INSERT INTO scores VALUES (?,?,?,?,?,?)', data) # 連接完數(shù)據(jù)庫并不會自動提交,所以需要手動 commit 你的改動conn.commit()

5. 查詢數(shù)據(jù)

我們已經(jīng)建好表,并且插入了三條數(shù)據(jù),現(xiàn)在來查詢特定條件下的數(shù)據(jù):

# 查詢數(shù)學成績大于90分的學生 sql_text_3 = "SELECT * FROM scores WHERE 數(shù)學>90" cur.execute(sql_text_3) # 獲取查詢結(jié)果 cur.fetchall()

返回:

備注:獲取查詢結(jié)果一般可用.fetchone()方法(獲取第一條),或者用.fetchall()方法(獲取所有條)。

6. 其他操作

對數(shù)據(jù)庫做改動后(比如建表、插數(shù)等),都需要手動提交改動,否則無法將數(shù)據(jù)保存到數(shù)據(jù)庫。

# 提交改動的方法 conn.commit()

使用完數(shù)據(jù)庫之后,需要關閉游標和連接:

# 關閉游標 cur.close() # 關閉連接 conn.close()

英文原版:sqlite3 — DB-API 2.0 interface for SQLite databases — Python 3.11.1 documentation

總結(jié)

以上是生活随笔為你收集整理的python 如何操作数据库 sql sqlite3 怎样操作数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。