Python中操作MySql
创建数据库表
在Python程序中,可以使用execute()在数据库中创建一个新表。下面的实例代码演示了在PyMySQL数据库中创建新表student的过程。
【示例】创建表student
import pymysql
db = pymysql.connect("localhost","root","root","python_db")
# 创建游标对象
cursor=db.cursor()
try:
# 使用execute()方法执行sql,如果表存在则删除
cursor.execute("drop table if exists student")
# 创建表 sql
sql= '''
create table student(
sno int(8) primary key auto_increment,
sname char(30) not null,
sex varchar(5),
age int(2),
score float(3,1)
)
'''
cursor.execute(sql)
print('创表成功')
except Exception as e:
print(e)
print("创表失败")
finally:
db.close()
数据库插入操作
在Python程序中,可以使用SQL语句向数据库中插入新的数据信息。
【示例】向student表中插入数据信息
import pymysql
db=pymysql.connect("localhost", "root", "root", 'python_db')
cursor = db.cursor()
sql= '''
insert into student(sname,sex,age,score) values(%s,%s,%s,%s)
'''
try:
cursor.execute(sql, ('李四', 'man', 25, 99.5))
# 提交事务
db.commit()
print('插入成功')
except Exception as e :
print(e)
# 如果出现异常,回滚
db.rollback()
print("插入失败")
finally:
db.close()
【示例】向student表同时插入多条数据
import pymysql
db = pymysql.connect("localhost", "root", "root", "python_db")
cursor = db.cursor()
sql='''
insert into student(sname, sex, age, score) values(%s,%s,%s,%s)
'''
args = [("王五","man",23,80),("马二","woman",20,90)]
try:
cursor.executemany(sql,args)
db.commit()
print("插入成功")
except Exception as e:
print(e)
print("插入失败")
finally:
db.close()
数据库查询操作
Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。
fetchone(): 该方法获取下一个查询结果集。结果集是一个对象
fetchall(): 接收全部的返回结果行.
rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数。
import pymysql
db=pymysql.connect("localhost","root","root","python_db")
cursor=db.cursor()
sql = 'select * from student '
try:
cursor.execute(sql)
#获取结果
stus = cursor.fetchall()
print(stus)
for stu in stus:
sno = stu[0]
sname = stu[1]
sex = stu[2]
age = stu[3]
score = stu[4]
print("sno:",sno,"sname:",sname,"sex:",sex,"age:",age,'score:',score)
except Exception as e:
print(e)
print("查询失败")
finally:
db.close()
数据库更新操作
在Python程序中,可以使用update语句更新数据库中数据信息。
import pymysql
db = pymysql.connect("localhost","root","root","python_db")
cursor = db.cursor()
sql= 'update student set score=%s where sno=%s'
try:
cursor.execute(sql,(92,3))
db.commit()
print("修改成功")
except Exception as e :
print("修改失败")
print(e)
db.rollback()
finally:
db.close()
数据库删除操作
在Python程序中,可以使用delete语句删除数据库中的数据信息
【示例】删除年龄小于25的学生
import pymysql
db=pymysql.connect("localhost","root","root","python_db")
cursor=db.cursor()
sql = 'delete from student where age<25'
try:
cursor.execute(sql)
db.commit()
print('删除成功')
except Exception as e:
print(e)
print("删除失败")
finally:
db.close()
nt where age<25’
try:
cursor.execute(sql)
db.commit()
print(‘删除成功’)
except Exception as e:
print(e)
print(“删除失败”)
finally:
db.close()