Python调用Mysqldb完成MySql的CRUD操作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python调用Mysqldb完成MySql的CRUD操作相关的知识,希望对你有一定的参考价值。
[硬件环境]
Win10 64位
[软件环境]
Python版本:2.7.3
IDE:JetBrains PyCharm 2016.3.2
Python库:
1.1) MySQL-python-1.2.4b4.win32-py2.7.exe
[搭建过程]
OpenCV Python库:
1. 直接EXE文件安装
[相关代码]
#!/usr/bin/python # -*- coding: UTF-8 -*- import MySQLdb # 您已经创建了数据库 TESTDB. # 在TESTDB数据库中您已经创建了表 EMPLOYEE # EMPLOYEE表字段为 FIRST_NAME, LAST_NAME, AGE, SEX 和 INCOME。 # 连接数据库TESTDB使用的用户名为 "testuser" ,密码为 "test123",你可以可以自己设定或者直接使用root用户名及其密码,Mysql数据库用户授权请使用Grant命令。 # 在你的机子上已经安装了 Python MySQLdb 模块。 # 打开数据库连接 db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB" ) # 使用cursor()方法获取操作游标 cursor = db.cursor() # 使用execute方法执行SQL语句 cursor.execute("SELECT VERSION()") # 使用 fetchone() 方法获取一条数据库。 data = cursor.fetchone() print "Database version : %s " % data # 关闭数据库连接 db.close() ################################################ 创建数据库表 #################################################### # 打开数据库连接 db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB" ) # 使用cursor()方法获取操作游标 cursor = db.cursor() # 如果数据表已经存在使用 execute() 方法删除表。 cursor.execute("DROP TABLE IF EXISTS EMPLOYEE") # 创建数据表SQL语句 sql = """CREATE TABLE EMPLOYEE ( FIRST_NAME CHAR(20) NOT NULL, LAST_NAME CHAR(20), AGE INT, SEX CHAR(1), INCOME FLOAT )""" cursor.execute(sql) # 关闭数据库连接 db.close() ################################################ 数据库插入 #################################################### # 打开数据库连接 db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB" ) # 使用cursor()方法获取操作游标 cursor = db.cursor() # SQL 插入语句 sql = """INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES (‘Mac‘, ‘Mohan‘, 20, ‘M‘, 2000)""" try: # 执行sql语句 cursor.execute(sql) # 提交到数据库执行 db.commit() except: # Rollback in case there is any error db.rollback() # 关闭数据库连接 db.close() ################################################ 数据库查询 #################################################### # 打开数据库连接 db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB" ) # 使用cursor()方法获取操作游标 cursor = db.cursor() # SQL 查询语句 sql = "SELECT * FROM EMPLOYEE WHERE INCOME > ‘%d‘" % (1000) try: # 执行SQL语句 cursor.execute(sql) # 获取所有记录列表 results = cursor.fetchall() for row in results: fname = row[0] lname = row[1] age = row[2] sex = row[3] income = row[4] # 打印结果 print "fname=%s,lname=%s,age=%d,sex=%s,income=%d" % (fname, lname, age, sex, income ) except: print "Error: unable to fecth data" # 关闭数据库连接 db.close() ################################################ 数据库更新 #################################################### # 打开数据库连接 db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB" ) # 使用cursor()方法获取操作游标 cursor = db.cursor() # SQL 更新语句 sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = ‘%c‘" % (‘M‘) try: # 执行SQL语句 cursor.execute(sql) # 提交到数据库执行 db.commit() except: # 发生错误时回滚 db.rollback() # 关闭数据库连接 db.close() ################################################ 数据库删除 #################################################### # 打开数据库连接 db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB" ) # 使用cursor()方法获取操作游标 cursor = db.cursor() # SQL 删除语句 sql = "DELETE FROM EMPLOYEE WHERE AGE > ‘%d‘" % (20) try: # 执行SQL语句 cursor.execute(sql) # 提交修改 db.commit() except: # 发生错误时回滚 db.rollback() # 关闭连接 db.close()
以上是关于Python调用Mysqldb完成MySql的CRUD操作的主要内容,如果未能解决你的问题,请参考以下文章