(2-2)使用数据库保存数据:操作MySQL数据库

2.2  操作MySQL数据库

在 Python 3.x 版本中,使用内置库PyMySQL来连接MySQL数据库服务器,Python 2版本中使用库mysqldb。PyMySQL完全遵循Python数据库API v2.0规范,并包含了pure-Python MySQL客户端库。在本节的内容中,将详细讲解在Python程序中操作MySQL数据库的知识。

2.2.1  搭建PyMySQL环境

在使用PyMySQL之前,必须先确保已经安装PyMySQL。PyMySQL的下载地址是https://github.com/PyMySQL/PyMySQL。如果还没有安装,可以使用如下命令安装最新版的 PyMySQL:

pip install PyMySQL

如果当前系统不支持pip命令,可以使用如下两种方式进行安装。

(1)使用git命令下载安装包安装:

$ git clone https://github.com/PyMySQL/PyMySQL

$ cd PyMySQL/

$ python3 setup.py install

(2)如果需要指定版本号,可以使用curl命令进行安装:

$ # X.X 为 PyMySQL 的版本号

$ curl -L https://github.com/PyMySQL/PyMySQL/tarball/pymysql-X.X | tar xz

$ cd PyMySQL*

$ python3 setup.py install

$ # 现在可以删除 PyMySQL* 目录

 注意:你必须确保拥有root权限才可以安装上述模块。另外,在安装的过程中可能会出现“ImportError: No module named setuptools”的错误提示,这个提示的意思是没有安装setuptools,你可以访问https://pypi.python.org/pypi/setuptools 找到各个系统的安装方法。例如在Linux系统中的安装实例是:

$ wget https://bootstrap.pypa.io/ez_setup.py

$ python3 ez_setup.py

2.2.2  实现数据库连接

在连接数据库之前,请按照如下所示的步骤进行操作。

(1)安装MySQL数据库和PyMySQL。

(2)在MySQL数据库中创建数据库TESTDB。

(3)在TESTDB数据库中创建表EMPLOYEE。

(4)在表EMPLOYEE中分别添加5个字段,分别是FIRST_NAME、LAST_NAME、AGE、SEX和INCOME。在MySQL数据库,表EMPLOYEE的界面效果如图2-2所示。

图2-2  表EMPLOYEE的界面效果

(5)假设本地MySQL数据库的登录用户名为“root”,密码为“66688888”。例如在下面的实例文件mysql.py中,演示了显示PyMySQL数据库版本号的过程。

源码路径:daima\3\2-2\mysql.py

import pymysql
#打开数据库连接
db = pymysql.connect("localhost","root","66688888","TESTDB" )
#使用cursor()方法创建一个游标对象cursor
cursor = db.cursor()
#使用 execute()方法执行SQL查询 
cursor.execute("SELECT VERSION()")
#使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
print ("Database version : %s " % data)
#关闭数据库连接
db.close()

执行后会输出:

Database version : 5.7.17-log

2.2.3  创建数据库表

在Python程序中,可以使用方法execute()在数据库中创建一个新表。例如在下面的实例文件new.py中,演示了在PyMySQL数据库中创建新表EMPLOYEE的过程。

源码路径:daima\3\2-2\new.py

import pymysql
#打开数据库连接
db = pymysql.connect("localhost","root","66688888","TESTDB" )
#使用cursor()方法创建一个游标对象 cursor
cursor = db.cursor()
#使用 execute() 方法执行SQL,如果表存在则删除
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
#使用预处理语句创建表
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()

执行上述代码后,将在MySQL数据库中创建一个名为“EMPLOYEE”的新表,执行后的效果如图2-3所示。

图2-3  执行效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农三叔

感谢鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值