Python学哪个数据库

Python学哪个数据库,第1张

主流的关系型数据库:

1 MySQL:目前使用最广泛的开源、多平台的关系型数据,支持事务、符合ACID、支持多数SQL规范。

2 SQL Server:支持事务、符合ACID、支持多数SQL规范,属于商业软件,需要注意版权和licence授权费用。

3 Oracle:支持事务,符合关系型数据库原理,符合ACID,支持多数SQL规范,功能最强大、最复杂、市场占比最高的商业数据库。

4 Postgresql:开源、多平台、关系型数据库,功能最强大的开源数据库,需要Python环境,基于postgresql的time

scaleDB,是目前比较火的时序数据库之一。

非关系型数据库:

非关系型数据库也被称为nosql,作为关系型数据库的一个补充,能在特定场景和特点问题下发挥高效率和高性能。

常见的非关系型数据库类型有键值存储数据库和面向文档数据库。

键值存储数据库类似hash,通过key做添加、删除、查询、性能高,优势在于简单、易部署、高并发,主要产品有:

Redis:开源、Linux平台、key-value键值型nosql数据库,简单稳定,非常主流的、全数据in-momory,定位于快的键值型nosql数据库。

Memcaced:一个开源的、高性能的、具有分布式内存对象的缓存系统,通过它可以减轻数据库负载,加速动态的web应用。

面向文档数据库以文档的形式存储,每个文档是一系列数据项的集合,每个数据项有名称与对应的值,主要产品有:

MongoDB:开源、多平台、文档型nosql数据库,最像关系型数据库,定位于灵活的nosql数据库。适用于网站后台数据库、小文件系统、日志分析系统。

增加一条数据

import pymysql

 

 #返回Connection对象

 #host="localhost"

 con = pymysqlconnect(host="1921683128",

                  port=3306,user="atguigu",

                  password="atguigu",

                  db="atguigudb",

                  charset="utf8")

 #返回cursor对象

 cursor = concursor()

 #SQL语言-SQL语句

 sql = "insert into students(name) value('李四')"

 #插入数据

 cursorexecute(sql)

 #提交数据,没有提交就没有数据

 concommit()

 #关闭释放资源

 cursorclose()

 #关闭资源

 conclose()

修改数据

import pymysql

 #修改任意一条数据

 

 #返回Connection对象

 conn = pymysqlconnect(

    host="1921683128",

    db="atguigudb",

    port=3306,

    user="atguigu",

    password="atguigu",

    charset="utf8"

 )

 cursor = conncursor()

 sql = "update students set name='郭靖' where id = 1"

 count = cursorexecute(sql)

 print("count=",count)

 #提交正常数据物理上修改了

 conncommit()

 cursorclose()

 connclose()

删除数据

import pymysql

 #修改任意一条数据

 

 #返回Connection对象

 conn = pymysqlconnect(

    host="1921683128",

    db="atguigudb",

    port=3306,

    user="atguigu",

    password="atguigu",

    charset="utf8"

 )

 cursor = conncursor()

 sql = "delete from students where id =20"

 count = cursorexecute(sql)

 print("count=",count)

 conncommit()

 cursorclose()

 connclose()

查询一条数据

import pymysql

 try:

    conn=pymysqlconnect(

       host='1921683128',

       port=3306,

       db='atguigudb',

       user='atguigu',

       passwd='atguigu',

       charset='utf8'

    )

    cursor=conncursor()

    cursorexecute('select  from students where id = 3')

    #返回满足这个条件的这个数据,如果有多条返回第一条,并且封装元组中

    result = cursorfetchone()

    print(result)

    for i in result:

       print(i)

    cursorclose()

    connclose()

 except Exception as e:

    print(emessage)

查询多条数据

