小知识点:
Mysql的特点:
mysql 事务: 他是一个操作序列 ,这个操作要么都执行,要么都不执行,
他是不可分割的工作单位
举例:从寒沙支付宝账户中减去2000元 -2000
在父母支付宝账户中加上2000元 +2000
这两个操作同时执行,不可分割。可避免服务器突然崩掉,
只有寒沙减去2000元,而父母没有加2000元的意外。
事务具有四大特性:
1.原子性:一个事务是一个不可分割的工作单位,要么都成功,要么都失败
2.一致性: 事务开始之前和事务结束之后,数据库的完整性没有被破坏掉
3.隔离性: 一个事务所做的修改在提交之前,对其他的事务是不可见的
4.持久性: 一旦事务提交 ,所做的修改永久的保存在数据库当中
开始事务 : begin
提交:commit
回滚:rollback 相当于还原,在事物里撤销上一次操作。
(但注意:是对数据的操作才能回滚,如果是对表结构的操作,比如删除表等,就不可以回滚)
Python与数据库交互
1.DB-API:(DB是data;API是方法,接口)
Python与数据库的交互:
在没有AD-API之前,各数据库之间的应用接口非常混乱,实现各不相同,如果项目需要更换数据库,基本上需要把所有和数据库相关的代码都进行改动,十分不方便。
AD-API:
AD-API的出现就是为了解决这个问题,python所有的数据库接口在一定程度上都遵守python AD-API规范,它定义了一系列的操作数据库的方式,为各种数据库提供了一致的访问接口,项目中更换使用数据库变得更加方便。
2.MySQL:(端口是3306)
(1)连接mysql:
db_config = {
‘host’:’ip’,
‘port’:port,
'user': '账号',
'password': '密码', 不是utf-8
'db': '数据库名',
'charset': 'utf8',
}
使用命令: conn = pymysql.connect(**db_config)
(2)MySQL:
(3)使用步骤:
1.导入模块: import pymysql
2.建立连接:pymysql.connect(**dbconfig)
连接是不能操作数据库的,需要用连接生成游标来操作
3.创建游标: connection.cursor()
4.执行SQL语句:cursor.execute(sql)
SQL语句都是通过这个方法执行
5.获取结果:cur.fetchall()
4.注意要点:
1.在pymysql中执行的SQL语句不需要加 ;
2.execute执行完后不是直接得到结果,需要你主动去获取
3.和文件一样,别忘了关闭游标与连接
4.事务的回滚和提交 --------------------> rollbck 与commit
3.Redis:
在python中操作redis的命令和命令行的用户几乎一模一样
1.安装python包redis: pip install redis
2.连接redis:redis.Redis() 为了兼容旧版本(不推荐使用)
3.连接redis:Redis.StrictRedis()
4.在程序操作的数据为bytes类型,加入decode_responses=True,写入的数据为str类型