目錄
- 寫在前面
- 一:使用數據庫的宏觀過程
- 二:數據庫使用
- 1、導入數據庫模塊
- 2、打開數據庫
- 2.1、在硬盤上建立數據庫
- 2.2、在內存上建立數據庫
- 3、創建游標
- 4、執行SQL語句
- 4.1、創建表
- 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中唯一一個數據庫接口類模塊,適合用戶開發 小型數據庫系統。 ,此外建議小伙伴們在閱讀之前先學習一些SQL數據庫語言的基本語法,否則看這SQL語句會有一點蒙。接下來就體驗一下它的神秘力量吧!
一:使用數據庫的宏觀過程
??我猜很多小伙伴們開始學習數據庫時應該和我一樣把重點放在學習使用數據庫的每一條SQL語句上,可是當我學習完近所有的語句后發現:我還是對建立使用數據庫的過程一知半解,這樣缺少從整體上對數據庫的認識和了解。所以 我認為正確的方法應該是:先從整體上對數據庫的使用過程有一個清晰宏觀的掌握,之后再深入學習,這樣食用味道會更佳哦!
二:數據庫使用
1、導入數據庫模塊
??此處沒有什么可說的,由于python2.5以后的安裝包已經自帶SQLite3的軟件包了,所以一行語句直接導入即可。
import
sqlite3
2、打開數據庫
??在python中,使用sqlite3創建數據庫的連接,當我們指定的數據庫文件不存在的時候連接對象會自動創建數據庫文件;如果數據庫文件已經存在,則連接對象不會再創建數據庫文件,而是直接打開該數據庫文件。 連接對象可以是硬盤上面的數據庫文件,也可以是建立在內存(memory)中的,在內存中的數據庫執行完任何操作后,都不需要提交事務的(commit)
??connect方法返回con對象,即是數據庫鏈接對象,它提供了以下方法:
方法 | 描述 |
---|---|
.cursor() | 創建一個游標對象 |
.commit() | 處理事務提交 |
.rollback() | 處理事務回滾 |
.close() | 關閉一個數據庫連接 |
2.1、在硬盤上建立數據庫
方法一:
con
=
sqlite3
.
connect
(
"E:\Test.db"
)
??注意:
E:\Test.db
與
E:\\Test.db
與
E:\TEST.db
均相同。由此可見
數據庫的名稱不區分大小寫,且以第一次建立時的名字為準。
但需要注意的是:
E:\test.db
會報錯,因為編譯器會識別到
\t
為制表符,因此認為路徑不對。
方法二:
con
=
sqlite3
.
connect
(
"Test.db"
)
??不加全路徑時,數據庫文件會自動建立在工程項目文件夾下。
2.2、在內存上建立數據庫
con
=
sqlite3
.
connect
(
"memory"
)
3、創建游標
??游標對象有以下方法支持數據庫操作:
方法 | 描述 |
---|---|
.execute() | 用來執行sql語句 |
.executemany() | 用來執行多條sql語句 |
.close() | 用來關閉游標 |
.fetchone() | 用來從結果中取一條記錄,并將游標指向下一條記錄 |
.fetchmany() | 用來從結果中取多條記錄。 |
.fetchall() | 用來從結果中取出所以記錄。 |
.scroll() | 用于游標滾動。 |
??創建游標示例:
cur
=
con
.
cursor
(
)
4、執行SQL語句
4.1、創建表
示例中所有的大寫字符為SQL語法標準,小寫字符為用戶自定義的字符,但由于SQL語句不區分大小寫,所以將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
(
)
??注意: 一定要先關閉游標,再關閉數據庫連接,否則會報錯!
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

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