Python基礎(Day 14)(SQLite初體驗)

知識點總結:

  1. 使用sqlite模塊完成常規sql語句執行。

在這裏插入圖片描述

定義表格結構及數據
Name Mobile Birthday isValud
Eric 18245451155 1992-09-8-18 0
Tom 18245451155 1992-01-8-07 0
Jerry 18244451155 1932-09-8-28 0
Peter 18256511575 1994-03-8-11 0
Harry 18755151255 1982-12-8-28 0
使用py自帶sqlite3模塊操作
# 引入模塊
>>> import sqlite3
# 創建鏈接
>>> conn = sqlite3.connect('addressBook.db')
# 創建遊標
>>> c = conn.cursor()
# 執行查詢
>>> sql = "select * from LinkMan"
>>> result = c.execute(sql)
>>> result
# result爲可迭代類型
<sqlite3.Cursor object at 0x000001BD5FCFD500>
>>> for row in result:
...    print(row)
    
('Eric', '18245451155', '1992-09-8-18', 0)
('Tom', '18245451155', '1992-01-8-07', 0)
('Jerry', '18244451155', '1932-09-8-28', 0)
('Peter', '18256511575', '1994-03-8-11', 0)
('Harry', '18755151255', '1982-12-8-28', 0)

# INSERT語句
>>> sql = "insert into LinkMan values ('Marry','18600098999','1985-12-02',1)"
>>> c.execute(sql)
<sqlite3.Cursor object at 0x000001BD5FCFD500>
>>> conn.commit()
>
# UPDATE語句
>>> sql = "UPDATE LinkMan SET Mobile='18833441122' where Name='Peter'"
>>> c.execute(sql)
<sqlite3.Cursor object at 0x000001BD5FCFD500>
>>> conn.commit()

# DELETE 語句
sql = "DELETE from LinkMan where rowid=5"
>>> c.execute(sql)
<sqlite3.Cursor object at 0x000001BD5FCFD500>
>>> conn.commit()
sql = "SELECT OID,* from LinkMan"
>>> c.execute(sql)
<sqlite3.Cursor object at 0x000001BD5FCFD500>

# fetchall 方法將執行結果以list形式拉取到內存
>>> lst = c.fetchall()
lst
[(1, 'Eric', '18245451155', '1992-09-8-18', 0), (2, 'Tom', '18245451155', '1992-01-8-07', 0), (3, 'Jerry', '18244451155', '1932-09-8-28', 0), (4, 'Peter', '18833441122', '1994-03-8-11', 0), (6, 'Marry', '18600098999', '1985-12-02', 1)]
for row in lst:
    print(row)
    
(1, 'Eric', '18245451155', '1992-09-8-18', 0)
(2, 'Tom', '18245451155', '1992-01-8-07', 0)
(3, 'Jerry', '18244451155', '1932-09-8-28', 0)
(4, 'Peter', '18833441122', '1994-03-8-11', 0)
(6, 'Marry', '18600098999', '1985-12-02', 1)

# fetchmany 指定條數拉取
c.execute(sql)
<sqlite3.Cursor object at 0x000001BD5FCFD500>
row = c.fetchmany(2)
row
[(1, 'Eric', '18245451155', '1992-09-8-18', 0), (2, 'Tom', '18245451155', '1992-01-8-07', 0)]

# ?參數佔位符
sql = "SELECT OID,* from LinkMan where Name=?"
name = ('Tom',)
c.execute(sql,name)
<sqlite3.Cursor object at 0x000001BD5FCFD500>

# fetchone 拉取一條數據
c.fetchone()
(2, 'Tom', '18245451155', '1992-01-8-07', 0)
sql = "insert into LinkMan values(:name, :mobile,:birthday,:isvalid)

# kv方式傳參,注意key與sql中定義名字需完全一致
>>> sql = "insert into LinkMan values(:name, :mobile,:birthday,:isvalid)"
>>> value_dict = {"name":"John","mobile":"17790445326","birthday":"2000-05-23","isvalid":1}
>>> c.execute(sql, value_dict)
<sqlite3.Cursor object at 0x000001BD5FCFD500>
>>> conn.commit()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章