Python3使⽤pymysql实现增删改查
推荐阅读: ,
原⽣语句操作
所谓的原⽣语句就是mysql⾃带的增删改查的语句,即insert,delete,update,select。下⾯我们⽤python3为例。 在python3中数据库的链接⼀般⽤pymsql模块。
当前无法进入匹配序列第三⽅库的安装
pip install pymysql
复制代码
创建数据库的链接
前提我们 配置好了mysql数据库,并且安装上了pymysql模块。 然后我们需要导⼊pymsql,看下⾯⽰例代码:
conn = t(host='localhost',
port=3306, user='root',
passwd='1234', db='user', charset='utf8mb4')#声明mysql连接对象
cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)#查询结果以字典的形式
conn.close()#关闭链接
复制代码
事务处理
事务机制可以确保数据的⼀致性,如果我们有个逻辑是删除⼀条数据然后插⼊,如果我们在插⼊过程中失败了,那么之前删除的数据没有进⾏插⼊,就造成了数据的缺失,为了避免这种缺失情况的发⽣,我们使⽤使⽤来进⾏统⼀处理,如果以上操作都成功了才提交,否则回滚,就当什么也没发⽣⼀样。⽤代码就下⾯的写法
try:
connmit()
except:
复制代码
动态插⼊数据
传⼊⼀个动态变化的字典即可。
⽐如说⼀开始的时候我们有这样的⼀个表叫user,需要保存三个字段id,name,age然后我们可以构建下⾯的字典和表名
d={'id':'1001','name':'zhangsan','age':'17'} 
tables='user'
d={'id':'1001','name':'zhangsan','age':'17'}  
tables='user'
fprintf函数怎么换行
keys=','.join(d.key())python在线编辑器python3
values=','.join(['%s']*len(d))
sql=f'INSERT INTO {table}({keys})VALUES({values})'
try:
ute(sql,tuple(d.values())):
print('ok')
connmit()
except:
print('no')
conn.close()
复制代码
现在我们就完成了插⼊操作,但是有的时候我们需要 主键存在是更细,不存在时插⼊怎么办呢,⾸先我们看下⾯语句动态更新插⼊数据
INSERT INTO user(id,name,age) VALUES(%s,%s,%s) ON DUPLICATE KEY UPDATE id=%s,name=%s,age=%s
ON DUPLICATE KEY UPDATE
复制代码
可以达到以下⽬的:
打印ascii码c语言向数据库中插⼊⼀条记录:
若该数据的主键值/ UNIQUE KEY 已经在表中存在,则执⾏更新操作, 即UPDATE 后⾯的操作。
否则插⼊⼀条新的记录。
然后我们对上⾯整体做⼀个代码整理。如下
data_dic={'id':'1001','name':'zhangsan','age':'17'}  
tables = 'name'
keys = ','.join(data_dic.keys())
values = ','.join(['%s'] * len(data_dic))
sql =f'INSERT INTO {tables}({keys})VALUES({values}) ON DUPLICATE KEY UPDATE '
update = ','.join([f"{k}={v}" for k,v in data_dic.items()])
sql += update
try:
ute(sql,tuple(d.values())):
print('ok')强制结束进程软件
connmit()
except:
print('no')
conn.close()
oracle cursor
复制代码
查询语句
查询语句就⽐较简单了⽤select。下⾯直接看代码
sql='select * from user limit 1,10'
one=cursor.fetchone()
while one:
one=cursor.fetchone()
#推荐使⽤while循环配合fetchone读取所有数据,随⽤随取,效率⾼。
复制代码
删除语句
删除语句⽤delete语句,但是只要commit⾥之后才能⽣效。
tale='user'
id='id=123'#可以直接把条件作为字符串传过来。
sql=f'delete from {table} where {id}'
try:
connmit()
except:
conn.close()
复制代码

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。