美文网首页
python通过sql语句造数据

python通过sql语句造数据

作者: 软件开发技术修炼 | 来源:发表于2022-08-07 23:47 被阅读0次

在平时的工作中,经常会遇到造数据,特别是性能测试的时候更是需要大量的数据。如果一条条的插入数据库或者一条条的创建数据,效率未免有点低。

如何快速的造大量的测试数据呢?

在不熟悉存储过程的情况下,今天给大家介绍一种方法,很简单的也很实用。思路是用python代码写一段小程序,生成一定数量的SQL语句,再把这些SQL语句拷贝黏贴到数据库工具执行SQL即可

以银行表 j_bank,其表结构为
id` ,`org_id` ,`bank_name`,`bank_account_id`,`owner`, `status` 0-禁用 1-启用',`deleted_flag` 0-未删除 1-已删除', `initial_balance`'期初余额', `type` 银行库类型 0-本企业银行库,1-对方银行库,2-员工银行库', `audit_status` '审核状态 0-待提交, 10-已提交(待审核), 11-新增, 12-编辑, 13-开关, 20-审核拒绝. 30-审核通过', `audit_user_id` varchar(32) DEFAULT NULL COMMENT '审核用户id', `audit_time` datetime DEFAULT NULL COMMENT '审核时间'

一、以Mysq为例子,sql语句如下:
INSERT INTO `newgwy-journal`.`j_bank`
(`id`, `org_id`, `bank_name`, `bank_account_id`, `owner`, `status`, `deleted_flag`, `initial_balance`, `type`, `audit_status`, `update_user_id`, `update_time`, `audit_user_id`, `audit_time`)
VALUES (181, '62206eae1d8a1d7c6d7f4053', '合作社hz', '56768792345434612', '', 1, 0, 1200000.00, 0, 30, '0e4ad8c888f147f29617ae7ffcbbd942', '2022-03-23 11:32:10', '74a52f7b09a74807a46a0e52b362cba5', '2022-03-23 10:15:11')

二、通过python脚本批量生成1000条待插入的SQL语句
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2022/3/23 11:10
# @Author  : Celeste
# @Site    : https://www.jianshu.com/u/71ff901eeee2
# @File    : cre_data.py
# @公众号   :软件测试开发修炼

'''
# 利用python生成造数据的sql语句保存在txt文件中,再去mysql中执行

import random
import time

#构造表 t_user_info
class creat_t_blank_info():
    start = time.time()
    count = 10000     # 造一万条数据
    benginID = 185
    # 打开文件,并动态生成sql数据,将数据存放在文件中
    try:
        with open('./blank.txt','wb') as f:
            length = count+1
            for i in range(1,length):
                # 定义数据,测试数据
                int_i = int(i+benginID)
                bank_name = str(random.choice(["建设银行","招商银行","农业银行","工商银行"]))  # 银行名
                bank_account_id = random.randrange(1000000,10000000000000)  # 银行账号
                initial_balance = random.randrange(10,100000000)   # 银行余额
                audit_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())  # 创建时间
                sql = 'INSERT INTO newgwy-journal.j_bank(id, org_id, bank_name, bank_account_id, owner, status, deleted_flag, initial_balance, type, audit_status, audit_user_id, audit_time) VALUES (str_i ,'62206eae1d8a1d7c6d7f4053',"'+bank_name+'" , "'+bank_account_id+'" ,initial_balance,0,30,'74a52f7b09a74807a46a0e52b362cba5', "'+audit_time+'");'
                f.write(sql.encode('UTF-8'))
                f.write("\n")
            print("创建一万条sql共耗时:",time.time() - start)
    except Exception as e:
        print(Exception, ":",e)

if __name__ == '__main__':
    creat_t_blank_info()

登录数据库造数据

#coding=utf-8
import pymysql
conn = pymysql.connect(“localhost”,“root”,“root”,“mysql”,charset=‘utf8’)
cursor = conn.cursor()
for i in range(1115381,10000000):
  i=str(i)
  sql=‘insert into movie_top(id,movieName) VALUES {}’.format(‘(’+‘’‘+i+’‘’+‘,’+‘’‘+‘moke数据’+’‘’+‘)’)
  print(sql)
cursor.execute(sql)
conn.commit()
conn.close()

造数据的方法有很多,可根据不同的场景去造不同的数据;
推荐使用上一篇的造数据方法:

python使用faker及pandas造数据到Excel表

相关文章

  • 入门(九)操作mysql

    1、连接数据库 sql python连接 2、获取游标执行sql关闭资源 动态sql 3、执行查询语句

  • Flask-SQLAlchemy

    SQLALchemy 实际上是对数据库的抽象,让开发者不用直接和 SQL 语句打交道,而是通过 Python 对象...

  • hive 、mysql、sparksql 比较

    主要是通过实验比较三者的速度。数据生成Python代码 性能评测sql语句 1、mysql查寻速度的测试 mysq...

  • 【笔记】《Python语言以及应用》- 文件和数据库操作

    一、Python操作关系型数据库 1. SQL SQL语句有两种类型: DDL(数据定义语言)处理用户、数据库以及...

  • (四)Geospark SQL简介

    GeoSpark SQL简介 Spark提供DataFrame数据集,并且可以通过SQL语句来操作。GeoSpar...

  • MySQL的笔记(一)

    SQL语句的定义:简称SQL,结构化查询语言,数据库管理系统通过SQL语言来管理数据库中的数据。 SQL的分类: ...

  • SQL语句的分类

    ### 1.SQL语句的分类 * DDL语句(数据定义语句) 主要用于定义数据库对象的SQL语句 *数据...

  • 第11天,Python操作MySQL

    @(python)[笔记] 目录 一、数据库操作 SQL语句分类: 1.1 数据库管理 1.1.1 显示 SHOW...

  • 5数据库sql语句

    [TOC] SQL语句 1.使用SQL语句插入数据 在SQL语句的编辑区域,我们使用insert语句向数据表当中插...

  • SQL语句基础

    SQL语句 SQL分类: DDL:数据定义语句 create,alter,drop... DML:数据操作语句 i...

网友评论

      本文标题:python通过sql语句造数据

      本文链接:https://www.haomeiwen.com/subject/jykdjrtx.html