import pymysql

 try:

    conn=pymysqlconnect(

       host='1921683128',

       port=3306,

       db='atguigudb',

       user='atguigu',

       passwd='atguigu',

       charset='utf8'

    )

    cursor=conncursor()

    cursorexecute('select  from students')

    #返回元组,如果多条数据,元组里面嵌套元组

    result = cursorfetchall()

    print(result)

    for i in result:

       print(i)

    conncommit()

    cursorclose()

    connclose()

 except Exception as e:

    print(emessage)

读取mysql数据,填写数据到excel

from pyexcel_xls import save_data

from pyexcel_xls import get_data

from collections import OrderedDict

import mysqlconnector

#和数据库建立连接

cnx =mysqlconnectorconnect(user='root', password='',  

                              host='127001',  

                              database='test')

#查询语句

sql = "select my_name,my_value from tbl_members "

#执行查询

cursorexecute(sql)

#获得查询结果

result = cursorfetchall()

cursorclose()

cnxclose()

#打开预定义表头文件

xls_header= get_data("d:/xhxls")

#获得表头数据

xh = xls_headerpop("Sheet1")

#拼接整表数据

xd = OrderedDict()

xdupdate({"Sheet 1":xh+result})

#保存到另一个文件中

save_data("d:/xdxls",xd)

1背景:

python提供了很多数据库接口, 常用的数据库有 MS SQL Server /mysql /oracle 等。

打开链接 >

是python 关于数据库接口的一个总结 , 可以看到python支持的访问的数据库系统。

2模块:

python 主要是通过模块和数据库连接的。

21 安装模块:

如果使用anconda,本身就会集合很多模块,不需要手动安装。如果用pycharm就要手动安装模块。

安装模块流程:

下载模块扩展包放到路径下——>cmd找到相应路径——> pip install +扩展包名字

下面列举一些常用连接数据库的模块:pymssql / sqlite3/ PyMySQL/pyodbc/odbc/adodbapi

不同模块连接的数据库不同, 支持的版本系统有的也不一样。但是大体用法都是相近的, 因为有DB-API

:《Python教程》

3Python DB-API

31背景:

在没有DB-API 之前, 不同数据库有不同的数据库接口程序, 这就导致python 访问 database 的接口程序非常混乱。如果我们学习了python 访问 mysql 的接口程序, 然后要切换到另一个数据库上, 我们还要在学习另外一个数据库的接口程序。python DB-API就是为了解决接口程序混乱而生成的。有了DB-API, 在不同数据库上移植代码就变得简单的多了。

32Python DB-API:

Python 定义了一套 *** 作数据库的 DB-API 接口,它是一个规范,定义了一系列必须的对象和数据库存取方式,以便为不同的底层数据库系统提供一致的访问接口

这个链接就是python 官方给定的 DB-API 的说明 >

33 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()关闭游标对象

34Python DB--API的工作原理及流程:

如图所示如果把python 和数据库比作两个不同的地点, connection 就是路, 能连接python和database。cursor就像在路上行驶的小货车, 可以用于执行sql 语句, 以及存储sql 运行的结果。

流程:

4MS SQL Server 示例:

41 导入模块、创建连接:

42 创建游标: 游标创建之后就可以对数据库进行查询更改了!

43对数据进行 *** 作(创建表、插入行、更新数据、增加列、删除行、列、表):

44 查询 获取行:

5其他:

使用游标的时候要注意, 每次连接只能有一个游标查询处于活跃状态。 code演示:

execute()循环和 executemany() 插入100000 条数据测速:

Python存200w数据到数据库需要474秒,因为正常的三万八千条数据仅需要9秒,以此类推出200万需要的时间。

python存数据库速度

1、需要从文本中读取三万条数据写入mysql数据库,文件中为用@分割的sql语句,但是在读取的过程中发现速度过慢,三万八千条数据需要220秒,

2、经测试发现,影响速度的主要原因是commit(),因为没过几秒提交一次即可,但是因为提交的字符长度有限制,所以要设置一个合理的时间读取。

3、更改后,写入三万八千条数据仅需要9秒

以上就是关于Python学哪个数据库全部的内容,包括:Python学哪个数据库、python使用数据库、python如何访问数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9425968.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存