链接: https://pan.baidu.com/s/1Qq3FAqzkmakso2E7KuxvVg 提取码: kczq
作者-\/ 307570512
Python操作三大主流数据库介绍
MySQL 关系型数据库,MySQL在 WEB 应用方面 MySQL是最好的RDBMS(Relational Database Management System,关系数据库管理系统) 应用软件之一。
MongoDB MongoDB 和 Redis 都是 NoSQL(非关系型的数据库),采用结构型数据存储。
二者在使用场景中,存在一定的区别, 这也主要由于二者在内存映射的处理过程,持久化的处理方法不同。
MongoDB建议集群部署,更多的考虑到集群方案,Redis更偏重于进程顺序写入,虽然支持集群,也仅限于主从模式。
Redis Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。
Pythonr操作三大主流数据库 实战网易新闻客户端
流程:开始-创建connection-获取cursor-(执行查询,命令,获取,处理数据)-关闭cursor-关闭connection-结束
安装pymysql模块
pip install pymysql
引入该模块
import pymysql
print(pymysql.version)
数据库连接对象connection
pymysql.connect(参数): 该对象支持的方法: cursor() 使用该连接创建并返回游标 commit() 提交当前事务 rollback() 回滚当前事务 close() 关闭连接 pymysql.connect(host='localhost',port=3306,user='root',passwd='root',db='mysql',charset='utf8')
数据库交互对象cursor
该对象支持的方法: execute(op[args]) 执行一个数据库查询或命令 fetchone() 取的结果集的下一行 fetchmany(size) 取的结果集的下n行 fetchall() 获取结果集中剩下的所有行 rowcount() 最近一次execute返回数据的行数或影响行数 close() 关闭对象
注意:调用execute方法后数据存在缓冲区内,调用fetch方法获取数据
实例演示
执行命令,查询: cursor.execute('select * from myapp_student') print(cursor.rowcount) for i in cursor.fetchall(): print(i)
事务
原子性:事务中的操作要么都做,要么都不做 一致性:事务必须保证数据库从一个一致性状态变到另一个一致性状态 持久性:事务一旦提交,对数据库的改变就是永久的 隔离性:一个事务的执行不能被其他事务干扰
开发过程中一般设置自动提交为失效
关闭自动commit ,conn.autocommit(False),正常结束:conn.commit(),异常结束:conn.rollback(),经试验,pymysql模块中默认为FALSE
try:
cursor.execute('insert into myapp_student values (11,"test",20,1,"haha",1)')
cursor.execute('insert into myapp_student values (13,"test",20,1,"haha",1)')
cursor.execute('delete from myapp_student where qid=1000')
conn.commit()
except:
print('SQL语句执行出错,执行回滚操作')
conn.rollback()
...
。。。