美文网首页
python操作数据库之Mysql

python操作数据库之Mysql

作者: 雪飘千里 | 来源:发表于2019-12-30 16:13 被阅读0次

集群环境:CDH5.8
python3版本:3.6.8
pip3版本:18.1

#!/usr/bin/python3
# -*- coding: UTF-8 -*-

# 导包
import pymysql

# 连接database
mysql_conn = pymysql.connect(host="x.x.x.x",port=3306, user="xxx",password=xxx",database="hello_world",charset="utf8mb4")
# 得到一个可以执行SQL语句的光标对象
mysql_cursor = mysql_conn.cursor()

try:
    # sql查询语句
    sql = "select name,age from user where name=%s";
    # 执行sql语句
    mysql_cursor.execute(sql,(str(name)))
    # 获取查询结果
    result = mysql_cursor.fetchone()
    print(result)
    if(result != None):
        sql = "update user set age=%s where name =%s"
        mysql_cursor.execute(sql,(18,result[0]))
    else:
        sql = "insert into  user(creator,name,age) values(%s,%s,%s)"
        mysql_cursor.execute(sql,('zk','zk',18))
    # 提交到数据库执行
    mysql_conn.commit()
except Exception as e:
    print(e)
    # 发生错误时回滚
    mysql_conn.rollback()

# 关闭数据库连接
mysql_conn.close()

备注:

    1. 参数设置
      sql中的参数使用%s占位,多个参数组成一个元祖
    1. sql执行结果
mysql_cursor.execute("select name,age from user where name=%s",(str(name)))
  • fetchone(): 该方法获取下一个查询结果集。结果集是一个对象
    result = mysql_cursor.fetchone()
    # 这里,可以使用键值对的方法,由键名字来获取数据
    # name = result["name"]
    # age = result["age"]
    name = result[0]
    age = result[1]
    
  • fetchall():接收全部的返回结果行.
      result = mysql_cursor.fetchall()
      for result in results:
          # 这里,可以使用键值对的方法,由键名字来获取数据
          # name = result["name"]
          # age = result["age"]
          name = result[0]
          age = result[1]
    
    • rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数,如果是查询时,是查询结果集的条数
     sql = "update user set age=%s where name =%s"
     mysql_cursor.execute(sql,(18,result[0]))
     count = mysql_cursor.rowcount
    

相关文章

网友评论

      本文标题:python操作数据库之Mysql

      本文链接:https://www.haomeiwen.com/subject/csysoctx.html