码迷,mamicode.com
首页 > 数据库 > 详细

使用python操作MySQL数据库

时间:2020-07-02 09:24:02      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:not   pymysql   返回结果   数据库   HERE   建表   存在   回滚   cal   

本文转自https://www.freeaihub.com/article/using-pymysql-to-operate-mysql-in-python.html,该页可在线进行本页内容的实验
技术图片
本节实验您将先进行MySQL的安装,再安装python的pymysql库,通过这个库连接到MySQL数据库,创建并使用游标Cursor执行SQL语句,最终提交事务以实现对MySQL数据库中的CRUD操作,如新增数据,查询数据,更新数据和删除数据的常用操作。

MySQL是一种应用广泛的关系型数据库,MySQL相关教程动手学mysql

安装并配置MySQL

请前往该页进行安装并确认安装是否成功MySQL环境安装及配置

配置数据库,用户名及密码

在右侧实验区默认ssh界面下输入

mysql

进入mysql环境后输入如下命令

CREATE DATABASE python;
GRANT all ON *.* TO ‘testuser‘@‘%‘ IDENTIFIED BY ‘123123‘;
exit;

安装pymysql包

!pip3 install PyMySQL -i https://pypi.tuna.tsinghua.edu.cn/simple/

连接数据库

import pymysql
db = pymysql.connect("localhost","testuser","123123","python" ) # 打开数据库连接

#创建游标
cursor = db.cursor()

cursor.execute("SELECT VERSION()")                    # 使用 execute() 方法执行 SQL 查询

data = cursor.fetchone()                              # 使用 fetchone() 方法获取单条数据

print ("Database version : %s " % data)

db.close() 

创建表格

import pymysql
# 打开数据库连接

db = pymysql.connect("localhost","testuser","123123","python" )

# 使用 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()

插入数据

import pymysql
# 打开数据库连接

db = pymysql.connect("localhost","testuser","123123","python" )

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

# SQL 插入语句
sql = """INSERT INTO EMPLOYEE(FIRST_NAME,LAST_NAME, AGE, SEX, INCOME)
VALUES (‘Nancy‘, ‘Liliy‘, 20, ‘M‘, 3000)"""
try:
   cursor.execute(sql) # 执行sql语句
   db.commit()         # 提交到数据库执行
except:
   db.rollback()       # 如果发生错误则回滚

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

验证:

进入右侧实验ssh容器,输入mysql进入mysql数据库命令行界面,进行验证。

select * from python.EMPLOYEE;
exit;

查询操作

fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。

  • fetchone(): 该方法获取下一个查询结果集。结果集是一个对象
  • fetchall(): 接收全部的返回结果行.
  • rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数。
import pymysql
# 打开数据库连接

db = pymysql.connect("localhost","testuser","123123","python" )


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

# SQL 查询语句
sql = "SELECT * FROM EMPLOYEE WHERE INCOME > %s" % (1000)

try:
    cursor.execute(sql)# 执行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()

更新数据

import pymysql
# 打开数据库连接

db = pymysql.connect("localhost","testuser","123123","python" )

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

# SQL 更新语句
sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = ‘%c‘" % (‘M‘)

try:
   cursor.execute(sql)  # 执行SQL语句
   db.commit()          # 提交到数据库执行
except:
   db.rollback()        # 发生错误时回滚


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

验证:

进入右侧实验ssh容器,输入mysql进入mysql数据库命令行界面,进行验证。

select * from python.EMPLOYEE;
exit;

删除操作

import pymysql
# 打开数据库连接
db = pymysql.connect("localhost","testuser","123123","python" )
# 使用cursor()方法获取操作游标 
cursor = db.cursor()
# SQL 删除语句
sql = "DELETE FROM EMPLOYEE WHERE AGE > %s" % (20)
try:
   cursor.execute(sql)  # 执行SQL语句
   db.commit()          # 提交修改
except:
   db.rollback()        # 发生错误时回滚# 关闭连接
db.close()

验证:

进入右侧实验ssh容器,输入mysql进入mysql数据库命令行界面,进行验证。

select * from python.EMPLOYEE;
exit;

总结

通过本节的在线实践,您将掌握如何安装mysql数据库和pymysql包,以及如何通过python来进行常见MySQL数据库操作。pymysql的使用流程是,1,获取与数据库的连接 2,执行sql语句与存储过程 3,关闭数据库连接。

使用python操作MySQL数据库

标签:not   pymysql   返回结果   数据库   HERE   建表   存在   回滚   cal   

原文地址:https://www.cnblogs.com/freeaihub/p/13222731.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!