python连接mysql数据库

由于 MySQLdb 模块还不支持 Python3.x,所以 Python3.x 如果想连接MySQL需要安装 pymysql 模块。
pymysql 模块可以通过 pip 安装。但如果你使用的是 pycharm IDE,则可以使用 project python 安装第三方模块。
由于Python统一了数据库连接的接口,所以 pymysql 和 MySQLdb 在使用方式上是类似的:
#创建数据库连接
pymysql.Connect()参数说明
host(str): MySQL服务器地址
port(int): MySQL服务器端口号
user(str): 用户名
passwd(str): 密码
db(str): 数据库名称
charset(str): 连接编码,存在中文的时候,连接需要添加charset=‘utf8’,否则中文显示乱码。

connection对象支持的方法
cursor() 使用该连接创建并返回游标
commit() 提交当前事务,不然无法保存新建或者修改的数据
rollback() 回滚当前事务
close() 关闭连接

cursor对象支持的方法
execute(op) 执行SQL,并返回受影响行数
fetchone() 取得结果集的下一行
fetchmany(size) 获取结果集的下几行
fetchall() 获取结果集中的所有行
rowcount() 返回数据条数或影响行数
close() 关闭游标对象

import pymysql.cursors

连接数据库

connect = pymysql.Connect(
host=‘10.121.215.238’,
port=3308,
user=‘root’,
passwd=‘1234’,
db=‘mydb’,
charset=‘utf8’
)

获取游标

cursor = connect.cursor()

插入数据

for i in range(10000,10010):
print(i)
sql = “INSERT INTO http_detail_2021011317 (id, SOURCE_IP,DEST_IP,SOURCE_PORT,DEST_PORT,TITLE,URL,HOST,NET_PERSON_NAME,CARD_TYPE,CARD_NUM,SERVICE_CODE,TERMINAL_NAME,DEVICE_IP,TIME,METHOD,SEND_TYPE,CATEGORY,SUB_CATEGORY,FILE_NAME,CONTENT,LOG_TYPE,TERMINAL_MAC,VLAN,USER_AGENT,DELAY_TIME)
VALUES (%d,‘4-c0a81056’, ‘4-acd9180a’,62587,80,’’ ,‘http://www.123.com’,‘www.123.com’,’’ ,’’ ,’’ ,’’ ,’’ ,‘4-c0a81064’,1610607596,’’ ,2,‘其他类型’,‘其他类型’,’’ ,’’ , ‘http’, ‘00:e0:4c:7c🇩🇪c5’,0,‘UserAgent:Client Agent’, 0)” %i

cursor.execute(sql)

connect.commit()
print(‘成功插入’, cursor.rowcount, ‘条数据’)

‘’’

插入数据

sql = “INSERT INTO trade (name, account, saving) VALUES ( ‘%s’, ‘%s’, %.2f )”
data = (‘雷军’, ‘13512345678’, 10000)
cursor.execute(sql % data)
connect.commit()
print(‘成功插入’, cursor.rowcount, ‘条数据’)

修改数据

sql = "UPDATE trade SET saving = %.2f WHERE account = ‘%s’ "
data = (8888, ‘13512345678’)
cursor.execute(sql % data)
connect.commit()
print(‘成功修改’, cursor.rowcount, ‘条数据’)

查询数据

sql = "SELECT name,saving FROM trade WHERE account = ‘%s’ "
data = (‘13512345678’,)
cursor.execute(sql % data)
for row in cursor.fetchall():
print(“Name:%s\tSaving:%.2f” % row)
print(‘共查找出’, cursor.rowcount, ‘条数据’)

删除数据

sql = “DELETE FROM trade WHERE account = ‘%s’ LIMIT %d”
data = (‘13512345678’, 1)
cursor.execute(sql % data)
connect.commit()
print(‘成功删除’, cursor.rowcount, ‘条数据’)

事务处理

sql_1 = "UPDATE trade SET saving = saving + 1000 WHERE account = ‘18012345678’ "
sql_2 = "UPDATE trade SET expend = expend + 1000 WHERE account = ‘18012345678’ "
sql_3 = "UPDATE trade SET income = income + 2000 WHERE account = ‘18012345678’ "

try:
cursor.execute(sql_1) # 储蓄增加1000
cursor.execute(sql_2) # 支出增加1000
cursor.execute(sql_3) # 收入增加2000
except Exception as e:
connect.rollback() # 事务回滚
print(‘事务处理失败’, e)
else:
connect.commit() # 事务提交
print(‘事务处理成功’, cursor.rowcount)
‘’’

关闭连接

cursor.close()
connect.close()

数据库开启远程连接

1、本地登录mysql数据库
2、use mysql;
3、update user set host = ‘%’ where user = ‘root’;
在这里插入图片描述
4、授予所有权限
当然,如果要让root对所有数据库操作权限,还需给root用户进行授权:
grant all privileges on . to root@’%’ identified by “pwd”;
5、FLUSH PRIVILEGES;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值