一、Python连接MySQL数据库

  1.导入模块

  1. #导入模块
  2. import pymysql

  2.打开数据库连接

  1. #打开数据库连接
  2. #注意:这里已经假定存在数据库testdb,db指定了连接的数据库,当然这个参数也可以没有
  3. db = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='testdb', charset='utf8')

  3.创建游标对象cursor

  1. #使用cursor方法创建一个游标
  2. cursor = db.cursor()

二、数据库基本操作

使用execute()方法来实现对数据库的基本操作。

  1.查询数据库版本

  1. #查询数据库版本
  2. cursor.execute("select version()")
  3. data = cursor.fetchone()
  4. print(" Database Version:%s" % data)

  2.创建数据库

  1. #创建数据库test
  2. cursor.execute("drop database if exists test") #如果数据库已经存在,那么删除后重新创建
  3. sql = "create database test"
  4. cursor.execute(sql)

  3.创建数据表

  1. #创建数据库表
  2. cursor.execute("drop table if exists employee") #如果数据表已经存在,那么删除后重新创建
  3. sql = """
  4. CREATE TABLE EMPLOYEE (
  5. FIRST_NAME CHAR(20) NOT NULL,
  6. LAST_NAME CHAR(20),
  7. AGE INT,
  8. SEX CHAR(1),
  9. INCOME FLOAT )
  10. """
  11. cursor.execute(sql)

  4.查询操作

  1. #查询数据表数据
  2. sql = "select * from employee"
  3. cursor.execute(sql)
  4. data = cursor.fetchone()
  5. print(data)

  5.插入操作

  1. #插入数据
  2. sql = "insert into employee values ('李','梅',20,'W',5000)"
  3. cursor.execute(sql)
  4. db.commit()
  5. #查看插入后的结果
  6. sql = "select * from employee"
  7. cursor.execute(sql)
  8. data = cursor.fetchone()
  9. print(data)

  6.指定条件查询数据

  1. #指定条件查询数据表数据
  2. sql = " select * from employee where income > '%d' " % (1000)
  3. cursor.execute(sql)
  4. data = cursor.fetchone()
  5. print(data)

  7.更新操作

  1. #更新数据库
  2. sql = " update employee set age = age+1 where sex = '%c' " % ('W')
  3. cursor.execute(sql)
  4. db.commit()
  5. #查看更新后的结果
  6. sql = "select * from employee"
  7. cursor.execute(sql)
  8. data = cursor.fetchone()
  9. print(data)

   8.删除操作

  1. #删除数据
  2. sql = " delete from employee where age > '%d' " % (30)
  3. cursor.execute(sql)
  4. db.commit()
  5. #查看更新后的结果
  6. sql = "select * from employee"
  7. cursor.execute(sql)
  8. data = cursor.fetchone()
  9. print(data)

三、关闭数据库连接

  1. db.close()

四、其他

  1.说明

  • 上例中"sql=..."语句,是经典的MySQL语句的形式,将数据库语句写在双引号内,形成类似字符串的形式;
  • 使用cursor对象的execute()方法具体执行数据库的操作;
  • 对于插入、更新、删除等操作,需要使用db.commit()来提交到数据库执行,对于查询、创建数据库和数据表的操作不需要此语句。

  2.为有效避免因为错误导致的后果,使用以下方式来执行数据库的操作:

  1. try:
  2. # 执行 SQL 语句
  3. cursor.execute(sql)
  4. # 提交修改
  5. db.commit()
  6. except:
  7. # 发生错误时回滚
  8. db.rollback()

