首页 > 编程知识 正文

python怎么读sql数据的简单介绍

时间:2023-12-28 21:10:57 阅读:328975 作者:YOZD

本文目录一览:

python读取mysql数据写入ES总结

准备工作: mysql库的安装。

python中mysql库用的是mysql-connector,安装执行如下命令:

第一步: 连接mysql,读取数据。

通过执行sql语句,读取mysql数据。

至此,获得mysql的原始数据raw_data 。接下来对数据进行预处理,按日期进行分组聚合,然后重命名行和列名,得到dataFrame格式的数据。

第二步: 连接ES。

这步没有太多的可解释的地方,就是配置信息。

第三步: ES主键加密。

这步的目的是为了保持主键唯一性,防止重复写入。用的方法是md5加密。

第四步: 写入ES

至此,一切的准备工作都做好了,数据也有了,主键加密也做了,就开始写入了。

用main方法执行以上方法:

最后查看一下ES写的是否成功,用查询方法

如果返回以下信息,说明ES里成功插入了数据。

另外,ES删除索引的操作:

如何python获取sql数据库访问的url

python

操作数据库,要安装一个Python和数据库交互的包MySQL-python-1.2.2.win32-py2.5.exe,然后我们就可以使用MySQLdb这个包进行数据库操作了。

操作步骤如下:

1、建立数据库连接

import

MySQLdb

conn=MySQLdb.connect(host="localhost",user="root",passwd="sa",db="mytable")

  cursor=conn.cursor()

2、执行数据库操作

n=cursor.execute(sql,param)

我们要使用连接对象获得一个cursor对象,接下来,我们会使用cursor提供的方法来进行工作.

这些方法包括两大类:1.执行命令,2.接收返回值

3、cursor用来执行命令的方法:

  callproc(self, procname,

args):用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数

  execute(self, query,

args):执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数

  executemany(self, query,

args):执行单挑sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数

 

nextset(self):移动到下一个结果集

  4、cursor用来接收返回值的方法:

 

fetchall(self):接收全部的返回结果行.

  fetchmany(self,

size=None):接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据.

 

fetchone(self):返回一条结果行.

  scroll(self, value,

mode='relative'):移动指针到某一行.如果mode='relative',则表示从当前所在行移动value条,如果mode='absolute',则表示从结果集的第一

行移动value条.

5、下面的代码是一个完整的例子.

#使用sql语句,这里要接收的参数都用%s占位符.要注意的是,无论你要插入的数据是什么类型,占位符永远都要用%s

sql="insert

into cdinfo values(%s,%s,%s,%s,%s)"

#param应该为tuple或者list

param=(title,singer,imgurl,url,alpha)

#执行,如果成功,n的值为1

n=cursor.execute(sql,param)

#再来执行一个查询的操作

cursor.execute("select

* from cdinfo")

#我们使用了fetchall这个方法.这样,cds里保存的将会是查询返回的全部结果.每条结果都是一个tuple类型的数据,这些tuple组成了一个tuple

cds=cursor.fetchall()

#因为是tuple,所以可以这样使用结果集

print

cds[0][3]

#或者直接显示出来,看看结果集的真实样子

print

cds

#如果需要批量的插入数据,就这样做

sql="insert

into cdinfo values(0,%s,%s,%s,%s,%s)"

#每个值的集合为一个tuple,整个参数集组成一个tuple,或者list

param=((title,singer,imgurl,url,alpha),(title2,singer2,imgurl2,url2,alpha2))

#使用executemany方法来批量的插入数据.这真是一个很酷的方法!

n=cursor.executemany(sql,param)

需要注意的是(或者说是我感到奇怪的是),在执行完插入或删除或修改操作后,需要调用一下conn.commit()方法进行提交.这样,数据才会真正保

存在数据库中.我不清楚是否是我的mysql设置问题,总之,今天我在一开始使用的时候,如果不用commit,那数据就不会保留在数据库中,但是,数据

确实在数据库呆过.因为自动编号进行了累积,而且返回的受影响的行数并不为0.

6、关闭数据库连接

需要分别的关闭指针对象和连接对象.他们有名字相同的方法

cursor.close()

conn.close()

Django操作数据库

django是一个出色的用于python的web框架。django连接有操作数据库的api,使用起来十分简洁。我们在settings.py中配置好所要连接的数据库,然后在modules、view、urls中分别写好业务逻辑

python 2.7 读取sql文件

逐行执行

for line in sql:

try:

cursor.execute(line)

except:

......

python如何操作SQL语句

这里有个比较清楚的解答:

但是你的是一个文本的话,就要稍微改一下咯

如果改成cx_Oracle的话,就是这样的:

import

sys

import

cx_Oracle

import

os

class

handleDataBase:

def

__init__(self,user,passwd,server,sql):

self.user=user

self.passwd=passwd

self.server=server

self.sql=sql

self.conn

=

cx_Oracle.connect("%s/%s@%s"%(self.user,self.passwd,self.server))

def

selectDB(self):

cursor

=

self.conn.cursor()

cursor.execute("select

count(1)

from

search_item_08")

ret

=

cursor.fetchall()

cursor.close()

print

ret

return

ret

def

closeDB(self):

self.conn.close()

if

__name__

==

"__main__":

if

len(sys.argv)

4:

print

"Need

Arguments:

user

passwd

server"

sys.exit(1)

user=sys.argv[1]

passwd=sys.argv[2]

server=sys.argv[3]

#sql='select

count(1)

from

search_item_08;'

#注意这里要改

sql

=

open('a.sql','r').read()

#改成从文件读取

#接下来就访问数据库了

handleDB

=

handleDataBase(user,passwd,server,sql)

handleDB.selectDB()

handleDB.closeDB()

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。