文档章节

Python DB-API

o
 osc_bj19pt0o
发布于 2018/05/06 22:26
字数 755
阅读 3
收藏 0

「深度学习福利」大神带你进阶工程师,立即查看>>>

一、DB-API

1.1、Python的DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同的方式操作各数据库。

1.2、Python DB-API的使用流程:

  • 引入API模块
  • 获取与数据库的连接
  • 执行sql语句和存储过程
  • 关闭数据库连接

1.3、Python操作mysql

Python3以后不支持MySQLdb了,用的是pymysql,这两个模块的功能是一模一样的,而2.x用的是MySQLdb模块

1.4、示例1:

import pymysql

class TestMysql(object):

def __init__(self): # 这个类的构造器的作用是定义连接,封装后每次调用的时候不用重新连接,提高系统的资源利用和代码执行效率
self.dbConfig = {
"host": "192.168.48.136",
"port": 3306,
"user": "xiang",
"passwd": "xiang",
"db": "test"
}
conn = pymysql.connect(**self.dbConfig)
self.a = conn

def select(self):
print("select")

def update(self):
print("update")


if __name__ == '__main__':
conn = TestMysql()

 1.5、示例2:

import pymysql

class Check(object):
def __init__(self):
self.config = {
"host": "172.16.94.85",
"port": 3306,
"user": "sqlalchemy",
"passwd": "sqlalchemy",
"db": "sqlalchemy"
}
self.conn = pymysql.connect(**self.config) #创建连接

def select(self):
cur = self.conn.cursor()  #创建游标
sql = "select * from student;"
cur.execute(sql)   #执行sql
result = cur.fetchall()
return result


if __name__ == '__main__':
check = Check()
print(check.select())

二、Mysql的事物

2.1、一般来说,事物是必须满足四个条件(ACID):Atomicity(原子性)、Consistency(稳定性)、Isolation(隔离性)、Durability(可靠性)

  • 事物的原子性:一组事物,要么成功,要么撤回
  • 稳定性:有非法数据(外键约束之类),事物撤回
  • 隔离性:事物独立运行,一个事物处理后的结果,影响了其他事物,那么其他事物会撤回,事物的100%隔离,需要牺牲速度
  • 可靠性:软硬件奔溃后,InnoDB数据表驱动会利用日志文件重构修改,可靠性和高速度不可兼得,innodb flush log at trx commit选项,决定什么时候把事物保存到日志里

2.2、事务处理

在 MySQL 命令行的默认设置下,事务都是自动提交的,即执行 SQL 语句后就会马上执行 COMMIT 操作。因此要显式地开启一个事务务须使用命令 BEGIN 或 START TRANSACTION,或者执行命令 SET AUTOCOMMIT=0,用来禁止使用当前会话的自动提交。

MYSQL 事务处理主要有两种方法:

①、用 BEGIN, ROLLBACK, COMMIT来实现

BEGIN 开始一个事务
ROLLBACK 事务回滚 COMMIT 事务确认 

②、直接用 SET 来改变 MySQL 的自动提交模式:

SET AUTOCOMMIT=0 禁止自动提交
SET AUTOCOMMIT=1 开启自动提交 
查看Mysql 是否开启了事务(默认自动开启的)
mysql> show variables like 'auto%';

 

 2.3、mysql常用操作:

  • 创建用户以及授权:grant all on 库名.表名 to 'user1' identified by 'passwd';
  • 查看授权情况:show grants;
  • 查看表的行数:select count(*) from mysql.user;
  • 查看表的内容:select * from mysql.db;
  • 查询表相关:select db from mysql.db; select db,user from mysql.db; select * from mysql.db where host like '192.168.%';
  • 插入表数据:insert into db1.t1 values (1, 'abc');
  • 更新表数据:update db1.t1 set name='aaa' where id=1;
  • 清空表内容:truncate table db1.t1;
  • 删除表:drop table db1.t1;
  • 删除库:drop database db1;

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
beego API开发以及自动化文档

beego API开发以及自动化文档 beego1.3版本已经在上个星期发布了,但是还是有很多人不了解如何来进行开发,也是在一步一步的测试中开发,期间QQ群里面很多人都问我如何开发,我的业余时间实在...

astaxie
2014/06/25
2.7W
22
PHP框架--XiunoPHP

XiunoPHP 是一款面向高负载应用的 PHP 开发框架,PHPer 通过它可以快速的简单的开发出高负载项目。 XiunoPHP 前身名为 Xiuno Framework,更名后版本号从 v1.0 开始计算。已经经过了多年的实际...

匿名
2013/03/20
2.5K
0
Python开发者社区整站源码--Pythoner

pythoner.net 整站源代码 依赖模块 Django 1.4.2 PIL DjangoVerifyCode 0.2.2 开发环境配置 运行scripts目录下的setupenv.sh文件,将会自动安装配置所需环境 设置本地环境变量:export env=D...

~T.y~
2013/04/10
3.2K
0
Redis 分片实现--Redis Shard

redis-shard 是 Redis 分区的 Python API ,基于对 key 和 key tag 进行 CRC32 checksum 计算,可参考文章 http://antirez.com/post/redis-presharding.html . 该项目由知乎网开发。 使用限制...

匿名
2012/10/24
5.7K
0
Python数据分析工具包--Pandas

Python Data Analysis Library 或 pandas 是连接 SciPy 和 NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集...

匿名
2012/10/30
2.1W
2

没有更多内容

加载失败,请刷新页面

加载更多

汇总你在 Linux 上的命令使用情况

使用合适的命令,你可以快速了解 Linux 系统上使用的命令以及执行的频率。 汇总 Linux 系统上使用的命令只需一串相对简单的命令以及几条管道将它们绑定在一起。当你的历史记录缓冲区保留了最...

osc_bvincwvq
15分钟前
7
0
Hacker News 简讯 2020-08-15

最后更新时间: 2020-08-15 07:01 Welders set off Beirut blast while securing explosives - (maritime-executive.com) 焊工在固定炸药的同时引爆了贝鲁特爆炸 得分:383 | 评论:322 Factor......

FalconChen
今天
24
0
OSChina 周六乱弹 —— 老椅小猫秋乡梦 梦里石台堆小鱼

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @小小编辑 :《MOM》- 蜡笔小心 《MOM》- 蜡笔小心 手机党少年们想听歌,请使劲儿戳(这里) @狄工 :腾讯又在裁员了,35岁以上清退,抖音看到...

小小编辑
今天
111
3
构建高性能队列,你不得不知道的底层知识!

前言 本文收录于专辑:http://dwz.win/HjK,点击解锁更多数据结构与算法的知识。 你好,我是彤哥。 上一节,我们一起学习了如何将递归改写为非递归,其中,用到的数据结构主要是栈。 栈和队列...

彤哥读源码
今天
17
0
Anaconda下安装keras和tensorflow

Anaconda下安装keras和tensorflow 一、下载并安装Anaconda: Anaconda下载 安装步骤: 如果是多用户操作系统选择All Users,单用户选择Just Me 选择合适的安装路径 然后勾选这个,自动配置环境...

Atlantis-Brook
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部