python 实现数据库中数据添加、查询与更新的示例代码

一、前言

  最近做web网站的测试,遇到很多需要批量造数据的功能;比如某个页面展示数据条数需要达到10000条进行测试,此时手动构造数据肯定是不可能的,此时只能通过python脚本进行自动构造数据;本次构造数据主要涉及到在某个表里面批量添加数据、在关联的几个表中同步批量添加数据、批量查询某个表中符合条件的数据、批量更新某个表中符合条件的数据等。  

二、数据添加

  即批量添加数据到某个表中。

insert_data.py

import pymysql
import random
import time
from get_userinfo import get_userinfo
from get_info import get_info
from get_tags import get_tags
from get_tuser_id import get_utag

class DatabaseAccess():
  def __init__(self):
    self.__db_host = "xxxxx"
    self.__db_port = 3307
    self.__db_user = "root"
    self.__db_password = "123456"
    self.__db_database = "xxxxxx"
  # 连接数据库
  def isConnectionOpen(self):
    self.__db = pymysql.connect(
      host=self.__db_host,
      port=self.__db_port,
      user=self.__db_user,
      password=self.__db_password,
      database=self.__db_database,
      charset='utf8'
    )

  # 插入数据
  def linesinsert(self,n,user_id,tags_id,created_at):

    self.isConnectionOpen()
    # 创建游标
    global cursor
    conn = self.__db.cursor()
    try:
      sql1 = '''
      INSERT INTO `codeforge_new`.`cf_user_tag`(`id`, `user_id`,
      `tag_id`, `created_at`, `updated_at`) VALUES ({}, {},
      {}, '{}', '{}');
      '''.format(n,user_id,tags_id,created_at,created_at)

      # 执行SQL
      conn.execute(sql1,)
    except Exception as e:
      print(e)
    finally:
      # 关闭游标
      conn.close()
      self.__db.commit()

      self.__db.close()

  def get_data(self):

    # 生成对应数据 1000条
    for i in range(0,1001):
      created_at = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())
      # print(create_at)
      # 用户id
      tuserids = []
      tuserid_list = get_utag()
      for tuserid in tuserid_list:
        tuserids.append(tuserid[0])
      # print(tuserids)
      userid_list = get_userinfo()
      user_id = random.choice(userid_list)[0]
      if user_id not in tuserids:
        user_id=user_id

        # 标签id
        tagsid_list = get_tags()
        tags_id = random.choice(tagsid_list)[0]
        self.linesinsert(i,user_id,tags_id,created_at)

if __name__ == "__main__":
  # 实例化对象
  db=DatabaseAccess()
  db.get_data()

二、数据批量查询

select_data.py

import pymysql
import pandas as pd
import numpy as np

def get_tags():
  # 连接数据库,地址,端口,用户名,密码,数据库名称,数据格式
  conn = pymysql.connect(host='xxx.xxx.xxx.xxx',port=3307,user='root',passwd='123456',db='xxxx',charset='utf8')
  cur = conn.cursor()
  # 表cf_users中获取所有用户id
  sql = 'select id from cf_tags where id between 204 and 298'
  # 将user_id列转成列表输出
  df = pd.read_sql(sql,con=conn)
  # 先使用array()将DataFrame转换一下
  df1 = np.array(df)
  # 再将转换后的数据用tolist()转成列表
  df2 = df1.tolist()
  # cur.execute(sql)
  # data = cur.fetchone()
  # print(df)
  # print(df1)
  # print(df2)
  return df2
  conn.close()

三、批量更新数据

select_data.py

import pymysql
import pandas as pd
import numpy as np

def get_tags():
  # 连接数据库,地址,端口,用户名,密码,数据库名称,数据格式
  conn = pymysql.connect(host='xxx.xxx.xxx.xxx',port=3307,user='root',passwd='123456',db='xxxx',charset='utf8')
  cur = conn.cursor()
  # 表cf_users中获取所有用户id
  sql = 'select id from cf_tags where id between 204 and 298'
  # 将user_id列转成列表输出
  df = pd.read_sql(sql,con=conn)
  # 先使用array()将DataFrame转换一下
  df1 = np.array(df)
  # 再将转换后的数据用tolist()转成列表
  df2 = df1.tolist()
  # cur.execute(sql)
  # data = cur.fetchone()
  # print(df)
  # print(df1)
  # print(df2)
  return df2
  conn.close()

以上就是python 实现数据库中数据添加、查询与更新的示例代码的详细内容,更多关于python 数据库添加、查询与更新的资料请关注我们其它相关文章!

