Python操作MySQL数据库

数据库python-mysql安装参考:http://blog.phpfs.com/archives/2343.html

# -*- coding: UTF-8 -*-
import MySQLdb
import time
#警告信息try except是无法捕捉的
from warnings import filterwarnings
filterwarnings('error', category = MySQLdb.Warning)
cursor = conn = delete_id = update_id = 0
try:
    conn = MySQLdb.connect(host='10.200.10.203', user='test', passwd='test', db='test', port=3306,charset='utf8')
    cursor = conn.cursor()
    #创建表
    create_tabl_sql = """CREATE TABLE IF NOT EXISTS `test` (
      `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
      `name` varchar(200) NOT NULL,
      `create_time` datetime NOT NULL,
      `content` text NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8"""
    #cursor.execute(create_tabl_sql)
except MySQLdb.Warning, w:
    print "警告信息 %s" % str(w)
except MySQLdb.Error, e:
    print "错误信息 %d %s" % (e.args[0], e.args[1])

# 插入数据
name = '张三'
create_time = time.strftime('%Y-%m-%d %H:%M:%S')
content = '这是内容'
insert_data_sql = "insert into `test` (`name`, `create_time`, `content`) values ('" + name + "','" + create_time + "','" + content + "')"
print "执行语句: %s" % insert_data_sql
try:
    cursor.execute(insert_data_sql)
    conn.commit()
except :
    # 异常回滚
    print '插入异常回滚'
    conn.rollback()
# 查询数据
select_data_sql = "select * from test order by id desc limit 2"
print "执行语句: %s" % select_data_sql
try:
    cursor.execute(select_data_sql)
    results = cursor.fetchall()
    for row in results:
        print '编号:%d' % (row[0])
        print u'姓名:%s' % (row[1])
        print u'内容:%s' % (row[3])
    update_id = results[0][0]
    delete_id = results[1][0]
except :
    # 异常回滚
    print '查询数据失败'

# 删除数据
delete_data_sql = "delete from `test` WHERE id  = %d " % (delete_id)
print '执行语句: %s' % delete_data_sql
try:
   cursor.execute(delete_data_sql)
   conn.commit()
except:
    print '删除异常回滚'
    conn.rollback()
# 更新数据
name_2 = '李四'
content_2 = '这是新内容'
update_data_sql = "update `test` set name ='" + name_2 + "',content='" + content_2 + "' where id = %d" % (update_id)
print '执行语句: %s' % update_data_sql
try:
    cursor.execute(update_data_sql)
    conn.commit()
except:
    print '更新异常回滚'
    conn.rollback()

cursor.close()
conn.close()

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏黑泽君的专栏

在命令行下,Mysql显示各个端所使用的字符集命令

862
来自专栏我的博客

ubuntu安装puref-ftpd

1.安装pureftpd sudo apt-get install pure-ftpd sudo apt-get install pure-ftpd-mysql...

3004
来自专栏性能与架构

Mysql Query Cache的基本原理

Query Cache是根据SQL语句来cache的,一个SQL查询如果以select开头,那么MySQL将尝试对其进行缓存 每个Cache都是以完整的SQL...

3525
来自专栏乐沙弥的世界

PL/SQL --> DML 触发器

何谓触发器?简言之,是一段命名的PL/SQL代码块,只不过该代码块在特定的条件下被触发并且执行。对于这样的代码我们称之为触发器

1023
来自专栏pangguoming

Spring Security OAuth2 Demo

Spring Security OAuth2 Demo 项目使用的是MySql存储, 需要先创建以下表结构: CREATE SCHEMA IF NOT EXIS...

9167
来自专栏乐沙弥的世界

Oracle 测试常用表BIG_TABLE

创建测试用表,DBA经常用到,通常都是基于dba_objects来创建的比较多。本文根据Tom大师的big_table进行了整理,供大家参考。

1482
来自专栏左瞅瞅,右瞅瞅

SaltStack——小叙(远程执行)

想要返回结果返回mysql 库中,返回是salt-minion 返回,所有的salt-minion 需要安装Mysql-python 依赖包:

2144
来自专栏企鹅号快讯

python数据处理实战-自动统计mysql数据库数据表每天数据量

日常报表统计,日总量,日增量不可避免,这篇文章我们从实际应用出发,从逻辑思考到最后写出代码,一步步分析拆解 一.表结构设计 既然想统计每一张表每天的数据量,后续...

5357
来自专栏python3

mysql-表的操作

数据库中的表也应该有不同的类型,表的类型不同,会对应mysql不同的存取机制,表类型又称为存储引擎

761
来自专栏Albert陈凯

hive的partition的作用和使用方法

一、背景 在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作。有时候只需要扫描表中关心的一部分数据,因此建表时引入了partiti...

4984

扫码关注云+社区

领取腾讯云代金券