说到数据库,可能有些朋友没有学过MySQL数据库语句语法,不过没关系,python中操作数据库储存数据,也就是创建一个表格,然后向表格中插入数据的过程,没有多少内容的,数据库表格最常用的知识点也就4点,下面具体介绍理论和实战例子:
添加(插入)内容 + 删除内容 + 查询内容 + 修改(更新)内容
例如:cur.execute('create table person (id int not null auto_increment primary key, ame varchar (20), age int)')
表格已经创建,如果还想要在这个已经创建的表格中插入数据,
就将创建表格的代码注释掉。
1.导入模块
import pymysql
2.打开数据库,即连接到数据库(前面4个必写且顺序不能变)
端口port='', 字符类型charset='utf-8'
conn = pymysql.connect(host='localhost', user='root', passwd='root', db='lxz')
3.数据库连接对象,创建游标,execute()执行MySQL语句,executemany()执行多条MySQL语句
cur = conn.cursor()
4.建立一个名字为person的表格来储存信息
cur.execute('create table person (id int not null auto_increment primary key,
name varchar (20), age int)')
# cur.execute("insert into person (name,age) values('lxz',21)") # 直接赋值
# cur.executemany('insert into person (name,age) values (%s,%s)',
# [('qqaa', 21), ('bbb', 19), ('ccc', 16), ('ddd', 28), ('eee', 37)]) # 通过占位符赋值
批量数据插入,通过占位符才可以
总结经验,用cur.execute()批量处理要有两个占位符(不能多也不能少,
无论插入的数据有多少都只能是两个),后面的kkk1是一个[(),(),()]这样形式的列表
name1 = ['aaa','bbb','ccc','ddd','eee']
age1 = [21,19,16,28,37]
for i in range(len(name1)):
kk = (str(name1[i]),age1[i])
cur.execute("insert into person (name,age) values (%s,%s)",kk)
kkk1 = []
for i in range(len(name1)):
kkk2 = (name1[i],age1[i])
# print(kkk2)
kkk1.append(kkk2)
# print(kkk1)
cur.executemany('insert into person (name,age) values (%s,%s)',kkk1)
游标提供了fetchall()方法获取所有数据,返回一个二维元组和
fetchone()方法获取其中的一个结果,返回一个元组
cur.execute('select * from person')
res = cur.fetchall()
# print(res)
for item in res:
# 输出数据库表格中的所有数据
# print('id='+str(item[0])+' name='+str(item[1])+' age='+str(item[2]))
cur.execute('select * from person')
res = cur.fetchone()
# print('fetchone()方法:',res)
# 修改id等于1的名字'lxz'为另外一个名字'vivo',person是表格的名称
cur.execute('update person set name = %s where id = %s',('vivo',1))
name1 = ['@ab','@bbb','@ccc','@ddd','@eee']
id = [3,4,5,16,18]
for i in range(len(name1)):
kk = (str(name1[i]),id[i])
cur.execute('update person set name = %s where id = %s',kk)
# 删除id等于2这一行的内容
cur.execute('delete from person where id = %s',(2,))
id = []
# 通过循环批量生成id号,批量删除id号所对应行的内容
for i in range(22,141):
id = (i,)
cur.execute('delete from person where id = %s',id)
conn.commit()
# 如果出现错误,可以使用回滚操作conn.rollback()
cur.close()
conn.close()
以上就是python操作MySQL数据库的所有常见的内容了,希望对读者朋友有帮助。
按字母顺序浏览:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
→我们致力于为广大网民解决所遇到的各种电脑技术问题 如果您认为本词条还有待完善,请 编辑词条