python 3.6连接MySQL

python3.6不支持 import MySQLdb 改用为 import pymysql 模块,需要自行安装模块pymysql。

  1. python3.6安装模块pymysql

管理员命令行安装: pip install pymysql

2:python3.6连接mysql数据库

# -*- coding:utf-8 -*-
import pymysql
conn = pymysql.connect(
  user="root",
  password="xxxxxx",
  port=3306,
  host="127.0.0.1",   #本地数据库  等同于localhost
  db="MYSQL",      #数据库名
  charset="utf8"
)
cur = conn.cursor()      #获取对应的操作游标
query = 'select count(*) from tableName'
cur.execute(query)
cur.close()
conn.commit()
conn.close()

请注意连接数据库时要保证数据库已经开启,否则连接失败。

  1. 获取SQL语句得到的结果给Python
    使用 fetchone() 方法获取一条数据,返回一个tuple
query = "select * from consume where studentId='1111111111' and Jdate = '2014-11-23';"
cur.execute(query)
data = cur.fetchone()
print(data)

结果:
('1111111111', '111122', '良乡开水机 ', datetime.date(2014, 11, 23), datetime.timedelta(0, 2118), -4)
使用 fetchall() 方法获取多条数据,返回一个tuple,每条数据又是一个tuple

query = "select * from consume where studentId='1120131007' and Jdate = '2014-11-23';"
cur.execute(query)
data = cur.fetchall()
print(data)

结果如下:

(('1120131007', '159722', '良乡         ', 
datetime.date(2014, 11, 23), datetime.timedelta(0, 2118), -4), 
('1120131007', '159722', '良乡         ', 
datetime.date(2014, 11, 23), datetime.timedelta(0, 38805), -4), 
('1120131007', '159722', '良乡          ', 
datetime.date(2014, 11, 23), datetime.timedelta(0, 46505), -1180), 
('1120131007', '159722', '后勤             ',
 datetime.date(2014, 11, 23), datetime.timedelta(0, 44232), -1), 
('1120131007', '159722', '良乡            ', 
datetime.date(2014, 11, 23), datetime.timedelta(0, 67821), -180), 
('1120131007', '159722', '良乡       ', 
datetime.date(2014, 11, 23), datetime.timedelta(0, 67796), -200), 
('1120131007', '159722', '良乡            ',
 datetime.date(2014, 11, 23), datetime.timedelta(0, 67770), -44))
  1. 参数传递
    以下代码使用变量向SQL语句中传递参数:
user_id = "test123"
password = "password"

con.execute('insert into Login values("%s", "%s")' % \
             (user_id, password))

或者:

sql = "SELECT * FROM EMPLOYEE \
       WHERE INCOME > '%d'" % (1000)
cursor.execute(sql)

在或者:

query = 'insert into consume (studentId, cardId, address, Jdate, Jtime, money) values (%s, %s, %s, %s, %s, %s)'\
studentId = '1111111'
cardId ='1111'
address = "xxxx"
Jdate = "xxxx"
Jtime = "xxxx"
money = "xxxx"
values = (studentId, cardId, address, Jdate, Jtime, money)
cur.execute(query, values)
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 下面用到的软件:1、Python版本:3.6.22、Mysql版本:Mysql64位3、操作Mysql的图形界面软...
    Clemente阅读 1,343评论 0赞 0
  • 转载,觉得这篇写 SQLAlchemy Core,写得非常不错。不过后续他没写SQLAlchemy ORM... ...
    非梦nj阅读 5,647评论 1赞 14
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,183评论 19赞 139
  • Python 面向对象Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对...
    顺毛阅读 4,415评论 4赞 16
  • arp攻击 优点:不需要无线网卡 缺点:查到敌方的ip有一点麻烦,你可以先断一个人试试,如果看他那里还管用你就换一...
    萌新pp阅读 809评论 0赞 1

友情链接更多精彩内容