pymysql模块操作数据库与mysql数据备份
Posted luckinlee
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pymysql模块操作数据库与mysql数据备份相关的知识,希望对你有一定的参考价值。
链接参数
host='127.0.0.1' #计算机的IP地址 port=3306 #数据库的端口号 user='root' #数据库的用户名 password='root' #用户密码 database='lucky' #要连接数据库名 charset='utf8' #链接数据的编码格式
代码示例
import pymysql 1:#查询 conn = pymysql.connect( host='127.0.0.1', #主机 port=3306, #端口号 user='root',#用户名 password='666', #密码 database='day43', #需要连接的库 charset='utf8'#指定编码 ) cursor = conn.cursor()#获取游标,默认获取的是元祖嵌套形式的数据 sql = "select * from dep;" #sql语句 ret = cursor.execute(sql) #ret 受影响的行数 print(cursor.fetchall()) #取出所有的 print(cursor.fetchmany(3)) #取出多条不写参数默认是取一条 print(cursor.fetchone()) #取出单条 cursor.scroll(3,'absolute') #绝对移动,按照数据最开始位置往下移动3条 cursor.scroll(3,'relative') #相对移动,按照当前光标位置往下移动3条 ''' cursor 获取游标的时候默认获取的是元祖套元祖的数据类型,可以指定使用字段的方式,来获取字典的数据格式 ''' #字典格式的游标 cursor = conn.cursor(pymysql.cursors.DictCursor)
pymysql插入数据
#插入 conn = pymysql.connect( host='127.0.0.1', #主机 port=3306, #端口号 user='root',#用户名 password='666', #密码 database='day43', #需要连接的库 charset='utf8'#指定编码 ) cursor = conn.cursor()#获取游标,默认获取的是元祖嵌套形式的数据 sql = "insert into t1 values (3,'xx3',18);" #sql语句 ret = cursor.execute(sql) #ret 受影响的行数 conn.commit() #增删改操作时,需要进行提交
sql注入解决方案
#sql注入:解决方案 cursor.execute(sql,[参数1,参数2...]) import pymysql conn = pymysql.connect( host='127.0.0.1', port=3306, user='root', password='666', database='day43', charset='utf8', ) while 1: username = input('请输入用户名:') password = input('请输入密码:') cursor = conn.cursor(pymysql.cursors.DictCursor) sql = "select * from userinfo where username=%s and password=%s;" #cursor.execute(sql,[uname,pword]) ,其实它本质也是帮你进行了字符串的替换,只不过它会将uname和pword里面的特殊字符给过滤掉。 ret = cursor.execute(sql,[username,password]) #ret我们说是得到的行数,如果这个行数不为零,说明用户输入的用户名和密码存在,如果为0说名存在 if ret:#如果输入的用户名和密码错误,这个结果为0,如果正确,这个结果为1 print('登录成功') else: print('账号或者密码错误,请重新输入!!!')
获取插入的最后一条数据的自增ID
import pymysql conn=pymysql.connect(host='localhost',user='root',password='123',database='egon') cursor=conn.cursor() sql='insert into userinfo(name,password) values("xxx","123");' rows=cursor.execute(sql) print(cursor.lastrowid) #在插入语句后查看 conn.commit() cursor.close() conn.close()
Mysql数据库数据备份和恢复
#使用mysqldump实现数据库的备份
mysqldump -uroot -p -B -d 库名 > f:数据库备份练习crm2stru.sql
Enter password: ***
'''
mysqldump也是mysql数据库的一个命令,-u用户名,-p密码 -B指的是在备份数据的时候,备份的数据增加建库的语句和use语句,>号后面指定路径数据备份保存的路径和文件名
'''
#利用mysql命令回复数据
'''
恢复数据首先要把数据库中原来的库删除,然后把备份的数据导入进来,<号表示得就是要导入进来,后面写上备份数据的路径,运行就可以回复数据
'''
mysql -u用户名 -p 密码 库名 < f:数据库备份练习crm2stru.sql
以上是关于pymysql模块操作数据库与mysql数据备份的主要内容,如果未能解决你的问题,请参考以下文章
pymysql和sqlalchemy模块操作mysql数据库
48-mysql-Navicat数据库查询题目讲解(多表操作)python操作MySQLsql注入问题pymysql模块增删改查数据操作