python 操作数据库
Posted blogbo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 操作数据库相关的知识,希望对你有一定的参考价值。
pymysql安装及python数据库连接
pip install PyMSQL import pymysql db = pymysql.connect(‘数据库ip‘,‘用户‘,‘密码‘,‘数据库‘) #打开数据库连接 cursor.execute(‘select version()‘) #使用execute()方法执行sql语句 data = cursor.fetchone() #使用fetchone()方法获取单条数据 print(‘database version:%s‘%data) db.close #关闭数据库连接
创建表操作
import pymysql db = pymsql.connect(‘localhost‘,‘testuser‘,‘test123‘,‘testdb‘) #打开数据库连接 cursor = db.cursor() #使用cursor()方法创建一个游标对象 cursor cursor.execute(‘drop table if exists employee‘) #使用execute()方法执行sql,如果表存在则删除 sql = ‘‘‘create table employee(first_name char(20) not null,last_name char(20),age int,sex char(1),income float)‘‘‘ cursor.execute(sql) db.close() #关闭数据库连接
操作数据
#插入操作 import pymysql db = pymysql.connect(‘localhost‘,‘testuser‘,‘test123‘,‘testdb‘) #打开数据库连接 cursor = db.cursor() #使用cursor()方法获取操作游标 sql1 = ‘‘‘insert into employee(first_name,last_name,age,sex,income) values(‘mac‘,‘mohan‘,20,‘m‘,2000)‘‘‘#sql插入语句 try: cursor.execute(sql) #执行sql语句 db.commit() #提交到数据库执行 except: db.rollback() #如果发生错误则回滚 #查询操作 sql2 = ‘select * from employee where incom >%s‘%(1000) try: cursor.execute(sql) #执行sql语句 results = cursor.fetchall() #获取所有记录列表 for now in results: fname = row[0] lname = row[1] age = row[2] sex = row[3] income = row[4] print(‘fname = %s,lname = %s,age = %s,incom = %s‘)%(fname,lname,age,sex,income) except: print(‘Error:unable to fetch data‘) db.close() #关闭数据库 #更新操作 sql3 = (‘update employee set age = age+1 where sex = %s‘)%(‘M‘) try: cursor.execute(sql) db.commit() #提交到数据库执行 except: db,rollback() db.close() #删除操作 sql4 = ‘delete from employee where age>%s‘%20 try: cursor.execute(sql) db.commit except: db.rollback() db.close
数据库备份
#单库备份 mysqldump -uroot -p123 db1 > db1.sql #mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql mysqldump -uroot -p123 db1 table1 table2 > db1-table1-table2.sql #多库备份 mysqldump -uroot -p123 --databases db1 db2 mysql db3 > db1_db2_mysql_db3.sql #备份所有库 mysqldump -uroot -p123 --all-databases > all.sql
以上是关于python 操作数据库的主要内容,如果未能解决你的问题,请参考以下文章
[未解决问题记录]python asyncio+aiohttp出现Exception ignored:RuntimeError('Event loop is closed')(代码片段