概述: 对于访问MySQL数据库的操作,我想大家也都有一些了解。不过,因为最近在学习Python,以下就用Python来实现它。其中包括创建数据库和数据表、插入记录、删除记录、修改记录数据、查询数据、删除数据表、删除数据库。还有一点就是我们最好使用一个新定义的类来处理这件事。因为这会使在以后的使用过程中更加的方便(只需要导入即可,避免了重复制造轮子)。实现功能介绍:1.封装一个DB类 2.数据库操作:创建数据库和数据表 3.数据库操作:插入记录 4.数据库操作:一次插入多条记录 5.数据库操作:删除记录 6.数据库操作:修改记录数据 7.数据库操作:一次修改多条记录数据 8.数据库操作:查询数据 9.数据库操作:删除数据表 10.数据库操作:删除数据库数据库类的定义: heroDB.py#!/usr/bin/env pythonimport MySQLdbDATABASE_NAME = "hero"class HeroDB: # init class and create a database def __init__(self, name, conn, cur): self.name = name self.conn = conn self.cur = cur try: cur.execute("create database if not exists " + name) conn.select_db(name) conn.commit() except MySQLdb.Error, e: print "Mysql Error %d: %s" % (e.args[0], e.args[1])
# create a table def createTable(self, name): try: ex = self.cur.execute if ex("show tables") == 0: ex("create table " + name + "(id int, name varchar(20), sex int, age int, info varchar(50))") self.conn.commit() except MySQLdb.Error, e: print "Mysql Error %d: %s" % (e.args[0], e.args[1])
# insert single record def insert(self, name, value): try: self.cur.execute("insert into " + name + " values(%s,%s,%s,%s,%s)", value) except MySQLdb.Error, e: print "Mysql Error %d: %s" % (e.args[0], e.args[1])
# insert more records def insertMore(self, name, values): try: self.cur.executemany("insert into " + name + " values(%s,%s,%s,%s,%s)", values) except MySQLdb.Error, e: print "Mysql Error %d: %s" % (e.args[0], e.args[1])
# update single record from table # name: table name # values: waiting to update data def updateSingle(self, name, value): try: # self.cur.execute("update " + name + " set name=" + str(values[1]) + ", sex=" + str(values[2]) + ", age=" + str(values[3]) + ", info=" + str(values[4]) + " where id=" + str(values[0]) + ";") self.cur.execute("update " + name + " set name=%s, sex=%s, age=%s, info=%s where id=%s;", value) except MySQLdb.Error, e: print "Mysql Error %d: %s" % (e.args[0], e.args[1])
# update some record from table def update(self, name, values): try: self.cur.executemany("update " + name + " set name=%s, sex=%s, age=%s, info=%s where id=%s;", values) except MySQLdb.Error, e: print "Mysql Error %d: %s" % (e.args[0], e.args[1])
# get record count from db table def getCount(self, name): try: count = self.cur.execute("select * from " + name) return count except MySQLdb.Error, e: print "Mysql Error %d: %s" % (e.args[0], e.args[1])
# select first record from database def selectFirst(self, name): try: self.cur.execute("select * from " + name + ";") result = self.cur.fetchone() return result except MySQLdb.Error, e: print "Mysql Error %d: %s" % (e.args[0], e.args[1])
# select last record from database def selectLast(self, name): try: self.cur.execute("SELECT * FROM " + name + " ORDER BY id DESC;") result = self.cur.fetchone() return result except MySQLdb.Error, e: print "Mysql Error %d: %s" % (e.args[0], e.args[1])
# select next n records from database def selectNRecord(self, name, n): try: self.cur.execute("select * from " + name + ";") results = self.cur.fetchmany(n) return results except MySQLdb.Error, e: print "Mysql Error %d: %s" % (e.args[0], e.args[1])
values = [] values.append(["SunWukong", 1, 1300, "The hero who in fairy tale.", 1]) values.append(["Zeus", 1, 50000, "The king who in The Quartet myth.", 2]) values.append(["Prophet", 1, 20000, "The hero who in fairy tale.3", 3]) hero.update("heros", values)