• python高级之操作数据库


    python高级之操作数据库

    本节内容

    1. pymysql介绍及安装
    2. 使用pymysql执行sql
    3. 获取新建数据自增ID
    4. fetch数据类型设置

    1.pymysql介绍及安装

    在python2中连接数据库使可以使用mysqldb模块,为什么在python3中使用pymysql模块呢?因为在python2中mysqldb和pymysql都可以操作数据库,但是当python升级到3以后,pymysql模块支持python3了,但是mysqldb模块目前还不支持python3,所以用python3的小伙伴们还是先用pymysql吧。pymysql和mysqldb的使用方法基本相同。

    安装pymysql可以使用pip安装:

     1 pip3 install pymysql 
    

    安装完成之后在python解释器中执行import pymysql如果不报错说明安装成功了。

    2.使用pymysql执行sql

     1 import pymysql  # 导入模块
     2 
     3 conn=pymysql.connect(host="192.168.12.120",port=3306,user="root",passwd="123456",db="sql_example",charset="utf8")
     4 # 注意,这里传入的参数必须是关键字参数,不能省略关键字,否则将连接不上数据库
     5 # conn.autocommit()  # 如果设置了这个属性,则会自动commit sql语句,而不需要手动commit
     6 cursor=conn.cursor()  # 创建游标
     7 # cursor.execute("insert into class(caption) values('全栈二班')")
     8 
     9 r=cursor.execute("select * from class")  # 执行查询语句并返回查询的数据行数
    10 print(r)  # 打印行数
    11 # print(cursor.fetchall())  # 打印返回的所有数据,数据结构是元祖套元祖((),()),里面的一个元祖就是一行数据
    12 # print(cursor.fetchmany(num))  # 打印返回的num条数据,数据结构是元祖套元祖((),()),里面的一个元祖就是一行数据
    13 print(cursor.fetchone())   # 打印返回的数据中第一行数据,结构是只有一个元祖
    14 cursor.scrroll()  # 修改游标的位置
    15 
    16 conn.commit()  # 手动提交要执行的sql
    17 cursor.close()  # 关闭游标
    18 conn.close()  # 关闭连接

    注:在fetch数据时按照顺序进行,可以使用cursor.scroll(num,mode)来移动游标位置,如:

    • cursor.scroll(1,mode='relative') # 相对当前位置移动
    • cursor.scroll(2,mode='absolute') # 相对绝对位置移动

    3.获取新建数据自增ID

     1 conn = pymysql.connect(host="192.168.12.120",port=3306,user="root",passwd="123456",db="sql_example",charset="utf8")
     2 cursor = conn.cursor()
     3 cursor.executemany("insert into hosts(host,color_id)values(%s,%s)", [("1.1.1.11",1),("1.1.1.11",2)])
     4 ## executemany可以执行多条插入语句,后面接的数据需要是一个可迭代的对象,一般是列表里面套元祖或列表
     5 conn.commit()
     6 cursor.close()
     7 conn.close()
     8 
     9 # 获取最新自增ID
    10 new_id = cursor.lastrowid  # 通过cursor.lastrowid可以获取获取最新行的自增ID

    表里面只能有一个字段设置为自增ID。。。

    4.fetch数据类型设置

    关于默认获取的数据是元祖类型,如果想要获得字典类型的数据,即:

     1 conn = pymysql.connect(host="192.168.12.120",port=3306,user="root",passwd="123456",db="sql_example",charset="utf8")
     2 
     3 # 游标设置为字典类型
     4 cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
     5 r = cursor.execute("call p1()")
     6 
     7 result = cursor.fetchone()
     8 
     9 conn.commit()
    10 cursor.close()
    11 conn.close()
  • 相关阅读:
    吴裕雄--天生自然C语言开发:共同体
    吴裕雄--天生自然C语言开发:结构体
    吴裕雄--天生自然C语言开发:字符串
    吴裕雄--天生自然C语言开发:函数指针
    吴裕雄--天生自然C语言开发:指针
    吴裕雄--天生自然C语言开发:enum(枚举)
    100个容器周边项目,点亮你的容器集群技能树
    论云时代最经济的APM工具的姿势
    “弹性裸金属服务器”到底有那些特性?
    弹性裸金属服务器服务于市场的技术概要分析
  • 原文地址:https://www.cnblogs.com/huxianglin/p/5997334.html
Copyright © 2020-2023  润新知