python和mysql的交互_MySQL与Python的交互

1.交互类型

1.安装引入模块

安装mysql模块,在windows和ubuntu中

399dc49b20ef?from=jiantop.com

windows里安装mysql模块

399dc49b20ef?from=jiantop.com

Linux里安装mysql模块

在文件中引入模块

import pymysql

1.Connection对象

用于建立与数据库的连接

创建对象:调用connect()方法

conn=connect(参数列表)

参数host:连接的mysql主机,如果本机是'localhost'

参数port:连接的mysql主机的端口,默认是3306

参数db:数据库的名称

参数user:连接的用户名

参数password:连接的密码

参数charset:通信采用的编码方式,默认是'gb2312',要求与数据库创建时指定的编码一致,否则中文会乱码

2.对象的方法

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()

3.对象的属性

rowcount只读属性,表示最近一次execute()执行后受影响的行数

connection获得当前连接对象

2.增删改查(CRUD)

1.增

创建testInsert.py文件,向学生表中插入一条数据

#encoding=utf-8

import pymysql

try:

conn=pymysql.connect(host='localhost',port=3306,db='test1',user='root',passwd='mysq

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值