• Python操作Mysql之基本操作


    pymysql

    python操作mysql依赖pymysql这个模块

    下载安装

    pip3 install pymysql

    操作mysql

    python操作mysql的时候,是通过”游标”来进行操作的。

    1、创建链接

    conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123', db='t1')

    分析:

    • host:表示链接的域名
    • port:链接的额端口
    • user:链接的数据库用户
    • passwd:数据库密码
    • db:要链接的表

    2、创建游标

    cursor = conn.cursor()

    3、执行SQL,并返回影响的行数

    effect_row = cursor.execute("mysql语句")

    说明:

    1、括号中接收的是纯mysql语句。

    2、返回的你执行的sql语句在数据库中影响的行数

    例子:

    effect_row = cursor.execute("update hosts set host = '1.1.1.2'")

    使用占位符:

      1 effect_row = cursor.execute("insert into tb1(nid,name,...) values(%s,%s,...)",(1,'haha',...))

    使用占位符,同时支持多条数据增加:

    • execute改为executemany
    • 后面格式化数据的时候,使用列表的方式,里面每次的操作用元组的方式包裹,每项数据间用逗号”,”;隔开。
      1 effect_row = cursor.executemany("insert into tb1(nid,name)values(%s,%s)", [(1,'haha'),(2,'xxx')])

    4、提交数据

    conn.commit()

    注意:

    数据必须提交,不然无法被保存。

    5、关闭游标

    cursor.close()

    6、关闭链接

    conn.close()

    操作mysql补充

    当数据库表打开了自动递增,我们增加的数据可以不用填写编号,数据库为我们每次添加的数据添加一个id;二这个id我们在增加数据操作的时候,是可以获取的。

    代码:

    new_id = cursor.lastrowid

    说明:

    获取的代码要写在commit()后面,在关闭操作的前面。

    问题:上面的操作是一条,获取的是对应的id,但是当增加的数据多条的时候,获取的结果?

    当有多条数据的时候,获取的id是最后一条数据的

    获取mysql数据

    因为是获取数据,并不对数据进行改动,所以此时可以不用执行,commit()

    1、获取单条数据

    row_1 = cursor.fetchone()

    2、获取所有的数据

    row_3 = cursor.fetchall()

    3、获取前n行数据

    row_2 = cursor.fetchmany(3)

    说明:

    1、python获取数据的时候,也是通过游标来进行数据定位的。

    2、这里的单条数据获取,和我们迭代器中的next很像。

    特殊:

    我们操作单数数据,操作一条数据,游标就会往后移一位,执行多条fetchone()的话,获取数据库的数据,是依次往下获取的。

    执行取前n行数据的时候,比如:fetchmany(3)就相当于执行了3条fetchone()

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

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

    4、fetch的数据类型

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

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    import pymysql
      
    conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123', db='t1')
      
    # 游标设置为字典类型,注意括号中的代码。
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
    r = cursor.execute("call p1()")
      
    result = cursor.fetchone()
      
    cursor.close()
    conn.close()
  • 相关阅读:
    【12c-多租户篇】Oracle 12c体系结构之多租户
    【12c-建库篇】Oracle 12c利用Create database手工创建数据库
    【12c-建库篇】Oracle 12c利用DBCA创建数据库
    【12c-安装篇】Oracle 12c软件安装
    redis单机安装
    MongoDB内置角色详解(自官方文档)
    MongoDB3.4创建用户
    MongoDB副本集常用管理命令
    使用keyfile安全认证搭建MongoDB副本集
    MongoDB参数详解之enableLocalhostAuthBypass
  • 原文地址:https://www.cnblogs.com/jayafs/p/6148995.html
Copyright © 2020-2023  润新知