zoukankan      html  css  js  c++  java
  • 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( )

  • 相关阅读:
    C语言得到当前系统时间
    【solr这四个主题】在Tomcat 部署Solr4.x
    MySQL 一般查询日志(General Query Log)
    iOS7 UIKit动力学-碰撞特性UICollisionBehavior 上
    Java Persistence with MyBatis 3(中国版) 第五章 与Spring集成
    Kaggle入门——使用scikit-learn解决DigitRecognition问题
    Effective C++:规定34:区分接口继承和实现继承
    Critical thinking and Thoughtful writing
    我的时间,GTD做主
    jquery自己主动旋转的登录界面的背景代码登录页背景图
  • 原文地址:https://www.cnblogs.com/xshan/p/8157261.html
Copyright © 2011-2022 走看看