(0)

相关推荐

  • python制作一个简单的gui 数据库查询界面

    一.准备工作: 1.安装mysql3.7,创建一个test数据库,创建student表,创建列:(列名看代码),创建几条数据 (以上工作直接用navicat for mysql工具完成) 二.代码: import sys import tkinter as tk import mysql.connector as sql #--------------------查询函数--------------------------- def sql_connect(): listbox_show.del

  • python更新数据库中某个字段的数据(方法详解)

    连接数据库基本操作,我把每一步的操作是为什么给大家注释一下,老手自行快进. 请注意这是连接数据库操作,还不是更新. import pymysql #导包 #连接数据库 db = pymysql.connect(host='localhost', user='用户名', password='数据库密码', port=3306, db='你的数据库名字') #定义游标 cursor = db.cursor() #sql语句 sql = 'select * from students;' cursor

  • python将数据插入数据库的代码分享

    python将数据插入数据库的方法: 首先读入数据并建立数据库连接: 然后创建数据库: 接着执行插入数据语句,迭代读取每行数据: 最后关闭数据库连接即可. 比如现在我们要将如下Excel数据表格插入到MySQL数据库中,该如何实现呢? 实现代码: #导入需要使用到的数据模块 import pandas as pd import pymysql #读入数据 filepath = 'E:\_DataSet\catering_sale.xls' data = pd.read_excel(filepat

  • python使用多线程查询数据库的实现示例

    一.背景: 当数据量过大时,一个程序的执行时间就会主要花费在等待单次查询返回结果,在这个过程中cpu无疑是处于等待io的空闲状态的,这样既浪费了cpu资源,又花费了大量时间(当然这里主要说多线程,批量查询不在考虑范围,总会存在不能批量查询的情况),在这种非密集型运算(及大量占用cpu资源)的情况下在python中无疑运用多线程是一个非常棒的选择. 二.知识点: 数据库连接池的运用及优势,python中多线程的运用,队列的运用 数据库连接池:限制了数据库的连接最大个数,每次连接都是可以重复使用的,

  • 详解使用Python写一个向数据库填充数据的小工具(推荐)

    一. 背景 公司又要做一个新项目,是一个合作型项目,我们公司出web展示服务,合作伙伴线下提供展示数据. 而且本次项目是数据统计展示为主要功能,并没有研发对应的数据接入接口,所有展示数据源均来自数据库查询, 所以验证数据没有别的入口,只能通过在数据库写入数据来进行验证. 二. 工具 Python+mysql 三.前期准备 前置:当然是要先准备好测试方案和测试用例,在准备好这些后才能目标明确将要开发自动化小工具都要有哪些功能,避免走弯路 3.1 跟开发沟通 1)确认数据库连接方式,库名 : 2)测

  • 详解python定时简单爬取网页新闻存入数据库并发送邮件

    本人小白一枚,简单记录下学校作业项目,代码十分简单,主要是对各个库的理解,希望能给别的初学者一点启发. 一.项目要求 1.程序可以从北京工业大学首页上爬取新闻内容:http://www.bjut.edu.cn 2.程序可以将爬取下来的数据写入本地MySQL数据库中. 3.程序可以将爬取下来的数据发送到邮箱. 4.程序可以定时执行. 二.项目分析 1.爬虫部分利用requests库爬取html文本,再利用bs4中的BeaultifulSoup库来解析html文本,提取需要的内容. 2.使用pymy

  • python连接mongodb数据库操作数据示例

    作者: wyh草样 出处:https://www.cnblogs.com/wyh0923/p/14047466.html 1.数据库配置类 MongoDBConn.py #encoding=utf-8 ''' Mongo Conn连接类 ''' import pymongo class DBConn: conn = None servers = "mongodb://localhost:27017" def connect(self): self.conn = pymongo.Conn

  • Python连接mysql数据库及简单增删改查操作示例代码

    1.安装pymysql 进入cmd,输入 pip install pymysql: 2.数据库建表 在数据库中,建立一个简单的表,如图: 3.简单操作 3.1查询操作 #coding=utf-8 #连接数据库测试 import pymysql #打开数据库 db = pymysql.connect(host="localhost",user="root",password="root",db="test") #使用cursor

  • python 实现数据库中数据添加、查询与更新的示例代码

    一.前言 最近做web网站的测试,遇到很多需要批量造数据的功能:比如某个页面展示数据条数需要达到10000条进行测试,此时手动构造数据肯定是不可能的,此时只能通过python脚本进行自动构造数据:本次构造数据主要涉及到在某个表里面批量添加数据.在关联的几个表中同步批量添加数据.批量查询某个表中符合条件的数据.批量更新某个表中符合条件的数据等. 二.数据添加 即批量添加数据到某个表中. insert_data.py import pymysql import random import time

  • python按照list中字典的某key去重的示例代码

    一.需求说明 当我们写爬虫的时候,经常会遇到json格式的数据,它通常是如下结构: data = [{'name':'小K','score':100}, {'name':'小J','score':98}, {'name':'小Q','score':95}, {'name':'小K','score':100}] 很显然名字为小K的数据重复了,我们需要进行去重.通常对于list的去重,我们可以用set()函数,即: data = list(set(data)) 然而,运行之后你会发现它报错了: li

  • C# 获取数据库中所有表名、列名的示例代码

    C# 获取数据库中所有表名.列名,实现代码如下所示: List<Dictionary<string, string>> GetColsName(Guid gtype,string tableName,string itemIndex= "COLUMN_NAME") { DataTable dsTablesData = DbDataHelper.GetCon().GetOleDbSchemaTable(gtype, new Object[] { null, nul

  • Java语言实现对MySql数据库中数据的增删改查操作的代码

    简单说操作的步骤: 1.连接数据库 2.将SQL语句发送到数据库 3.执行SQL语句 这里举个例子: 在一个数据库中有个students表,表中有学号(Id),姓名(Name),性别(Sex),地址(Address),电话(Phone),专业(Dept). 这里把这个表写成一个学生信息类(Info_student) (请先确保看了例子说明,不然代码有的地方可能看不明白) 要实现操纵我们首先得连接数据库,因为每个操作都要进行连接操作,所以我们直接把连接的操作封装在一个类中,需要连接的时候直接调用可

  • 将Access数据库中数据导入到SQL Server中的详细方法实例

    Default.aspx 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="AccessToSQL.aspx.cs" Inherits="AccessToSQL" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "

  • Mysql数据库中数据表的优化、外键与三范式用法实例分析

    本文实例讲述了Mysql数据库中数据表的优化.外键与三范式用法.分享给大家供大家参考,具体如下: 数据表优化 将商品信息表进行优化 1.创建商品种类表: create table if not exists goods_cates( id int unsigned primary key auto_increment, name varchar(40) not null ); 2.将商品种类写入商品种类表中: 注意:插入另一个表的查询结果不需要加values insert into goods_

  • MySql数据库中的子查询与高级应用浅析

    MySql数据库中的子查询: 子查询:在一条select查询语句中嵌套另一条select语句,其主要作用是充当查询条件或确定数据源. 代码案例如下: 例1. 查询大于平均年龄的学生: select * from students where age > (select avg(age) from students); 例2. 查询学生在班的所有班级名字: select name from classes where id in (select cls_id from students where

  • C#获取微信小程序的云数据库中数据的示例代码

    目录 0 背景说明 0.1 获取AccessToken 0.2 数据库查询 0.3 文件下载 2. 简单的封装 3. 简单测试 4. 参考文档 0 背景说明 试水小程序,实现访客登记,现有.NET程序需要获取该小程序的数据 0.1 获取AccessToken 调用绝大多数后台接口时都需使用 access_token 参考小程序文档:auth.getAccessToken 发送Get请求,获取AccessToken 接口: https://api.weixin.qq.com/cgi-bin/tok

  • MySQL 数据库中数据表超详细的基本操作

    目录 1. 查看当前数据库中的表 2. 创建表 3. 查看指定表结构 4. 删除表 5. 往表中新增数据 6. 查找表中的数据 6.1 全列查询 6.2 指定列查询 6.3 查询字段为表达式 6.4 给某个列指定常量 6.5 给查询的表达式指定别名(as) 6.6 去重查询(distinct) 6.7 对查询结果进行排序(order by) 6.8 条件查询(where) 6.9 分页查询(limit) 7. 修改表中的数据 8. 删除表中的数据 前言: 库名.表名.列名等等不能和关键字相同,如

  • python针对mysql数据库的连接、查询、更新、删除操作示例

    本文实例讲述了python针对mysql数据库的连接.查询.更新.删除操作.分享给大家供大家参考,具体如下: 连接 一 代码 import pymysql # 打开数据库连接 db = pymysql.connect("localhost","root","root","db_test01" ) # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 使用 execute(

随机推荐