使用Python访问MySql数据库
一、 使用Python访问MySql数据库
1、 安装pymysql
2、 连接数据库,获取连接对象
3、 通过连接对象获取游标对象
4、 通过游标对象执行sql语句
5、 获取查询结果
6、 关闭游标
二、 连接步骤
1、 安装pymysql的数据库访问组件
2、 连接数据库获取游标对象
1获取连接对象
conn=pymysql.connect("localhost","root","java","studb")
print(type(conn))
2通过链接对象获取游标对象
cursor=conn.cursor()
print(type(cursor))
3、 执行增加修改删除操作
3执行sql
sql="INSERT INTO student(sname,sex,address,birthday,classid) VALUES('张飞','男','北京','1998-12-11',1)"
将传递的参数使用%s进行占位
sql="INSERT INTO student(sname,sex,address,birthday,classid) VALUES(%s,%s,%s,%s,%s)"
try:
cursor.execute(sql,('司马昭','男','长沙','1997-12-11','4'))
print("执行成功",cursor.rowcount)
conn.commit()#提交事务
except:
print("执行失败!")
finally:
conn.close()
Demo2.py
import pymysql#引入数据库组件
1获取连接对象
conn=pymysql.connect("localhost","root","java","studb")
print(type(conn))
2通过链接对象获取游标对象
cursor=conn.cursor()
print(type(cursor))
3执行sql
将传递的参数使用%s进行占位
sql="update student set sname=%s,sex=%s,address=%s,birthday=%s,classid=%s where sid=%s"
try:
cursor.execute(sql,('姜维','男','天水郡','1997-12-11','4','6'))
print("执行成功",cursor.rowcount)
conn.commit()#提交事务
except:
print("执行失败!")
finally:
conn.close()
Demo3.py
import pymysql#引入数据库组件
1获取连接对象
conn=pymysql.connect("localhost","root","java","studb")
print(type(conn))
2通过链接对象获取游标对象
cursor=conn.cursor()
print(type(cursor))
3执行sql
将传递的参数使用%s进行占位
sql="delete from student where sid=%s"
try:
cursor.execute(sql,('6'))
print("执行成功",cursor.rowcount)
conn.commit()#提交事务
except:
print("执行失败!")
4、 获取结果集对象
import pymysql#引入数据库组件
1获取连接对象
conn=pymysql.connect("localhost","root","java","studb")
print(type(conn))
2通过链接对象获取游标对象
cursor=conn.cursor()
print(type(cursor))
3执行sql
sql="select * from student"
try:
cursor.execute(sql)
print("执行成功",cursor.rowcount)
rst=cursor.fetchall()
print(type(rst))
#print(rst)
for row in rst:#从集合中获取记录
for i in range(0,6):#从记录中获取列值
print(row[i])#获取列值
print("=======================")
except:
print("执行失败!")
5、 将结果封装在学生的对象集合中
(1) 创建学生类student.py
class Student(object):
sid=0;
sname="无名氏"
sex="男"
address="未知"
birthday="1995-01-01"
classid="1"
def Student(self,sname,sex,address,sdate,cid):
self.sname=sname
self.sex=sex
self.address=address
self.birthday=sdate
self.classid=cid
(2) 将结果及数据转为学生集合
import pymysql#引入数据库组件
from com.bean.student import Student #从com.bean.student文件中引入Student类
1获取连接对象
conn=pymysql.connect("localhost","root","java","studb")
print(type(conn))
2通过链接对象获取游标对象
cursor=conn.cursor()
print(type(cursor))
3执行sql
sql="select * from student"
try:
cursor.execute(sql)
print("执行成功",cursor.rowcount)
rst=cursor.fetchall()
print(type(rst))
lsst=[]#准备学生数组
#print(rst)
######封装学生数据到集合######################################
for row in rst:#从集合中获取记录
# 将表的字段值设置到学生对象中
st=Student()
st.sid=row[0]
st.sname = row[1]
st.sex = row[2]
st.address = row[3]
st.birthday = row[4]
st.classid = row[5]
#################################
lsst.append(st)#将学生对象设置到集合
##############################################################
for st in lsst:
print(st.sid,"\t",st.sname,"\t",st.sex,
"\t",st.address,"\t",st.birthday,"\t",st.classid)
print("=============================================")
print(lsst)
except:
print("执行失败!")
6、 编写数据库执行的工具类dbutil.py,处理数据库连接和各种sql语句
近期评论