pymysql python3在线安装:
sudo pip3 install pymysql
pymysql使用流程:
1、建立数据库连接对象(db=pymysql.connect(“root”.
2、创建游标对象cur(操作数据库的对象)
3、游标对象:cur.execute(“insert into sheng …;”)
4、提交到数据库执行 :db.commit()
5、关闭游标对象cur.close()
6、关闭数据库连接对象db.close()
代码1:
import pymysql
db = pymysql.connect(host="localhost",
user="root",password="123456",
database="db4",charset="utf8")
#获取到的查询结果 存放在游标对象里
cursor = db.cursor()
try:
# 1.在sheng表中插入1条记录
sql_insert = 'insert into sheng(s_name) values("湖北省");'
cursor.execute(sql_insert)
# 2.在sheng表中删除id为8的记录
sql_delete = 'delete from sheng where id=8;'
cursor.execute(sql_delete)
# 3.在sheng表中把id为1的记录的省名改为 浙江省
sql_update = 'update sheng set s_name="浙江省" where id=1;'
cursor.execute(sql_update)
# 都执行成功再提交
db.commit()
print("ok")
except Exception as e:
#出现报错 事务回滚
db.rollback()
print("Failed",e)
data1 = cursor.fetchone()
print(data1)
cursor.close()
db.close()
代码2:
from pymysql import connect
class MysqlHelp:
def __init__(self,database,host="localhost",
user="root",password="123456",
charset="utf8",port=3306):
self.database = database
self.host = host
self.user = user
self.password = password
self.charset = charset
self.port = port
# 连接数据方法
def open(self):
# 创建conn
self.conn = connect(host=self.host,
user=self.user,password=self.password,
database=self.database,
charset=self.charset,
port=self.port)
# 创建游标cur
self.cur = self.conn.cursor()
# 关闭
def close(self):
self.cur.close()
self.conn.close()
# 执行SQL语句
def workOn(self,sql,L=[]):
self.open()
try:
self.cur.execute(sql,L)
self.conn.commit()
print("ok")
except Exception as e:
self.conn.rollback()
print("Failed",e)
self.close()
# getAll查询方法
def getAll(self,sql,L=[]):
self.open()
self.cur.execute(sql,L)
# print("ok")
result = self.cur.fetchall()
self.close()
return result
if __name__ == "__main__":
# 测试
mysql = MysqlHelp("db4")
# sql_insert = "insert into sheng(s_name) values('河北省');"
# mysql.workOn(sql_insert)
sql_select = "select * from sheng;"
result = mysql.getAll(sql_select)
print(result)
mysql数据库的数据备份和数据恢复:
1、数据备份(mysqldump,在Linux终端操作)
1、命令格式
mysqldump -u用户名 -p 源库名 > ***.sql
2、源库名的表示方式
–all-databases 备份所有库
库名 备份1个库
-B 库1 库2 库3 备份多个库
库名 表1 表2 表3 备份多张表
eg:
1、备份所有库,放到mydata目录下 :All.sql
mysqldump -uroot -p --all-databases > All.sql
2、备份db4库中的 sheng、city、xian三张表,db4scx.sql
mysqldump -uroot -p db4 sheng city xian > db4scx.sql
3、备份MOSHOU和db4两个库,md.sql
mysqldump -uroot -p -B db4 MOSHOU > md.sql
2、数据恢复
1、命令格式(Linux终端)
mysql -u用户名 -p 目标库名 < ***.sql
2、从所有库备份All.sql中恢复某一个库
mysql -u用户名 -p --one-database 库名 < All.sql
mysql -uroot -p --one-database db4 < All.sql
3、eg:
1、在db4.sheng添加一条记录
insert into sheng values(null,300000,“黑龙江”);
2、在db4库,新建一张表t888
create table t888(id int);
3、从 db4.sql 恢复db4库
mysql -uroot -p db4 < db4.sql
注意 :
1、恢复库时,如果恢复到原库会将表中数据覆盖,新增表不会删除
2、恢复库时,如果库不存在,则必须先创建空库