python连接mysql数据库命令_python连接MySQL数据库详解

一.创建数据库test sql语句:create database test

二.创建表trade sql语句:

DROP TABLE IF EXISTS `trade`;

CREATE TABLE `trade` (

`id` int(4) unsigned NOT NULL AUTO_INCREMENT,

`name` varchar(6) NOT NULL COMMENT '用户真实姓名',

`account` varchar(11) NOT NULL COMMENT '银行储蓄账号',

`saving` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '账户储蓄金额',

`expend` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '账户支出总计',

`income` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '账户收入总计',

PRIMARY KEY (`id`),

UNIQUE KEY `name_UNIQUE` (`name`)

) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

INSERT INTO `trade` VALUES (1,'马化腾','654321',0.00,0.00,0.00);

三.通过pyMySQL操纵MySQL数据库(pyMySQL下载命令:pip install pymysql)

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import pymysql.cursors

# 连接数据库

connect = pymysql.Connect(

host='localhost',

port=3306,

user='root',

passwd='',

db='test',

charset='utf8'

)

# 获取游标

cursor = connect.cursor()

# 插入数据

sql = "INSERT INTO trade (name, account, saving) VALUES ( '%s', '%s', %.2f )"

data = ('马云', '123456', 10000)

cursor.execute(sql % data)

connect.commit()

print('成功插入', cursor.rowcount, '条数据')

# 修改数据

sql = "UPDATE trade SET saving = %.2f WHERE account = '%s' "

data = (8888, '123456')

cursor.execute(sql % data)

connect.commit()

print('成功修改', cursor.rowcount, '条数据')

# 查询数据

sql = "SELECT name,saving FROM trade WHERE account = '%s' "

data = ('123456',)

cursor.execute(sql % data)

for row in cursor.fetchall():

print("Name:%s\tSaving:%.2f" % row)

print('共查找出', cursor.rowcount, '条数据')

# 删除数据(可以先不测这个,观察数据库是否已经添加数据)

# sql = "DELETE FROM trade WHERE account = '%s' LIMIT %d"

# data = ('123456', 1)

# cursor.execute(sql % data)

# connect.commit()

# print('成功删除', cursor.rowcount, '条数据')

# 事务处理

sql_1 = "UPDATE trade SET saving = saving + 1000 WHERE account = '654321' "

sql_2 = "UPDATE trade SET expend = expend + 1000 WHERE account = '654321' "

sql_3 = "UPDATE trade SET income = income + 2000 WHERE account = '654321' "

try:

cursor.execute(sql_1) # 储蓄增加1000

cursor.execute(sql_2) # 支出增加1000

cursor.execute(sql_3) # 收入增加2000

except Exception as e:

connect.rollback() # 事务回滚

print('事务处理失败', e)

else:

connect.commit() # 事务提交

print('事务处理成功', cursor.rowcount)

# 关闭连接

cursor.close()

connect.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值