python导入pymysql_使用python导入pymysql库操作mysql(增删改查)

首先需要安装pymysql,在命令行用命令:pip install pymysql

安装完成后,连接mysql数据库:

import pymysql.cursors

'''

连接数据库

'''

#使用pymysql指令连接数据库

connection = pymysql.connect(host = '127.0.0.1', #要连接的数据库的IP地址

user = 'root', #登录的账户名,如果登录的是最高权限账户则为root

password = '123456', #对应的密码

db = 'iris', #要连接的数据库

charset = 'utf8mb4', #设置编码格式

#返回到Python的结果,以什么方式存储,如Dict.Cursor是以字典的方式存储

#如果不加这行数据是以元组方式返回

cursorclass = pymysql.cursors.DictCursor

)

这样我们就建立了python 同mysql 的连接

创建表

try:

'''

创建表

'''

# 使用cursor()方法获取操作游标

with connection.cursor() as cursor:

# 如果数据表已经存在使用 execute() 方法删除表。

cursor.execute("drop table if EXISTS users")

sql = '''create table users (

id int(11) not null auto_increment,

email varchar(255) collate utf8_bin not null,

password varchar(255) collate utf8_bin not null,

primary key (id)

)

engine = InnoDB default charset=utf8 collate=utf8_bin

auto_increment=1;

'''

cursor.execute(sql)

except:

# 发生错误时回滚

connection.rollback()

finally:

# 关闭连接

connection.close()

插入数据

# 从数据库链接中得到cursor的数据结构

with connection.cursor() as cursor:

sql = " insert into users(email, password) VALUES (%s, %s)"

cursor.execute(sql,('webmaster@python.org','very_secret'))

# 执行到这一行指令时才是真正改变了数据库,之前只是缓存在内存中

connection.commit()

批量插入数据

'''

批量插入数据

'''

#读取文件

with open('iris.csv', 'r', encoding='utf-8', newline='') as f:

i = 0 #用来记录读取文件中数据的的次数

z = 0 #用来记录读取文件中数据的的次数

list = []

for line in f:

strs = line.split(',')

data = (strs[0], strs[1], strs[2], strs[3], strs[4].replace("\n","")) #数据的最后一行会有一个\n换行符,用replace替换掉

list.append(data)

i += 1

z += 1

if i >= 10: #用于现在一次插入多少条这里是10条插入一次

with connection.cursor() as cursor:

sql = "insert into iris(sepal_length, sepal_width, petal_length, petal_width, uspecies) VALUES (%s, %s, %s, %s, %s)"

cursor.executemany(sql, list) #批量添加数据时 要用executemany

connection.commit()

print("插入{}条数据,已插入{}条数据".format(i, z))

i = 0 #对计数归零

list.clear() #清理数据列表

if i > 0 : # 循环文件完毕后,对剩余的数据进行插入,(例如小于10的剩余数据,比如你的文件有55行,剩余的5行就要这样插入)

cursor.executemany(sql, list)

connection.commit()

查询数据

'''

查询数据

'''

#单一数据

with connection.cursor() as cursor:

sql = " select id, email, password from users where email = %s"

cursor.execute(sql,('sfs1100@126.com'))

result = cursor.fetchone() #fetchone()只取出第一条结果

print(result)

print(type(result))

#多条数据

with connection.cursor() as cursor:

sql = " select * from iris where sepal_length > %s"

cursor.execute(sql, (3))

result = cursor.fetchall() #fetchone()取出查询后的所有数据

print(result)

print(type(result))

for each in result:

print(each['uspecies'])

更新数据

'''

更新数据

'''

with connection.cursor() as cursor:

sql = " update users set email = %s where password = %s"

cursor.execute(sql, ('sfs1100@126.com', 'very_secret'))

connection.commit()

删除数据

'''

删除数据

'''

with connection.cursor() as cursor:

sql = "delete from users where email = %s"

cursor.execute(sql, ('sfs1100@126.com'))

connection.commit()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值