PyMySQL - Python3 MySQL数据库连接 - 基本操作的更多相关文章

  1. Python3 MySQL 数据库连接 -PyMySQL

    Python 3  操作mysql http://www.runoob.com/python3/python3-mysql.html Python3 MySQL 数据库连接 本文我们为大家介绍 Pyt ...

  2. 吴裕雄--天生自然python学习笔记:Python3 MySQL 数据库连接 - PyMySQL 驱动

    什么是 PyMySQL? PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb. PyMySQL 遵循 Python 数据库 AP ...

  3. Python3 MySQL 数据库连接

    什么是 PyMySQL? PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb. PyMySQL 遵循 Python 数据库 AP ...

  4. Python3 MySQL 数据库连接 - PyMySQL 驱动

    什么是 PyMySQL? PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb. PyMySQL 遵循 Python 数据库 AP ...

  5. Python3 MySQL 数据库连接 - PyMySQL 驱动 笔记

    sql插入语句(推荐): str_mac = "nihao" # SQL 插入语句 sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \ L ...

  6. Python3.x使用PyMysql连接MySQL数据库

    Python3.x使用PyMysql连接MySQL数据库 由于Python3.x不向前兼容,导致Python2.x中的很多库在Python3.x中无法使用,例如Mysqldb,我前几天写了一篇博客Py ...

  7. Python3 - MySQL适配器 PyMySQL

    本文我们为大家介绍 Python3 使用 PyMySQL 连接数据库,并实现简单的增删改查. 什么是 PyMySQL? PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一 ...

  8. Python3.5 MySQL 数据库连接

    Python3.5  MySQL 数据库连接 在本文中介绍 Python3 使用PyMySQL连接数据库,并实现简单的增删改查 为什么使用PyMySQL? PyMySQL是在Pyhton3.x版本中用 ...

  9. Python3.x:使用PyMysql连接Mysql数据库

    Python3.x:使用PyMysql连接Mysql数据库 Python3.x完全不向前兼容,导致Python2.x中可以正常使用的库,到了Python3就用不了: 比如说mysqldb,目前MySQ ...

随机推荐

  1. LigerUI用Post\Get\Ajax前后台交互方式的写法

    parms 参数统一 json格式的数据 url 访问后台的url 设置同步参数 [javascript] view plain copy   $.ajaxSetup({ async : false} ...

  2. vue1.0生命周期

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. MATLAB 中的randn函数

    matlab函数 randn:产生正态分布的随机数或矩阵的函数 randn:产生均值为0,方差σ^2 = 1,标准差σ = 1的正态分布的随机数或矩阵的函数. 用法: Y = randn(n):返回一 ...

  4. (三)Redis for StackExchange.Redis

    目录 (一)Redis for Windows正确打开方式 (二)Redis for 阿里云公网连接 (三)Redis for StackExchange.Redis StackExchange.Re ...

  5. ArrayList源码分析(基于JDK1.8)

    public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess ...

  6. Jmeter之定时器

    转自:https://www.cnblogs.com/imyalost/p/6004678.html 一.定时器的作用域 1.定时器是在每个sampler(采样器)之前执行的,而不是之后(无论定时器位 ...

  7. ALTER FUNCTION - 修改一个函数的定义

    SYNOPSIS ALTER FUNCTION name ( [ type [, ...] ] ) RENAME TO newname DESCRIPTION 描述 ALTER FUNCTION 修改 ...

  8. 自动交互脚本之expect使用记录

    之前一直没怎么用这个命令,意外用了一下,还不错,那这个是干嘛的呢 我们或多或少会远程登录其他服务器,需要执行某项任务,通常需要手动接入,输入密码啊,等等 那我们如何有效的自动执行呢,expect可以解 ...

  9. 第3节 mapreduce高级:12、mapreduce相关的参数调整

    5.1 多job串联 一个稍复杂点的处理逻辑往往需要多个mapreduce程序串联处理,多job的串联可以借助mapreduce框架的JobControl实现 示例代码: ControlledJob ...

  10. 第1节 MapReduce入门:11、mapreduce程序的入门-2

    1.5.WordCount示例编写 1.JobMain.java类 package cn.itcast.wordcount; import org.apache.hadoop.conf.Configu ...