• Pymyaql操作数据库


    Pymyaql操作数据库

    Python3中专门用于操作Mysql数据库的模块。

    一、 导入模块

    import pymysql

    二、 创建连接

    conn=pymysql.connect(host=’127.0.0.1’,port=3306,user=’root’,passwd=’root’,db=’数据库名’,charset=’utf8’)

    三、创建游标

    cursor=conn.cursor()

    三、 执行SQL语句

    1、执行固定的sql语句

    cursor.execute(‘要执行的SQL语句’)

    2、执行可变的sql语句

    (1)增

    A.字符串拼接可以执行(会产生SQL注入的风险)

    Inp=input(‘请输入内容’)

    Sql=‘insert into 表名(列名) values (“%s”)’

    Sql=Sql % (Inp,)

    cursor.execute(Sql)

    B、参数传递(推荐使用)

    Inp=input (‘请输入内容:’)

    cursor.execute(‘ insert into 表名(列名)values(%s)’,Inp)

    插入多个值:

    cursor.execute(‘insert into 表名(列名,列名) values(%s,%s),(‘值1’,‘值2’)

    l=[(‘值1’,’值2’),(‘值3’,’值4’)]

    cursor.executemany(‘insert into 表名(列名,列名)values(%s,%s)’,l)

    (2)删

    cursor.execute('delete from test1 WHERE id=%s',5)              #删除表test1中id为5的数据行

     (3)改

    cursor.execute('update test1 set age=%s WHERE sss=%s',(18,‘aaa’))    #更新test1表中sss列中aaa对应的age列的值为18。

    (4)査

    <a>fetch法

    result=cursor.fetchall()          #取出表中所有数据

    print (result)                         #将表中数据以元组的形式打印出来

    result=cursor.fetchone()        #取出表中第一条数据

    print (result)                         #将表中第一条数据以元组的形式打印出来

    result=cursor.fetchmany(3)        #取出表中前3条数据

    print (result)                         #将表中前3条数据以元组的形式打印出来

    注:使用fetch的方法取数据时,游标会依次向下移动,即:

    result=cursor.fetchone()        #取出表中第一条数据

    print (result)                         #将表中第一条数据以元组的形式打印出

    result=cursor.fetchone()        #取出表中第二条数据

    print (result)                         #将表中第二条数据以元组的形式打印出

    此时,可以使用scroll的方法移动游标。cursor.scroll(0,mode=’absolute’) #游标返回原点(绝对模式)

    cursor.scroll(-2,mode=’relative’)    #游标向上移动2个(相对模式)

    <b>将表中数据以字典的形式返回:

    创建游标:cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)

    取数据:cursor.execute(‘select * from 表名’)

                     print (cursor.fetchall())

    如果只取个别列的数据,只需将*改成对应列的列名即可。

    <c>取出刚插入数据行的自增列的对应数据:

     cursor.execute(‘insert into 表名(列名)values(%s)’,(‘值’))

    conn.commit()

    print (cursor.lastrowid)            #刚插入数据行的自增列的数字

    四、 提交事务

    在创建了要执行的SQL语句后,并不会立即执行,而是需要提交事务,否则创建无效。

    conn.commit()

    五、 关闭游标

    cursor.close( )

    六、 关闭连接

    conn.close( )

  • 相关阅读:
    使用线程加载指定目录下的所有子目录和文件名称到TreeView中
    《C++代码设计与重用》读后感
    无限分类编辑移动栏目代码
    查询数据库中所有记录总数不为0的数据表名称
    DES,RC2,Rijndael, TripleDes,RSA, MD5, SHA1通用的安全密码类
    SQL过滤掉空格和其他特殊字符函数
    @property详解:nonatomic,retain (转)
    UITextField控件处理键盘弹出时遮住输入框的问题
    iphone 定时器的使用
    苹果官方例子代码
  • 原文地址:https://www.cnblogs.com/xshan/p/8157261.html
Copyright © 2020-2023  润新知