• 23.mysql数据库连接


    什么是 PyMySQL?

    PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。

    PyMySQL 安装 :

    在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装。如果还未安装,我们可以使用以下命令安装最新版的 PyMySQL:命令 : pip  install  pymysql,注:  在cmd里面可以直接执行 , 记住联网   

    连接数据库准备:

    主机地址 端口 用户 密码 数据库 编码-->存在中文的时候,连接需要添加charset='utf8',否则中文显示乱码

    查询实例

    import pymysql
    #主机地址 端口 用户 密码 数据库
    dbConf = {
    "host":"aespowsp-m.dbsit.sfdc.com.cn",
    "user":"aespowsp",
    "password":"deevmFnsWb",
    "database":"aespowsp",#连接已存在的数据库名称,若数据库不存在则该数据不填写
    "port":3306,
    "charset":"utf8"#编码-->存在中文的时候,连接需要添加charset='utf8',否则中文显示乱码
    }

    #1、打开数据库,连接数据库
    #方法一
    #conn = pymysql.connect(host="aespowsp-m.dbsit.sfdc.com.cn", user="aespowsp", password="deevmFnsWb",database="aespowsp", port=3306, charset="utf8")
    #方法二
    conn = pymysql.connect(**dbConf)
    #2、获取游标
    cur = conn.cursor()

    # 3、查询执行SQL,返回受影响的行数
    #不带条件的查询
    # sql = "select * from student"
    # reCount = cur.execute(sql) # 返回受影响的行数
    # print(reCount)
    # data_0 = cur.fetchone() #读取一行数据,返回类型时tuple,从数据库里读出来的数据类型与数据库新建时的数据类型一致
    # print(data_0)
    # data_1 = cur.fetchall() #读取所有数据,返回的是tuple类型
    # print(data_1)
    #带条件的查询
    sql = "select * from student where age=%s" #sql语句中的值无论是int类型还是什么类型都用%s占位
    reCount = cur.execute(sql,(12,)) # 返回受影响的行数,参数用tuple传参
    print(reCount)
    data_0 = cur.fetchone() #读取一行数据,返回类型时tuple
    print(data_0)
    print(type(data_0[1])) #从数据库里读出来的数据类型与数据库新建时的数据类型一致


    #4、关闭游标
    cur.close()
    #5、关闭数据库连接
    conn.close()
    插入实例
    import pymysql
    #主机地址 端口 用户 密码 数据库
    dbConf = {
    "host":"aespowsp-m.dbsit.sfdc.com.cn",
    "user":"aespowsp",
    "password":"deevmFnsWb",
    "database":"aespowsp",#连接已存在的数据库名称,若数据库不存在则该数据不填写
    "port":3306,
    "charset":"utf8"#编码-->存在中文的时候,连接需要添加charset='utf8',否则中文显示乱码
    }

    #1、打开数据库,连接数据库
    #方法一
    #conn = pymysql.connect(host="aespowsp-m.dbsit.sfdc.com.cn", user="aespowsp", password="deevmFnsWb",database="aespowsp", port=3306, charset="utf8")
    #方法二
    conn = pymysql.connect(**dbConf)
    #2、获取游标
    cur = conn.cursor()

    # 3、插入执行SQL,返回受影响的行数
    #直接插入
    sql = "insert into student values('yayaya',13,'female')"
    reCount = cur.execute(sql) # 返回受影响的行数

    #直接插入法-只输入不能为空的值
    sql = "insert into student(name,age)values('aa',14)" #注意数据库里的title不需要再加引号
    reCount = cur.execute(sql) # 返回受影响的行数

    #元祖插入法--通过元祖来传递数据
    sql = "insert into student(name,age)values(%s,%s)" #注意数据库里的title不需要再加引号
    reCount = cur.execute(sql,('python',12)) # 返回受影响的行数

    #字典插入法--通过字典来传递数据
    sql = "insert into student(name,age)values(%(name)s,%(age)s)" #注意数据库里的title不需要再加引号
    sqlDict={"name":"ee","age":15 }
    reCount = cur.execute(sql,sqlDict) # 返回受影响的行数

    #列表插入法--通过字典来传递数据
    sql = "insert into student(name,age)values(%s,%s)" #注意数据库里的title不需要再加引号
    sqlList=[("uu",15 ),("yy",15 )]
    reCount = cur.executemany(sql,sqlList) # 返回受影响的行数

    #4、提交
    cur.execute('commit') #有数据更新需要提交
    #5、关闭游标
    cur.close()
    #6、关闭数据库连接
    conn.close()





  • 相关阅读:
    KVC与KVO的进阶使用
    Qt之图形视图框架
    Qt之QRoundProgressBar(圆形进度条)
    Qt之绘制闪烁文本
    Qt之QCustomPlot(图形库)
    Qt之事件系统
    iOS 保持界面流畅的技巧
    iOS开发数据库SQLite的使用
    Qt之保持GUI响应
    Qt之QSS(QDarkStyleSheet)
  • 原文地址:https://www.cnblogs.com/yangyangchunchun/p/10373128.html
Copyright © 2020-2023  润新知