MySQL MySQLdb for Python 2.7 (Ubuntu)

MySQL MySQLdb for Python 2.7 (Ubuntu)

MySQL是一个非常流行的关系型数据库管理系统,设计简单而且易于使用。Python则是一种优雅而强大的解释型高级编程语言。在Python的强大加持下,我们完全可以通过编写Python程序来控制MySQL的行为,实现针对MySQL的数据处理。

然而,Python与MySQL之间并不是直接能够通讯的,其间需要经过一个中间件,用于将Python程序和MySQL服务器进行桥接。而这个中间件就是MySQLdb模块。

阅读更多:MySQL 教程

安装MySQLdb

为了在Python中使用MySQLdb,我们首先需要对其进行安装。

在Ubuntu操作系统中,我们可以使用以下命令来进行安装:

sudo apt-get install python-mysqldb

连接MySQL

成功安装MySQLdb之后,我们可以开始编写Python程序,并使用MySQLdb来连接MySQL服务器。

以下是一个Python程序的示例,用于连接MySQL服务器:

import 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()

在该示例程序中,我们使用MySQLdb.connect()方法来进行MySQL服务器的连接。在该方法中需要指定服务器的地址、用户名、密码以及待连接的数据库名称。

数据库操作

成功连接MySQL服务器之后,我们可以开始执行各种SQL命令,对数据库进行操作。

创建数据库

以下是一个Python程序的示例,用于创建一个新的数据库:

import MySQLdb

# 打开数据库连接
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 )"""

# 执行SQL语句
cursor.execute(sql)

# 关闭数据库连接
db.close()

在该示例程序中,我们使用cursor.execute()方法来执行SQL命令。在该方法中需要传递SQL命令字符串,该命令将在MySQL服务器上被执行。

插入数据

除了创建数据库之外,我们还可以通过SQL命令向数据库中插入数据。以下是一个Python程序的示例,用于向数据库中插入一条新记录:

import MySQLdb

# 打开数据库连接
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:
    # 发生错误时回滚
    db.rollback()

# 关闭数据库连接
db.close()

在该示例程序中,我们首先使用SQL命令创建一个数据表,并向数据表中插入一条新记录。其中,VALUES子句指定新记录中每个字段的值。

查询数据

在对数据库进行操作之后,我们可以使用SQL命令来进行数据的查询。以下是一个Python程序的示例,用于查询数据库中所有记录:

import MySQLdb

# 打开数据库连接
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )

# 使用cursor()方法获取操作游标 
cursor = db.cursor()

# SQL查询语句
sql = "SELECT * FROM EMPLOYEE \
       WHERE INCOME > %s" % (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 fetch data"

# 关闭数据库连接
db.close()

在该示例程序中,我们首先使用SELECT语句查询数据库中所有记录,并对查询结果进行打印输出。

更新数据

在针对数据库进行操作时,我们还需要对记录中的值进行修改。以下是一个Python程序的示例,用于更新一条特定记录:

import MySQLdb

# 打开数据库连接
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()

在该示例程序中,我们使用SQLUPDATE语句修改了数据库中特定记录的值。

删除数据

除了对记录的值进行修改之外,我们还可以使用SQLDELETE语句删除数据表中的记录。以下是一个Python程序的示例,用于删除一条特定的记录:

import MySQLdb

# 打开数据库连接
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()

在该示例程序中,我们使用SQLDELETE语句删除了数据表中一个特定记录。

总结

MySQLdb是连接Python和MySQL之间的桥梁。使用MySQLdb和Python编写的程序可以让我们更加方便、简单、快捷地操作MySQL数据库。

在实际使用过程中,程序员应该深刻理解MySQLdb的底层原理,并注重代码的健壮性和安全性。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程