如何用Python操作数据库?

1.安装引入模块

  • 安装MySQL模块,在windows和ubuntu中
 
如何用Python操作数据库?

文章插图
 
windows里安装mysql模块
如何用Python操作数据库?

文章插图
 
linux里安装mysql模块
  • 在文件中引入模块import pymysql
 
2.Connection对象
  • 用于建立与数据库的连接
  • 创建对象:调用connect()方法
  • conn=connect(参数列表)
  • 参数host:连接的mysql主机,如果本机是'localhost'
  • 参数port:连接的mysql主机的端口,默认是3306
  • 参数db:数据库的名称
  • 参数user:连接的用户名
  • 参数password:连接的密码
  • 参数charset:通信采用的编码方式,默认是'gb2312',要求与数据库创建时指定的编码一致,否则中文会乱码
3.对象的方法
  • close()关闭连接
  • commit()事务,所以需要提交才会生效
  • rollback()事务,放弃之前的操作
  • cursor()返回Cursor对象,用于执行sql语句并获得结果
Cursor对象
  • 执行sql语句
  • 创建对象:调用Connection对象的cursor()方法
  • cursor1=conn.cursor()
对象的方法
  • close()关闭
  • execute(operation [, parameters ])执行语句,返回受影响的行数
  • fetchone()执行查询语句时,获取查询结果集的第一个行数据,返回一个元组
  • next()执行查询语句时,获取当前行的下一行
  • fetchall()执行查询时,获取结果集的所有行,一行构成一个元组,再将这些元组装入一个元组返回
  • scroll(value[,mode])将行指针移动到某个位置
  • mode表示移动的方式
  • mode的默认值为relative,表示基于当前行移动到value,value为正则向下移动,value为负则向上移动 。相对的
  • mode的值为absolute,表示基于第一条数据的位置,第一条数据的位置为0,绝对的 。
举例便于理解
# 导入Python操作mysql的模块import pymysql# 获取连接对象conn = pymysql.connect(host='127.0.0.1', user='root', password='123456', database='python01', port=3306, charset='utf8')# 获取执行工具cur = conn.cursor()# sql语句,增删改#sql = 'select birthday from t_user'sql = 'select id,name,pwd,birthday from t_user'# 执行,返回值 。如果是增删改,返回受影响的行数,如果是查询,返回查询的行数count = cur.execute(sql)print('查询的结果有%s条数据'%count)# 获取第一行dateOne = cur.fetchone()print(dateOne)# 向上移动一行cur.scroll(-1)# 向下移动一行cur.scroll(1)cur.scroll(1,mode='absolute') 绝对的,这里指的是第一行cur.scroll(1,mode='relative') 相对的#获取所有行的数据dataAll = cur.fetchall()print(dataAll)for temp in dataAll: print(temp) print(dataAll[-1][2]) #dataAll[-1]得到的是一个用户所有的信息,dataAll[-1][2]获取最后一个人的密码for temp in cur: print(temp)s = 'id:%s,name:%s,pwd:%s,birthday:%s'for temp in dataAll: print(s%(temp[0],temp[1],temp[2],temp[3]))# 关闭cur.close()conn.close()4.对象的属性
  • rowcount只读属性,表示最近一次execute()执行后受影响的行数
  • connection获得当前连接对象
 
增删改查
1.增
  • 创建testInsert.py文件,向学生表中插入一条数据
#encoding=utf-8import pymysqltry: conn=pymysql.connect(host='localhost',port=3306,db='test1',user='root',passwd='mysql',charset='utf8') cs1=conn.cursor() count=cs1.execute("insert into students(sname) values('张良')") print(count) conn.commit() cs1.close() conn.close()except Exception,e: print(e)2.修改
  • 创建testUpdate.py文件,修改学生表的一条数据
#encoding=utf-8import pymysqltry: conn=pymysql.connect(host='localhost',port=3306,db='test1',user='root',passwd='mysql',charset='utf8') cs1=conn.cursor() count=cs1.execute("update students set sname='刘邦' where id=6") print(count) conn.commit() cs1.close() conn.close()except Exception,e: print(e)3.删除
  • 创建testDelete.py文件,删除学生表的一条数据
#encoding=utf-8import pymysqltry: conn=pymysql.connect(host='localhost',port=3306,db='test1',user='root',passwd='mysql',charset='utf8') cs1=conn.cursor() count=cs1.execute("delete from students where id=6") print(count) conn.commit() cs1.close() conn.close()except Exception as e: print(e)4.查
  • 创建testSelectOne.py文件,查询一条学生信息
 


推荐阅读