关系型数据库:
采用了关系模型(二维表格模型)来组织数据的数据库;事务的一致性.关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL
优点:容易理解,使用方便,便于维护
非关系型数据库:
1.使用键值对存储数据;
2、分布式;
3、一般不支持ACID特性;
4、非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。
非关系型数据库的优点
1、无需经过sql层的解析,读写性能很高;
2、基于键值对,数据没有耦合性,容易扩展;
3、存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等
NoSql、Cloudant、MongoDb、redis、HBase
从关系型数据库Mysql读取数据¶
封装函数:
def function(sqli):
import pymysql
import pandas as pd
config={'host':'localhost', #默认localhost==127.0.0.1
'user':'root', # 用户名
'password':'password', #密码
'port':3306, #端口.默认3306
'database':'train', #数据库名字
'charset':'utf8' #字符编码
}
# 查询语句
sql='SELECT * FROM %s'%(sqli)
# 使用配置参数创建连接
conn=pymysql.connect(**config)
#用连接获得游标
cursor=conn.cursor()
#用游标执行SQL语句
cursor.execute(sql)
#通过fetchall获取数据
data=cursor.fetchall()
# 获取字段属性
col=cursor.description
#遍历数据的前5条
df=pd.DataFrame(list(data))
col_name=[]
for i in range(len(col)):
col_name.append(col[i][0])
df.columns=col_name
print(df)
#关闭游标
cursor.close()
#关闭连接
conn.close()
function('distribute')
直接读取mysql:
import pymysql
import pandas as pd
#创建连接
con=pymysql.connect(host='localhost',user='root',password='password',db='train')
# 读取数据,执行SQL语句
data=pd.read_sql('select * from distribute',con)
data.head()
2.json获取解析(json.loads)
导入请求数据库,导入json包
请求地址:url:
请求数据:res=request.get(url%())
返回信息;数据信息格式:,res.txt
json 解析: json.loads(返回的数据)
import requests #倒入库
import json
#定义地址
add='九王坟'
#创建访问应用时获取的AK(秘钥)
mykey='DdOyOKo0VZBgdDFQnyhINKYDGkzBkuQr'
#请求地址api应用程序接口 geocoder 地理
url = 'http://api.map.baidu.com/geocoder/v2/?address=%s&output=json&ak=%s'
# 获取返回请求
res=requests.get(url% (add,mykey))
#返回文本信息
add_info=res.text
print(add_info)
add_json=json.loads(add_info)
add_json
3.xml 获取解析(Etree.fromstring)
- XML是Extensible Markup Language的缩写,中文名称是可扩展标记语言。xml和html类似,xml可以使用标记来对数据进行描述,xml的宗旨是传输数据,需要自定义标签
4.时间格式的四种转化方式import requests
import xml.etree.ElementTree as Etree
url='http://api.map.baidu
.com/geocoder/v2/?address=%s&output=xml&ak=%s'
res=requests.get(url %(add,mykey))
add_info=res.text
root=Etree.fromstring(add_info)
print(add_info)
pd.datime.stmptime()
pd.to_datetime()
df.astype()
parser.parse()