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()
发布了45 篇原创文章 · 获赞 2 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_22096121/article/details/103359614