python读取数据库,python怎么读取数据库
大家好,今天来为大家解答python读取数据库这个问题的一些问题点,包括python怎么读取数据库也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~
python如何访问数据库
1.背景:
python提供了很多数据库接口,常用的数据库有 MS SQL Server/mysql/oracle等。
打开链接 https://wiki.python.org/moin/DatabaseInterfaces
是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的说明 https://www.python.org/dev/peps/pep-0249/
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如何读取MySQL数据库表数据
这篇文章主要为大家详解Python如何读取MySQL数据库表数据,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了Python读取MySQL数据库表数据的具体代码,供大家参考,具体内容如下
环境:Python 3.6,Window 64bit
目的:从MySQL数据库读取目标表数据,并处理
代码:
#-*- coding: utf-8-*-
import pandas as pd
import pymysql
##加上字符集参数,防止中文乱码
dbconn=pymysql.connect(
host="**********",
database="kimbo",
user="kimbo_test",
password="******",
port=3306,
charset='utf8'
)
#sql语句
sqlcmd="select col_name,col_type,col_desc from itf_datadic_dtl_d limit 10"
#利用pandas模块导入mysql数据
a=pd.read_sql(sqlcmd,dbconn)
#取前5行数据
b=a.head()
print(b)
#读取csv数据
# pd.read_csv()
#读取excel数据
#pd.read_excel()
#读取txt数据
#pd.read_table()结果如图:
python怎么读取数据库
使用python读取MS-SQL中的数据,这里使用到模板pymssql。
因为不是python自带的模板,所以首先需要使用pip安装,对应命令:pip install pymssql
建立main.py文件,输入代码如下:
import pymssql,os
server="127.0.0.1"#服务器IP或服务器名称
user="sa"#登陆数据库所用账号
password="password"#该账号密码
conn=pymssql.connect(server,user,password,database='master')
cursor=conn.cursor()
cursor.execute("select name from sys.databases")#向数据库发送SQL命令
row=cursor.fetchone()
while row:
print row[0]
row=cursor.fetchone()
conn.close()通过循环命令,逐条显示获取到的结果。
点击运行,执行该程序,能够正常返回SQL命令的查询结果。
下面使用SQL语言的中插入命令,将之前的代码中操作的数据库由"master"变为"test",cursor.execute后跟的查询命令改为一条insert格式的插入命令:
import pymssql
server="127.0.0.1"#服务器IP或服务器名称
user="sa"#登陆数据库所用账号
password="password"#该账号密码
conn=pymssql.connect(server,user,password,database='test')
cursor=conn.cursor()
cursor.execute("insert into dbo.test([NO.],Name,Address) values('003','张三','郑州')")执行命令后,数据库中并没有被插入数据。这是因为在执行update、insert和delete命令时,需要增加一条conn.commit()命令,才能够让数据库执行该语句。
import pymssql
server="127.0.0.1"#服务器IP或服务器名称
user="sa"#登陆数据库所用账号
password="password"#该账号密码
conn=pymssql.connect(server,user,password,database='test')
cursor=conn.cursor()
cursor.execute("insert into dbo.test([NO.],Name,Address) values('003','张三','郑州')")
conn.commit()
conn.close()特别需要注意的是,pymssql无法打开中文命名的数据库,所以使用pymsslq和数据库进行交互的时候,访问的数据库一定要是英文命名的数据库。
使用py2exe或pyinstaller打包写好的python程序,需要在程序开头增加 import decimal,导入decimal模板,否则运行会报错。
更多Python相关技术文章,请访问Python教程栏目进行学习!
文章分享结束,python读取数据库和python怎么读取数据库的答案你都知道了吗?欢迎再次光临本站哦!