• Mysql-python连接操作数据库


    使用python连接操作数据库

    --》下载配置python环境

    --》推荐安装PyMySQL 库:PyMySQL 是一个纯Python 实现的MySQL 客户端操作库,支持事务、存储过程、批量执行等

    使用命令:pip install pymysql

    --》连接数据库脚本

     1 # 导入模块
     2 import pymysql
     3 # 连接数据库
     4 conn = pymysql.connect(
     5     host='localhost',
     6     port=3306,
     7     user='root',
     8     password='123456',
     9     db='ceshi1',
    10     charset='utf8'
    11 )
    12 # 游标对象:用于执行查询和获取结果
    13 cursor = conn.cursor()
    14 
    15 sql = 'select * from student'
    16 # execute()方法:执行sql语句、将结果从数据库获取到客户端
    17 rows = cursor.execute(sql)
    18 # 关闭指针,并释放资源
    19 cursor.close()
    20 # 关闭数据库连接,并释放资源
    21 conn.close()
    22 
    23 if rows >= 0:
    24     print('数据库连接成功')
    25 else:
    26     print('数据库连接失败')

     --》新增单条数据脚本

     1 import pymysql
     2 
     3 conn = pymysql.connect(
     4     host='localhost',
     5     port=3306,
     6     user='root',
     7     password='123456',
     8     db='ceshi1',
     9     charset='utf8'
    10 )
    11 cursor=conn.cursor()
    12 sql = "insert into student(studentNo,name_1,class) values('010','测试人员1','测试1班')"
    13 rows = cursor.execute(sql)
    14 # 提交当前事务
    15 conn.commit()
    16 cursor.close()
    17 # 关闭数据库连接
    18 conn.close()

     --》新增多条数据脚本

     1 # 新增多条executemany
     2 import pymysql
     3 # 连接数据库
     4 conn = pymysql.connect(
     5     host='localhost',
     6     port=3306,
     7     user='root',
     8     password='123456',
     9     db='ceshi1',
    10     charset='utf8'
    11 )
    12 cursor=conn.cursor()
    13 # sql = 'INSERT INTO 表名 VALUES(%s,%s,%s)' 无论什么类型,都使用%s作为占位符
    14 # rows=cursor.executemany(sql,param) 
    15 # param = ((username1, salt1, pwd1), (username2, salt2, pwd2), (username3, salt3, pwd3))
    16 sql = 'insert into student(studentNo,name_1,class) values(%s,%s,%s)'
    17 param =(('011','多条新增1','新增1班'),('012','多条新增2','新增2班'),('013','多条新增3','新增3班'))     
    18 rows = cursor.executemany(sql,param)
    19 # 提交当前事务
    20 conn.commit()
    21 cursor.close()
    22 # 关闭数据库连接
    23 conn.close()

    --》使用pymysql.cursors.DictCursor类批量添加数据

     1 import pymysql
     2 # 连接数据库
     3 conn = pymysql.connect(
     4     host='localhost',
     5     port=3306,
     6     user='root',
     7     password='123456',
     8     db='ceshi1',
     9     charset='utf8'
    10 )
    11 # pymysql获取数据时提供了fetchone()和fetchall()函数来获取结果集,这俩种函数在处理大数据量时会消耗大量内存
    12 # pymysql.cursors.DictCursor类,SSCursor游标类用来解决数据量大的问题
    13 cursor=conn.cursor(pymysql.cursors.DictCursor)
    14 param = []
    15 
    16 for i in range(1,100):
    17     param.append([i,'批量1','批量'])
    18 
    19 try:
    20     sql = "insert into student(studentNo,name_1,class) values(%s,%s,%s)" 
    21     # 批量操作
    22     cursor.executemany(sql,param)
    23     conn.commit()
    24 except Exception as e:
    25     print(e)
    26     conn.rollback()

    --》修改单条数据脚本

     1 # 导入模块
     2 import pymysql
     3 # 连接数据库
     4 conn = pymysql.connect(
     5     host='localhost',
     6     port=3306,
     7     user='root',
     8     password='123456',
     9     db='ceshi1',
    10     charset='utf8'
    11 )
    12 # 游标对象:用于执行查询和获取结果
    13 cursor = conn.cursor()
    14 
    15 sql = 'update student set class = %s where studentNo = %s'
    16 # execute()方法:执行sql语句、将结果从数据库获取到客户端
    17 rows = cursor.execute(sql,('修改数据','10'))
    18 conn.commit()
    19 # 关闭指针,并释放资源
    20 cursor.close()
    21 # 关闭数据库连接,并释放资源
    22 conn.close()

    --》修改多条数据脚本

     1 # 导入模块
     2 import pymysql
     3 # 连接数据库
     4 conn = pymysql.connect(
     5     host='localhost',
     6     port=3306,
     7     user='root',
     8     password='123456',
     9     db='ceshi1',
    10     charset='utf8'
    11 )
    12 # 游标对象:用于执行查询和获取结果
    13 cursor = conn.cursor()
    14 
    15 sql = 'update student set class = %s where studentNo = %s'
    16 rows = cursor.executemany(sql,[('多条数据1','10'),('多条数据2','11')])
    17 conn.commit()
    18 # 关闭指针,并释放资源
    19 cursor.close()
    20 # 关闭数据库连接,并释放资源
    21 conn.close()

    --》删除数据脚本,与新增脚本大致相同,只需要修改sql语句即可

    1 # 删除单条sql
    2 sql='delete from student where class= %s'
    3 rows=cursor.execute(sql,('10',)) 
    1 # 删除多条sql
    2 sql='delete from student where calss= %s'
    3 rows=cursor.executemany(sql,[('11'),('12')]) 

    --》查询数据脚本,与新增脚本大致相同,只需要修改sql语句即可

    使用fetchone()、fetchall()、fetchmany函数,查询数据存在内存中

     1 # 游标对象:用于执行查询和获取结果
     2 cursor = conn.cursor(pymysql.cursors.DictCursor)
     3 
     4 sql = 'select * from student'
     5 rows = cursor.execute(sql)
     6 # fetchone()
     7 print(cursor.fetchone())
     8 print(cursor.fetchone())
     9 print(cursor.fetchone())
    10 # fetchall()
    11 # print(cursor.fetchall())
      # print(cursor.fetchmany(2)) 12 conn.commit() 13 # 关闭指针,并释放资源 14 cursor.close() 15 # 关闭数据库连接,并释放资源 16 conn.close()

    fetchone()运行结果

     

     fetchall()运行结果

     fetchmany()运行结果

    --》cursor游标移动脚本

    1 # 第一个值为移动的行数,整数为向下移动,负数为向上移动,mode指定了是相对当前位置移动,还是相对于首行移动
    2 cursor.scroll(1,mode='relative')  # 相对当前位置移动
    3 cursor.scroll(2,mode='absolute') # 相对绝对位置移动 
  • 相关阅读:
    JVM的即时编译器JIT之简单介绍
    JS脚本动态给标签控件添加事件
    getParameterMap的使用
    IOS开发中判断文件是否存在,不存在则拷贝
    javaweb中解决Cookie中文乱码问题
    网页中的上标和下标实现
    Java中枚举的使用
    ASP.NET 首页性能的4大做法
    httpHandlers和httpModules接口介绍 (5)
    css+div排版如何支持所有浏览器
  • 原文地址:https://www.cnblogs.com/katyhudson/p/12610421.html
Copyright © 2020-2023  润新知