Python连接MySQL数据库
本文主要介绍Python 3如何连接MySQL数据库,需要注意的是,Python 2与Python 3连接数据库的方式有所不同,阅读本文前,请确保当前Python的环境为Python 3。
1、首先需要导入pymysql库,如果没有此库的可以使用pip命令进行安装,当然如果是基于anaconda的小伙伴最好使用conda命令进行安装:
pip/pip3/conda install pymysql
安装成功后,导入:
'''
连接MySQL数据库
'''
import pymysql
2、打开数据库连接
数据库连接可以分为两种:一种是localhost;另一种是远程机器。
(1)localhost
如果是localhost,可以使用如下简单的命令进行连接:
db = pymysql.connect("localhost", "root", "root", "xzw")
(2)如果MySQL数据库没有安装在本地,则可以使用如下方式进行连接:
db = pymysql.connect(
host='192.168.0.200',
port=3306,
user='user',
passwd='password',
db ='xzw',
charset='utf8'
)
3、测试连接是否成功
'''
连接MySQL数据库
'''
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "root", "root", "xzw")
# 使用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.5.28
4、创建一个员工测试表
'''
连接MySQL数据库
'''
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "root", "root", "xzw")
# 使用cursor()方法创建一个游标对象cursor
cursor = db.cursor()
# 使用预处理语句创建表
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()
结果如下:
5、向测试表中插入数据
'''
连接MySQL数据库
'''
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "root", "root", "xzw")
# 使用cursor()方法创建一个游标对象cursor
cursor = db.cursor()
# SQL 插入语句
sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
LAST_NAME, AGE, SEX, INCOME)
VALUES ('xzw', 'yxy', 24, 'M', 2000)"""
try:
# 执行sql语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except:
# 如果发生错误则回滚
db.rollback()
# 关闭数据库连接
db.close()
结果如下:
也可以将SQL定义成如下形式进行操作:
sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \
LAST_NAME, AGE, SEX, INCOME) \
VALUES ('%s', '%s', %s, '%s', %s)" % \
('xzw', 'yxy', 24, 'M', 2000)
6、查询数据
'''
连接MySQL数据库
'''
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "root", "root", "xzw")
# 使用cursor()方法创建一个游标对象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=%s,sex=%s,income=%s" % \
(fname, lname, age, sex, income ))
except:
print ("Error: unable to fetch data")
# 关闭数据库连接
db.close()
结果如下:
fname=xzw,lname=yxy,age=24,sex=M,income=2000.0
注意:更新、删除等操作与上文所给出的示例类似,这里就不再赘述了~
你们在此过程中遇到了什么问题,欢迎留言,让我看看你们都遇到了哪些问题。
还没有评论,来说两句吧...