06 python操作MySQL和redis(进阶)
python操作mysql、redis
阶段一、mysql事务
主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!
事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。
事务用来管理 insert、update、delete 语句
事务必须满足4个条件(ACID):原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。
原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。
隔离性:数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。
持久性:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
start transaction; # 开启事务
# 插入数据
insert into account value(1, 1000);
commit; # 提交事务
rollback; # 回滚
阶段二、python操作mysql
pip install pymysql
pip install redis
workon py3env
cd /etc/mysql/mysql.conf.d/
sudo vim mysqld.cnf
0.0.0.0 # 所有的ip都能访问
127.0.0.1 # 只有本地能访问
cd /etc/redis/
sudo vim redis.conf
虚拟机解释器不需要改端口,直接填 3306 6379 # 要操作数据库,首先就要建立和数据库的连接,配置pymysql.connect连接数据库:
con = pymysql.connect(
host = '主机',
port = 端口,
user = '用户名',
password = '密码',
db = '数据库名',
charset = 'utf8'
)
print(con)
# 定义游标
cursor = con.cursor()
cursor.execute('show databases') #执行sql
one = cursor.fetchone() #取出一条数据
all = cursor.fetchall() #取出所有数据
print(one)
print(all)
# 建表
tb = '''
create table tb(
id int primary key auto_increment,
name char(10))
'''
cur.execute(tb)
# 插入
row = cursor.execute("insert into test(name,sex) values(%s,%s)", ('shiwei','male'))
# 更新
row = cursor.execute(“update test set name= ‘张三' where id = %s", (2,))
# 删除
cursor.execute('delete from user where id=%s ',(1,) )
# 关闭连接
# 事务,数据改动的时候
cur.execute('commit')
con.commit() #提交事物
cursor.close() #关闭游标
con.close() # 关闭连接
## 联合查询
union = '''
select s.name, c.name,d.name from `student` s
left join `select` se on se.s_id = s.s_id
left join course c on se.c_id = c.id
left join department d on s.dept_id = d.id
ORDER BY s.name;
'''
# cursor.execute(union)
# find =cursor.fetchall()
阶段三、python操作redis
1、模块安装
pip install redis
2、基本操作
# 创建连接
re = redis.Redis(host='127.0.0.1', port='')
## 测试
re.set('num',15)
print(re.get('num'))
## set 中文
re.set('name','张三')
print(re.get('name').decode('utf8') )
### 大部分的命令 和 redis 中操作一样
不同:
re.expire('user_name', 20) # 添加过期时间
re.ttl('user_name') ### 不能看 负数 -1 -2
re.mset(a=1, b=2) ## 用键值对 mget a b
re.incr('read_count') ## incr 可以加参数,代替了 incrby get read_count
re.decr() ## decr 可以加参数,代替了 decrby
lrange list_1 0 -1
lpush list_1 2 3 4 5 3
re.lrem('list_1', 3, 0) ## num 放到后面
re.hmset() # 多插入,用字典
re.hmset('users', {'name': 'shiwei', 'age': 18})
06 python操作MySQL和redis(进阶)的更多相关文章
- Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用 ...
- Python操作Mysql实例代码教程在线版(查询手册)_python
实例1.取得MYSQL的版本 在windows环境下安装mysql模块用于python开发 MySQL-python Windows下EXE安装文件下载 复制代码 代码如下: # -*- coding ...
- Python操作MySQL以及数据库索引
目录 python操作MySQL 安装 使用 SQL注入问题 MySQL的索引 为什么使用索引 索引的种类 主键索引 唯一索引 普通索引 索引优缺点 不会命中索引的情况 explain 索引覆盖 My ...
- Python(九) Python 操作 MySQL 之 pysql 与 SQLAchemy
本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...
- 练习:python 操作Mysql 实现登录验证 用户权限管理
python 操作Mysql 实现登录验证 用户权限管理
- Python操作MySQL
本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb ...
- Python操作Mysql之基本操作
pymysql python操作mysql依赖pymysql这个模块 下载安装 pip3 install pymysql 操作mysql python操作mysql的时候,是通过”游标”来进行操作的. ...
- python成长之路【第十三篇】:Python操作MySQL之pymysql
对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎 ...
- python操作mysql数据库的相关操作实例
python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...
随机推荐
- JSP + JavaBean + Servlet实现MVC设计模式
1.流程图: 2.代码清单 数据库脚本: DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `userid` ) NOT NULL, `name` ...
- Filter学习总结,顺便提及点servlet3.0异步filter和异步监听
Filter介绍: Filter在项目中经常可以用到,通常配置在web.xml中.是服务器端的一个组件,对于用户的请求和响应数据进行过滤操作,控制是否让用户访问到对应的web资源.常用于编 ...
- 1977年提出的OSI七层模型
OSI七层模型: 7应用层 数据用户接口,提供人操作软件的接口 6表示层 数据的表现形式,特定的功能实现,比如数据加密.数据传输的编码等,一般由软件完成 ...
- JS实现“双色球”
需求: 双色球玩法简单介绍: “双色球”彩票投注区分为红色球号码区和蓝色球号码区.每注投注号码由6个红色球号码和1个蓝色球号码组成.红色球号码从1--33中选择:蓝色球号码从1--16中选择.程序要求 ...
- dedecms 去掉栏目页的预览功能
首先找到include/typeunit.class.admin.php 再找到 ListAllType 方法,该方法的功能是“读出所有分类” 找到并将该方法内的所以以下代码注释或者删除”<a ...
- day1 python 介绍、基本语法、流程控制
请查看我的云笔记链接: http://note.youdao.com/noteshare?id=0ea7425d3e3669800cb0d73f7ec8865d&sub=D87B4BF820C ...
- linux内核编译与开发
一.Linux内核简介linux kernel map: linux 系统体系结构: linux kernel体系结构: arm有7种工作模式,x86也实现了4个不同级别RING0-RING3,RIN ...
- WIN10安装VS2013出现兼容性问题解决
在WIN10安装VS2013时,会提示“windows程序兼容模式已打开”,通过搜索引擎搜索的常见方案为: 1.使用命令行安装,进入vs_ultimate文件所在目录,输入:vs_ultimate / ...
- Codeforces Round #515 (Div. 3) B. Heaters【 贪心 区间合并细节 】
任意门:http://codeforces.com/contest/1066/problem/B B. Heaters time limit per test 1 second memory limi ...
- D - Going Home POJ - 2195 网络流
On a grid map there are n little men and n houses. In each unit time, every little man can move one ...