MySQLdb
MySQLdb设计实战
import MySQLdb
from DBUtils.PooledDB import PooledDB
pool = PooledDB(MySQLdb,5,host='localhost',user='root',passwd='pwd',db='myDB',port=3306,blocking=True) #5为连接池里的最少连接数 conn = pool.connection() #以后每次需要数据库连接就是用connection()函数获取连接就好了
cur=conn.cursor()
SQL="select * from table1"
r=cur.execute(SQL)
r=cur.fetchall()
cur.close()
conn.close() # 创建数据库
SET NAMES utf8;
SET FOREIGN_KEY_CHECKS=0; #禁用外键约束
DROP TABLE IF EXISTS `employee_tbl`; CREATE TABLE IF NOT EXISTS `runoob_tbl`(
`runoob_id` INT UNSIGNED AUTO_INCREMENT NOT NULL,
`runoob_title` VARCHAR(100) NOT NULL UNIQUE,
`runoob_author` VARCHAR(40) NOT NULL,
`submission_date` DATETIME NOT NULL,
`sex` enum('m','w','l') DEFAULT NULL,
PRIMARY KEY ( `runoob_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8; insert into runoob_tbl(runoob_title, runoob_author, submission_date) values("a", "b", now());
INSERT INTO runoob_tbl(runoob_title, runoob_author, submission_date) VALUES("JAVA 教程", "RUNOOB.COM", '2016-05-06');
UPDATE runoob_tbl SET runoob_title='a' WHERE runoob_id=1;
DELETE FROM runoob_tbl WHERE runoob_id=3;
SELECT * from runoob_tbl WHERE runoob_title LIKE '%a%';
SELECT country FROM Websites UNION ALL SELECT country FROM apps ORDER BY country; UNION ALL不会去重
SELECT * from runoob_tbl ORDER BY submission_date DESC; DESC升序,高的在上 AESC降序,高的在下
SELECT name FROM person_tbl WHERE name REGEXP 'ok$'; name字段中以'ok'为结尾
MySQLdb的使用
#mysql> create table `account`(
# -> `acctid` int(11) default null comment 'XXXX',
# -> `money` int(11) default null comment 'XXX'
# -> ) ENGINE = innodb default charset = utf8;
#coding:utf8
import sys
import MySQLdb class TransferMoney(object):
def __init__(self,conn):
self.conn = conn
def transfer(self,s,t,money):
try:
self.check_acct_avilable(s)
self.check_acct_avilable(t)
self.has_enough_money(s,money)
self.reduce_money(s,money)
self.add_money(t,money)
self.conn.commit()
except Exception as e:
self.conn.rollback()
raise e
def check_acct_avilable(self,acctid):
cursor = self.conn.cursor()
try:
cursor = self.conn.cursor()
sql = "select * from account where acctid=%s"%acctid
cursor.execute(sql)
print "check_acct_avilable: " + sql
rs = cursor.fetchall()
if len(rs) != 1:
raise Exception("not have this ID %s"%acctid)
finally:
cursor.close() def has_enough_money(self,acctid,money):
cursor = self.conn.cursor()
try:
cursor = self.conn.cursor()
sql = "select * from account where acctid=%s and money > %s"%(acctid,money)
cursor.execute(sql)
print "has_enough_money: " + sql
rs = cursor.fetchall()
if len(rs) != 1:
raise Exception("accout not have enough money %s"%acctid)
finally:
cursor.close() def reduce_money(self,acctid,money):
cursor = self.conn.cursor()
try:
cursor = self.conn.cursor()
sql = "update account set money=money-%s where acctid=%s"%(money,acctid)
cursor.execute(sql)
print "reduce_money: " + sql
if cursor.rowcount != 1:
raise Exception("ID reduce money fail %s"%acctid)
finally:
cursor.close() def add_money(self,acctid,money):
cursor = self.conn.cursor()
try:
cursor = self.conn.cursor()
sql = "update account set money=money+%s where acctid=%s"%(money,acctid)
cursor.execute(sql)
print "add_money: " + sql
if cursor.rowcount != 1:
raise Exception("ID add money fail %s"%acctid)
finally:
cursor.close() if __name__ == "__main__":
s = sys.argv[1]
t = sys.argv[2]
money = sys.argv[3] conn = MySQLdb.Connect(host = '127.0.0.1',port = 3306,user = 'root',passwd = 'wjl123',db = 'imooc',charset = 'utf8')
t_m = TransferMoney(conn) try:
t_m.transfer(s,t,money)
except Exception as e:
print e
finally:
conn.close()
MySQLdb的更多相关文章
- ubuntu 启动MySql和安装python的MySQLdb模块
ubuntu一般会自己预安装mysql,你只需 /etc/init.d/mysql start|stop|restart|reload|force-reload|status 命令便可以实现mysq ...
- Mysql5.5升级到5.7后MySQLdb不能正常使用的问题解决
ubuntu系统 报错信息1 Type "help", "copyright", "credits" or "license&qu ...
- Python3.4下安装pip和MySQLdb
想用pyhton3.4做数据分析,pip和MySQLdb是必要的,一个便于安装常用模块,一个用来操作数据库.当时安装这两个模块时,由于没有人指导,花了很多的时间才安装好. 安装pip时,按照网上的教程 ...
- Create function through MySQLdb
http://stackoverflow.com/questions/745538/create-function-through-mysqldb How can I define a multi-s ...
- python MySQLdb 对mysql基本操作方法
#!/usr/bin/env python # -*- coding:utf-8 -*- import MySQLdb conn = MySQLdb.connect(host=',db='host') ...
- Python的MySQLdb模块安装
MySQL-python-1.2.1.tar.gz 下载地址:https://pan.baidu.com/s/1kVfH84v 然后解压,打开README(这个其实没有什么鸟用) 里面有安装过程: ...
- Python中MySQLdb模块的安装
安装 MySQLdb是Python语言访问mysql数据库的一个模块,如果你不确定自己的Python环境中是否已经安装了这个模块,可以打开Python shell,输入import MySQLdb,如 ...
- [Python] MySQLdb(即 MySQL-python 包)在 OS X 中安装指南
本文参考:http://www.cnblogs.com/ifantastic/archive/2013/04/13/3017677.html 安装环境:OS X 操作系统,Python 2.7.10 ...
- MySQLdb操作mysql的blob值
一般情况下我们是把图片存储在文件系统中,而只在数据库中存储文件路径的,但是有时候也会有特殊的需求:把图片二进制存入数据库. 今天我们采用的是python+mysql的方式 MYSQL 是支持把图片存入 ...
- mac OS X 配置Python+Web.py+MySQLdb环境
MAC默认支持Python 2.7所以不用安装. 1.安装pip sudo easy_install pip 2.安装Web.py sudo pip install Web.py 3.安装MySQLd ...
随机推荐
- 《View Programming Guide for iOS》之frame、bounds和center之间的关系
The frame property contains the frame rectangle, which specifies the size and location of the view i ...
- webservice发布在外网上的在system.web中加入这个就好使了
<webServices> <protocols> <add name="HttpSoap"/> ...
- Java_oop_继承
不用多久,就会升职加薪,当上总经理,出任CEO,迎娶白富美,走上人生巅峰.想想还有点小激动呢, OK,睡醒了,我们说到继承就先来学习一下Java中继承的语法. public SubClass exte ...
- C#_控件——DropDownList
1.html <asp:CheckBox ID="CheckBox11" runat="server" onclick="changecheck ...
- [动态规划]状态压缩DP小结
1.小技巧 枚举集合S的子集:for(int i = S; i > 0; i=(i-1)&S) 枚举包含S的集合:for(int i = S; i < (1<<n); ...
- document操作
1.windows对象操作 事件两个参数sender:代表事件源,即谁触发的事件e:代表事件数据load(sender,e)事件是一个特殊的委托(代理)2.document对象操作找元素:1.根据id ...
- 转:C#精髓 第四讲 GridView 72般绝技
说明:准备出一个系列,所谓精髓讲C#语言要点.这个系列没有先后顺序,不过尽量做到精.可能会不断增删整理,本系列最原始出处是csdn博客,谢谢关注. C#精髓 第四讲 GridView 72般绝技 作者 ...
- ci总结
1.创建模型,在模型中加载$this->load->database();2.在模型中写入想实现的功能方法3.在控制器中加载辅助函数和模型,$this->load->model ...
- 从数学角度看最大期望(EM)算法 I
[转载请注明出处]http://www.cnblogs.com/mashiqi 2014/11/18 更新.发现以前的公式(2)里有错误,现已改过来.由于这几天和Can讨论了EM算法,回头看我以前写的 ...
- C++ QUICK REFERENCE
C++ string 用法详解 字符串分割(C++) C++ QUICK REFERENCE Matt Mahoney, mmahoney@cs.fit.edu DECLARATIONS enum ...