参考:

https://www.jb51.net/article/49789.htm

https://blog.csdn.net/littlely_ll/article/details/82706874

 import pandas as pd
import sqlalchemy df = pd.DataFrame()
print(df)

结果:

 Empty DataFrame
Columns: []
Index: []

插入1条数据

import sqlalchemy
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column,String,Integer,Float,TIMESTAMP from demo.demogetConnection import GetConnection session = GetConnection.session
# engine =GetConnection.engine Base = declarative_base()
class User(Base):
__tablename__="user"
id = Column(Integer,primary_key=True)
name = Column(String(45)) def __repr__(self):
return "<User(id='%s',name='%s')>"%(self.id,self.name) #插入单条数据:
new_user = User(name='lily')
#添加数据,但还没有提交,出错还可以使用rollback撤回操作
session.add(new_user)
#提交到数据,这一步才是真正的将数据插入到数据库中了
session.commit()

结果

利用pandas批量插入数据

方式一:使用pandas_obj.to_sql()

 import pandas as pd
import sqlalchemy
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column,String,Integer,Float,TIMESTAMP from demo.demogetConnection import GetConnection session = GetConnection.session
engine =GetConnection.engine Base = declarative_base()
class User(Base):
__tablename__="user"
id = Column(Integer,primary_key=True)
name = Column(String(45)) def __repr__(self):
return "<User(id='%s',name='%s')>"%(self.id,self.name) df = pd.DataFrame({"name":["Jon","Mary","Tom"]})
df.to_sql("user",con=engine,if_exists="append",index=False)

在使用to_sql时注意if_exists参数,如果是replace的话它会先drop掉表,然后再创建表,最后插入数据

结果:

第2种方法,使用for循环

 import sqlalchemy
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column,String,Integer,Float,TIMESTAMP from demo.demogetConnection import GetConnection session = GetConnection.session
engine =GetConnection.engine Base = declarative_base()
class User(Base):
__tablename__="user"
id = Column(Integer,primary_key=True)
name = Column(String(45)) def __repr__(self):
return "<User(id='%s',name='%s')>"%(self.id,self.name) #原生方法,批量插入
a=[]
for i in range(3):
a.append({"name":"曹操%s"%i}) print(a)
session.execute(User.__table__.insert(),a)
session.commit()

打印的a的结果:

[{'name': '曹操0'}, {'name': '曹操1'}, {'name': '曹操2'}]

查询表的结果,已经插入成功了:

sqlalchemy ORM进阶- 批量插入数据的更多相关文章

  1. Django orm 实现批量插入数据

    Django ORM 中的批量操作 在Hibenate中,通过批量提交SQL操作,部分地实现了数据库的批量操作.但在Django的ORM中的批量操作却要完美得多,真是一个惊喜. 数据模型定义 首先,定 ...

  2. PHP框架 Laravel Eloquent ORM 批量插入数据 && 批量更新目前没有

    foreach ($products as $v=>$a) { $count[] = array('product_name' => $a['name'], 'product_weight ...

  3. django----Sweetalert bulk_create批量插入数据 自定义分页器

    目录 一.Sweetalert使用AJAX操作 二.bulk_create 三.分页器 divmod 分页器组件 自定义分页器的使用 一.Sweetalert使用AJAX操作 ​ sweetalert ...

  4. django与ajax:ajax结合sweetalter ,批量插入数据 ;分页器组件

    目录 一.ajax结合sweetalter 二.bulk_create批量插入数据 三.简易版分页器推导 1. 推导步骤 四.自定义分页器的使用 1. 自定义分页器模板 2. 使用方法 (1)后端代码 ...

  5. [Django高级之批量插入数据、分页器组件]

    [Django高级之批量插入数据.分页器组件] 批量插入数据 模板层models.py from django.db import models class Books(models.Model): ...

  6. C#批量插入数据到Sqlserver中的四种方式

    我的新书ASP.NET MVC企业级实战预计明年2月份出版,感谢大家关注! 本篇,我将来讲解一下在Sqlserver中批量插入数据. 先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的 ...

  7. .Net批量插入数据到SQLServer数据库,System.Data.SqlClient.SqlBulkCopy类批量插入大数据到数据库

    批量的的数据导入数据库中,尽量少的访问数据库,高性能的对数据库进行存储. 采用SqlBulkCopy来处理存储数据.SqlBulkCopy存储大批量的数据非常的高效,将内存中的数据表直接的一次性的存储 ...

  8. sql 中的Bulk和C# 中的SqlBulkCopy批量插入数据 ( 回顾 and 粗谈 )

    通常,我们会对于一个文本文件数据导入到数据库中,不多说,上代码. 首先,表结构如下.   其次,在我当前D盘中有个文本文件名为2.txt的文件. 在数据库中,可以这样通过一句代码插入. Bulk in ...

  9. Java 批量插入数据(Oracle)

    //批量添加20000条数据用时8秒. try {    String url = "jdbc:oracle:thin:@IP:1521:orcl"; // orcl为数据库的SI ...

随机推荐

  1. Ubuntu下Jupyter Notebook的安装

    pip install --upgrade pip //更新pip pip install jupyter sudo apt install jupyter-notebook 运行 jupyter-n ...

  2. lucene 索引文件大小分布_tim

    Hi, I have index ~31G where27% of the index size is .fdt files (8.5G)20% - .fdx files (6.2G)37% - .f ...

  3. 一.C语言:关键字、标识符和注释

      一.关键字 C语言提供的有特殊含义的符号,共32个. 在Xcode中关键字全部高亮显示,关键字全部都为小写.如return.int等. 二.标识符 定义:标识符是程序员在程序中自定义的一些符号和名 ...

  4. jquery $(function(){}) $(document).ready(function(){}); (function(){}); 的区别以及作用

    $(function)是$(document).ready(function(){});的简写方法    用来在DOM加载完之后执行一系列预先定义好的函数 (function(){});表示一个匿名函 ...

  5. bzoj3638

    费用流+线段树 看见这个题我们马上就能想到费用流,设立源汇,分别向每个点连接容量为1费用为0的边,然后相邻的点之间连边,费用为点权,跑费用流就行了,但是很明显这样会超时,那么我们要优化一下,我们观察费 ...

  6. 使用merge-using语句初始化数据库

    创建三张表Student.Course.Enrollment CREATE TABLE [dbo].[Student] ( [StudentID] INT IDENTITY (1, 1) NOT NU ...

  7. P3308 [SDOI2014]LIS(最小割+退流)

    传送门 设\(f[i]\)为以\(i\)结尾的最长上升子序列.可以考虑建这样一张图,对于所有的\(i<j,f[j]=f[i+1]\)连边\((i,j)\),\(f[i]=1\)的话连边\((S, ...

  8. JS 数据类型入门与typeof操作符

    标准的数据类型划分: 基本类型: number(数字).string(字符串).undefined.boolean(布尔值).null(空对象) //空对象与非空对象,最大的区别就是不能进行属性操作 ...

  9. django 网站项目测试

    视图和 URL 配置: 在先前创建的 meishiweb目录下的 meishiweb 目录新建一个 view.py 文件,并输入代码: 此时在浏览器即可访问: 证明已经成功 我们也可以修改成以下的规则 ...

  10. [BZOJ3245]最快路线

    Description 精明的小R每每开车出行总是喜欢走最快路线,而不是最短路线.很明显,每条道路的限速是小R需要考虑的关键问题.不过有一些限速标志丢失了,于是小R将不知道能开多快.不过有一个合理的方 ...