导读:今天首席CTO笔记来给各位分享关于python连数据库一次加载多少的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
python中,怎么将大量数据一次性导入数据库中。 补充:数据库是Mysql数据库
我估计你是问怎么从文件导入到数据库。一般每个数据库都有一个从文件直接load数据到数据库的命令或者工具。
比如SQLServer 有个bcp。 MySql 就是 load。
给你搜了详细的帮助。看看链接吧。以下是精简的使用方法:
基本用法:
mysql USE db1;
mysql LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table;
指定行,字段的分隔符:
mysql LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n';
掌握Python 操作 MySQL 数据库
本文Python 操作 MySQL 数据库需要是使用到 PyMySQL 驱动
Python 操作 MySQL 前提是要安装好 MySQL 数据库并能正常连接使用,安装步骤详见下文。
注意: 安装过程我们需要通过开启管理员权限来安装,否则会由于权限不足导致无法安装。
首先需要先下载 MySQL 安装包, 官网下载地址 下载对应版本即可,或直接在网上拉取并安装:
权限设置:
初始化 MySQL:
启动 MySQL:
查看 MySQL 运行状态:
Mysql安装成功后,默认的root用户密码为空,你可以使用以下命令来创建root用户的密码:
登陆:
创建数据库:
查看数据库:
PyMySQL 模块使用 pip命令进行安装:
假如系统不支持 pip 命令,可以使用以下方式安装:
pymysql .connect 函数:连接上数据库
输出结果显示如下:表面数据库连接成功
使用 pymysql 的 connect() 方法连接数据库,connect 参数解释如下:
conn.cursor():获取游标
如果要操作数据库,光连接数据是不够的,咱们必须拿到操作数据库的游标,才能进行后续的操作,游标的主要作用是用来接收数据库操作后的返回结果,比如读取数据、添加数据。通过获取到的数据库连接实例 conn 下的 cursor() 方法来创建游标,实例如下:
输出结果为:
cursor 返回一个游标实例对象,其中包含了很多操作数据的方法,如执行sql语句,sql 执行命令: execute() 和 executemany()
execute(query,args=None):
executemany(query,args=None):
其他游标对象如下表:
完整数据库连接操作实例如下:
以上结果输出为:
创建表代码如下:
如下所示数据库表创建成功:
插入数据实现代码:
插入数据结果:
Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。
查询数据代码如下:
输出结果:
DB API中定义了一些数据库操作的错误及异常,下表列出了这些错误和异常:
本文给大家介绍 Python 如何连接 Mysql 进行数据的增删改查操作,文章通过简洁的代码方式进行示例演示,给使用 Python 操作 Mysql 的工程师提供支撑。
python使用数据库
增加一条数据
import pymysql
#返回Connection对象
#host="localhost"
con = pymysql.connect(host="192.168.31.28",
port=3306,user="atguigu",
password="atguigu",
db="atguigudb",
charset="utf8")
#返回cursor对象
cursor = con.cursor()
#SQL语言-SQL语句
sql = "insert into students(name) value('李四')"
#插入数据
cursor.execute(sql)
#提交数据,没有提交就没有数据
con.commit()
#关闭释放资源
cursor.close()
#关闭资源
con.close()
修改数据
import pymysql
#修改任意一条数据
#返回Connection对象
conn = pymysql.connect(
host="192.168.31.28",
db="atguigudb",
port=3306,
user="atguigu",
password="atguigu",
charset="utf8"
)
cursor = conn.cursor()
sql = "update students set name='郭靖' where id = 1"
count = cursor.execute(sql)
print("count=",count)
#提交正常数据物理上修改了
conn.commit()
cursor.close()
conn.close()
删除数据
import pymysql
#修改任意一条数据
#返回Connection对象
conn = pymysql.connect(
host="192.168.31.28",
db="atguigudb",
port=3306,
user="atguigu",
password="atguigu",
charset="utf8"
)
cursor = conn.cursor()
sql = "delete from students where id =20"
count = cursor.execute(sql)
print("count=",count)
conn.commit()
cursor.close()
conn.close()
查询一条数据
import pymysql
try:
conn=pymysql.connect(
host='192.168.31.28',
port=3306,
db='atguigudb',
user='atguigu',
passwd='atguigu',
charset='utf8'
)
cursor=conn.cursor()
cursor.execute('select * from students where id = 3')
#返回满足这个条件的这个数据,如果有多条返回第一条,并且封装元组中
result = cursor.fetchone()
print(result)
for i in result:
print(i)
cursor.close()
conn.close()
except Exception as e:
print(e.message)
查询多条数据
import pymysql
try:
conn=pymysql.connect(
host='192.168.31.28',
port=3306,
db='atguigudb',
user='atguigu',
passwd='atguigu',
charset='utf8'
)
cursor=conn.cursor()
cursor.execute('select * from students')
#返回元组,如果多条数据,元组里面嵌套元组
result = cursor.fetchall()
print(result)
for i in result:
print(i)
conn.commit()
cursor.close()
conn.close()
except Exception as e:
print(e.message)
读取mysql数据,填写数据到excel
from pyexcel_xls import save_data
from pyexcel_xls import get_data
from collections import OrderedDict
import mysql.connector
#和数据库建立连接
cnx =mysql.connector.connect(user='root', password='',
host='127.0.0.1',
database='test')
#查询语句
sql = "select my_name,my_value from tbl_members "
#执行查询
cursor.execute(sql)
#获得查询结果
result = cursor.fetchall()
cursor.close()
cnx.close()
#打开预定义表头文件
xls_header= get_data("d:/xh.xls")
#获得表头数据
xh = xls_header.pop("Sheet1")
#拼接整表数据
xd = OrderedDict()
xd.update({"Sheet 1":xh+result})
#保存到另一个文件中
save_data("d:/xd.xls",xd)
如何使用python连接mysql数据库
在 Python 语言环境下我们这样连接数据库。
In [1]: from mysql import connector
In [2]: cnx = connector.connect(host="172.16.192.100",port=3306,user="appuser",password="xxxxxx")
但是连接数据库的背后发生了什么呢?
答案
当我们通过驱动程序(mysql-connector-python,pymysql)连接 MySQL 服务端的时候,就是把连接参数传递给驱动程序,驱动程序再根据参数会发起到 MySQL 服务端的 TCP 连接。当 TCP 连接建立之后驱动程序与服务端之间会按特定的格式和次序交换数据包,数据包的格式和发送次序由 MySQL 协议 规定。MySQL 协议:整个连接的过程中 MySQL 服务端与驱动程序之间,按如下的次序发送了这些包。
MySQL 服务端向客户端发送一个握手包,包里记录了 MySQL-Server 的版本,默认的授权插件,密码盐值(auth-data)。
2. MySQL 客户端发出 ssl 连接请求包(如果有必要的话)。
3. MySQL 客户端发出握手包的响应包,这个包时记录了用户名,密码加密后的串,客户端属性,等等其它信息。
4. MySQL 服务端发出响应包,这个包里记录了登录是否成功,如果没有成功也会给出错误信息。
python如何访问数据库
1.背景:
python提供了很多数据库接口, 常用的数据库有 MS SQL Server /mysql /oracle 等。
打开链接
是python 关于数据库接口的一个总结 , 可以看到python支持的访问的数据库系统。
2.模块:
python 主要是通过模块和数据库连接的。
2.1 安装模块:
如果使用anconda,本身就会集合很多模块,不需要手动安装。如果用pycharm就要手动安装模块。
安装模块流程:
下载模块扩展包放到路径下——cmd找到相应路径—— pip install +扩展包名字
下面列举一些常用连接数据库的模块:pymssql / sqlite3/ PyMySQL/pyodbc/odbc/adodbapi
不同模块连接的数据库不同, 支持的版本系统有的也不一样。但是大体用法都是相近的, 因为有DB-API
相关推荐:《Python教程》
3.Python DB-API
3.1背景:
在没有DB-API 之前, 不同数据库有不同的数据库接口程序, 这就导致python 访问 database 的接口程序非常混乱。如果我们学习了python 访问 mysql 的接口程序, 然后要切换到另一个数据库上, 我们还要在学习另外一个数据库的接口程序。python DB-API就是为了解决接口程序混乱而生成的。有了DB-API, 在不同数据库上移植代码就变得简单的多了。
3.2Python DB-API:
Python 定义了一套操作数据库的 DB-API 接口,它是一个规范,定义了一系列必须的对象和数据库存取方式,以便为不同的底层数据库系统提供一致的访问接口
这个链接就是python 官方给定的 DB-API 的说明
3.3 Python DB--API的内容:
连接对象:
?Connect()创建连接:host/server /user/password/db connect方法生成一个connect对象, 我们通过这个对象来访问数据库。符合标准的模块都会实现connect方法。
?close():关闭连接
?commit():提交当前事务。做出某些更改后确保已经进行了提交,这样才可以将这些修改真正地保存到database中
?rollback() 回滚上一次调用 commit()以来对数据库所做的更改
?cursor():创建游标。系统为用户开通的一个数据缓冲区,用于存放SQL语句执行结果。cursor游标是有状态的,它可以记录当前已经取到结果的第几个记录了,因此,一般你只可以遍历结果集一次。在上面的情况下,如果执行fetchone()会返回为空。这一点在测试时需要注意
游标对象:
?Execute()执行一个数据库查询或命令。 execute 执行sql 语句之后运行的结果不会直接output 出来 , 而是放到了一个缓存区, 要用 fetch语句+print 可以查询sql运行的结果
?fetchone ()得到结果集的下一行
?fetchmany(size)得到结果集的下几行
?fetchall()返回结果集中剩下的所有行
?rowcount 返回影响的行数
?Close()关闭游标对象
3.4Python DB--API的工作原理及流程:
如图所示如果把python 和数据库比作两个不同的地点, connection 就是路, 能连接python和database。cursor就像在路上行驶的小货车, 可以用于执行sql 语句, 以及存储sql 运行的结果。
流程:
4.MS SQL Server 示例:
4.1 导入模块、创建连接:
4.2 创建游标: 游标创建之后就可以对数据库进行查询更改了!
4.3对数据进行操作(创建表、插入行、更新数据、增加列、删除行、列、表):
4.4 查询 获取行:
5.其他:
使用游标的时候要注意, 每次连接只能有一个游标查询处于活跃状态。 code演示:
execute()循环和 executemany() 插入100000 条数据测速:
Python存200w数据到数据库需要多久
Python存200w数据到数据库需要474秒,因为正常的三万八千条数据仅需要9秒,以此类推出200万需要的时间。
【python存数据库速度】
1、需要从文本中读取三万条数据写入mysql数据库,文件中为用@分割的sql语句,但是在读取的过程中发现速度过慢,三万八千条数据需要220秒,
2、经测试发现,影响速度的主要原因是commit(),因为没过几秒提交一次即可,但是因为提交的字符长度有限制,所以要设置一个合理的时间读取。
3、更改后,写入三万八千条数据仅需要9秒
结语:以上就是首席CTO笔记为大家整理的关于python连数据库一次加载多少的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于python连数据库一次加载多少的相关内容别忘了在本站进行查找喔。