Python中SQLite資料庫如何使用
SQL(結構化查詢語言)是一種通用資料庫查詢語言。 SQL具有資料定義、資料操作和資料控制功能,可以完成資料庫的全部工作。 SQL語言使用時只需要用告訴電腦“做什麼”,而不需要告訴它“怎麼做”。
SQL語言有兩種使用方式,一是直接以指令方式互動使用;二是嵌入到C/C 、Python等主語言中使用。
預備知識
sqlite資料庫的建立與連接
sqlite資料庫的建立與連接分三步驟:
(1)導入模組
import sqlite3 #或者: from sqlite3 import dbapi2 #导入sqlite3模块的dbapi2接口模块
(2)利用connect方法建立資料庫
connection=sqlite3.connect(filename) #filename为数据库文件名,如果该文件存在则打开该数据库,如果不存在则创建一个新的数据库文件。 #该方法返回一个数据库连接对象
(3)關閉連線物件
connection.close() #关闭连接,更新数据库文件
SQL語句建立資料表
表格是資料庫中存放關係資料的集合,一個資料庫通常包含了多個表,如學生表、班級表、教師表等,表和表之間透過外鍵關聯。
在SQL中,利用create語句建立表格語法結構如下:
create table 表名(字段1,…,字段n)
如,建立mytb表:
create table if not exists mytb( xm char, cj real, kc text )
表名是mytb;IF NOT EXISTS表示如果資料庫中不存在mytb資料表,就建立該表;如果該資料表已經存在,則什麼也不做;
xm char, cj real, kc text表示該資料表有3個字段,xm(姓名)是字串類型,cj(成績)是浮點數類型,kc(課程)是文字字串。
SQLite3支援的資料型別有:
null
(值=空)、integer
(整數)、real
(浮點數)、text
(字串文字)、blob
(二進位資料塊)。
execute()方法
在Python中我們可以使用execute 方法執行一條SQL語句
conn.execute('create table if not exists mytb( xm char, cj real, kc text )')
conn為連線物件execute()方法中參數為一條SQL語句,類型為字串
插入記錄
(1)插入記錄的SQL語句
#語法格式如下:
insert into 表名 [字段名] values [常量]
如:
insert into Persons values ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')
(2)利用execute()執行SQL語句
cur.exceute(sql语句)
(3)提交交易
conn.commit() #提交事务,将数据写入文件,保存到磁盘中。
查詢SQL語句
從「表」查詢滿足條件運算式的「目標列」
SELECT 目标列 FROM 表 [WHERE 条件表达式]
如,查詢年齡20歲以下的學生姓名及其年齡:
select sname age from student where age<20
如,查詢表中所有記錄:
select * from student
fetchall( )
傳回多筆記錄(rows),如果沒有結果,則回傳空()
sqlite_master表
每一個SQLite 資料庫都有一個叫做sqlite_master 的表,該表會自動建立。
sqlite_master是一個特殊表, 儲存資料庫的元資訊, 如表(table), 索引(index), 視圖(view), 觸發器(trigger), 可透過select查詢相關資訊。
select name,sql from sqlite_master where type='table'
此語句用於查詢資料庫中資料表的名稱name,以及建立表格的SQL語句
更新記錄
更新記錄的SQL語句:
UPDATE 表名 SET 列名=表达式… [WHERE 条件]
當「條件」成立時,將某列的值改為「表達式」 如:
update student set cj=90 where xh="001"
可將001號同學的成績改為90
刪除記錄
DROP TABLE和DELETE語句:
(1)刪除資料表所有記錄
DELETE FROM <表名>
如,刪除student表
delete from student
(2)刪除記錄
DELETE FROM <表名> WHERE <条件>
如,刪除表中學號xh為'001'記錄
delete from student where xh='001'
(3)刪除整個資料表
DROP TABLE 表名
如,刪除student表結構
drop table student
範例練習
第1關:建立和連接資料庫檔案
本關任務:在目前目錄下,建立並連接mytest.db資料庫。
程式碼解析
def return_values(): #***********Begin**********# #(1)导入内置sqlite3模块 import sqlite3 #(2)创建conn连接对象(在当前路径下建立mytest.db数据库) conn = sqlite3.connect("mytest.db") #(3)关闭连接 conn.close() #***********End**********#
第2關:建立資料表
本關任務:建立或開啟資料表示例。
程式碼解析
#(1)导入sqlite3模块 import sqlite3 #(2)创建conn连接对象,建立mytest.db数据库 conn = sqlite3.connect("mytest.db") #(3)定义sql语句,创建mytb数据表,表中有三个字段xm、cj、kc,其数据类型分别为char、real、text sql_demo = "create table if not exists mytb( xm char , cj real , kc text )" #(4)执行sql语句 conn.execute(sql_demo) #(5)关闭连接 conn.close()
第3關:插入記錄
本關任務:建立一個sqlite3資料庫檔案mytest.db,再建立一個資料表mytb.db,往表裡插入三行記錄。
程式碼解析
#(1)导入sqlite3模块 import sqlite3 #(2)创建数据库文件mytest.db conn = sqlite3.connect("mytest.db") #(3)定义一个游标对象 cur = conn.cursor() #(4)定义创建数据表SQL语句 sql_create = "create table if not exists mytb(xm char,cj real,kc text)" sql_insert_by = "insert into mytb values ('宝玉',85,'计算机')" sql_insert_dy = "insert into mytb values ('黛玉',90,'计算机')" sql_insert_bc = "insert into mytb values ('宝钗',80,'数据库')" #(5)执行SQL语句,创建数据表mytb conn.execute(sql_create) #(6)依次插入3条记录,内容分别为:('宝玉',85,'计算机')、('黛玉',92,'计算机')、('宝钗',80,'数据库') cur.execute(sql_insert_by) cur.execute(sql_insert_dy) cur.execute(sql_insert_bc) #(7)提交事务 conn.commit() #(8)关闭连接 cur.close() conn.close()
第4關:查詢記錄
本關任務:設計一個程序,查詢已有資料庫檔案myfile.db中資料表mytb中所有記錄,及查詢資料表結構。
程式碼解析
#(1)导入sqlite3模块 import sqlite3 #(2)打开数据库文件myfile.db conn = sqlite3.connect("myfile.db") #(3)定义一个游标对象 cur = conn.cursor() sql_select = "select * from mytb" #(4)查询数据表mytb中所有记录,并赋值给列表 cur.execute(sql_select) lst = cur.fetchall() #(5)输出记录数 print(f"共{len(lst)}条记录") #(6)输出所有记录列表 print(lst) #(7)从sqlite_master表中查询数据表的名称和创建时的sql语句,查询结果赋值给列表,并输出列表内容 cur.execute("select name,sql from sqlite_master ") print(cur.fetchall())
第5關:更新與刪除記錄
本關任務:在sqlite資料庫中更新並刪除記錄
程式碼解析
#(1)导入sqlite3模块 import sqlite3 #(2)打开数据库my.db conn = sqlite3.connect("my.db") #(3)定义游标 cur = conn.cursor() #(4)更新记录,将xm“宝玉”的成绩cj改为0 cur.execute("update mytb set cj = 0 where xm = '宝玉'") #(5)删除成绩cj>90的记录 cur.execute("delete from mytb where cj > 90") #(6)删除数据表mytb中所有记录 cur.execute("delete from mytb") #(7)删除整个数据表mytb cur.execute("drop table mytb") #(8)提交事务 conn.commit() #(9)关闭游标 cur.close() #(10)关闭数据库连接 conn.close()
第6關:圖書資料庫的綜合操作
本關任務:在SQLite中建立資料庫mybook.db;在資料庫中建立資料表mytb;在表中定義:isbn(text )、書名(text)、價格(real)等字段,並插入記錄。
程式碼解析
#(1)导入sqlite3模块 import sqlite3 #(2)创建数据库mybook.db conn = sqlite3.connect("mybook.db") #(3)定义游标对象 cur = conn.cursor() #(4)创建表mytb cur.execute("create table if not exists mytb ( isbn text , 书名 text , 价格 real)") #(5)插入记录('9787302518358','欧美戏剧选读',88.00) cur.execute("insert into mytb values ('9787302518358','欧美戏剧选读',88.00)") #(6)插入记录('9787302454038','组织理论与设计 第12版',75.00) cur.execute("insert into mytb values ('9787302454038','组织理论与设计 第12版',75.00)") #(7)插入记录('9787302496878','中国文化经典读本',45.00) cur.execute("insert into mytb values ('9787302496878','中国文化经典读本',45.00)") #(8)提交事务,保存数据 conn.commit() #(9)读入所有记录,将查询记录赋值给列表,遍历输出列表内容 cur.execute("select * from mytb") lst = cur.fetchall() for x in lst: print(x) #(10)关闭游标 cur.close() #(11)关闭数据库 conn.close()
以上是Python中SQLite資料庫如何使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Golang在性能和可擴展性方面優於Python。 1)Golang的編譯型特性和高效並發模型使其在高並發場景下表現出色。 2)Python作為解釋型語言,執行速度較慢,但通過工具如Cython可優化性能。

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。
