Python版本:v3.7

模块:pymysql

1、连接数据库

connectDB.py:

# coding:utf-8
import pymysql host = 'localhost' # 主机
username = 'root' # 用户名
pwd = 'nxl123' # 密码
dbName = 'testdb' # 数据库名
# 打开数据库连接
db = pymysql.connect(host, username, pwd, dbName)
# 通过cursor方法获取操作游标
cursor = db.cursor()
# sql语句
sql = 'SELECT VERSION()'
# 执行sql语句
cursor.execute(sql)
# 使用fetchone方法获取一个查询结果集
data = cursor.fetchone()
# 输出结果集
print('db version:%s' % data)
# 关闭数据库连接
db.close()

2、创建表

createTables.py:

# coding:utf-8
import pymysql host = 'localhost' # 主机
username = 'root' # 用户名
pwd = 'nxl123' # 密码
dbName = 'testdb' # 数据库名
# 打开数据库连接
db = pymysql.connect(host, username, pwd, dbName)
# 通过cursor方法获取操作游标
cursor = db.cursor()
# 执行sql语句,如果存在stu和sex表,就将其删除
cursor.execute('DROP TABLE IF EXISTS stu')
cursor.execute('DROP TABLE IF EXISTS sex')
# sql语句,创建stu表
sql = '''CREATE TABLE stu(
stuId SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
stuNo VARCHAR(20) NOT NULL UNIQUE KEY,
stuName VARCHAR(10) NOT NULL,
age SMALLINT UNSIGNED NOT NULL,
sexId SMALLINT UNSIGNED NOT NULL)'''
sql2 = '''CREATE TABLE sex(
id SMALLINT UNSIGNED PRIMARY KEY,
sex ENUM('男','女') NOT NULL)'''
# 执行sql、sql2语句
cursor.execute(sql)
cursor.execute(sql2)
# 关闭数据库连接
db.close()

3、插入数据

insertData.py:

# coding:utf-8
import pymysql host = 'localhost' # 主机
username = 'root' # 用户名
pwd = 'nxl123' # 密码
dbName = 'testdb' # 数据库名
db = pymysql.connect(host, username, pwd, dbName)
# 通过cursor方法获取操作游标
cursor = db.cursor()
# sql语句
# sql = '''INSERT stu(stuNo,stuName,age,sexId) VALUES('2015011070','Thanlon',22,1) '''
# sql = '''INSERT stu(stuNo,stuName,age,sexId) VALUES('2015011071','Maria',20,2) '''
# sql = '''INSERT sex(id,sex) VALUES(1,'男')'''
sql = '''INSERT sex(id,sex) VALUES(2,'女')'''
try:
# 执行sql语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except:
# 发生错误时回滚
db.rollback()
# 关闭数据库连接
db.close()

stu 表:

sex 表:

4、删除数据

deleteData.py:

# coding:utf-8
import pymysql host = 'localhost' # 主机
username = 'root' # 用户名
pwd = 'nxl123' # 密码
dbName = 'testdb' # 数据库名
# 打开数据库连接
db = pymysql.connect('localhost', username, pwd, dbName)
# 通过cursor方法获取操作游标
cursor = db.cursor()
sql = "DELETE FROM stu WHERE age>'%d'" % (20)
try:
# 执行sql语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except:
# 语句产生异常时打印提示信息
print('更新数据时出现异常!')
finally:
# 关闭数据库连接
db.close()

stu表:(删除数据后的stu表)

5、查询数据

selectData.py:

# coding:utf-8
import pymysql host = 'localhost' # 主机
username = 'root' # 用户名
pwd = 'nxl123' # 密码
dbName = 'testdb' # 数据库名
# 打开数据库连接
db = pymysql.connect(host, username, pwd, dbName)
# 通过cursor方法获取操作游标
cursor = db.cursor()
# sql = '''SELECT *FROM stu'''
sql = '''SELECT stuID,stuNo,stuName,age,x.sex FROM sex AS x INNER JOIN stu AS s ON s.sexId = x.id'''
try:
# 执行sql语句
cursor.execute(sql)
# results接收全部的返回结果行
results = cursor.fetchall()
# print(results)
# 返回执行execute方法后影响的行数
results_count = cursor.rowcount
# 打印输出影响的行数
print('execute()方法执行后影响的行数:%d行' % results_count)
# 遍历结果集
for row in results:
stuID = row[0]
stuNo = row[1]
stuName = row[2]
age = row[3]
sex = row[4]
# 打印查询结果
print(stuID, stuNo, stuName, age, sex)
except:
print('获取数据出现异常!')
finally:
# 关闭数据库连接
db.close()

6、修改数据

updateData.py:

# coding:utf-8
import pymysql host = 'localhost' # 主机
username = 'root' # 用户名
pwd = 'nxl123' # 密码
dbName = 'testdb' # 数据库名
# 打开数据库连接
db = pymysql.connect(host, username, pwd, dbName)
# 通过cursor方法获取操作游标
cursor = db.cursor()
# 将性别为男的学生年龄加1
sql = '''UPDATE stu SET age=age+1 WHERE sexId=1'''
try:
# 执行语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except:
print('更新数据时出现异常!')
finally:
# 关闭数据库连接
db.close()

执行语句前stu表信息:

执行语句后stu表信息:

Python操作MySql --Python3的更多相关文章

  1. Python开发【第十一篇】:Python操作MySQL

    本篇对于Python操作MySQL主要使用两种方式: 1.原生模块pymsql. 2.ORM框架SQLAchemy. pymsql pymsql是Python中操作MySQL的模块,其使用方法和MyS ...

  2. Python 操作 MySQL 的5种方式(转)

    Python 操作 MySQL 的5种方式 不管你是做数据分析,还是网络爬虫,Web 开发.亦或是机器学习,你都离不开要和数据库打交道,而 MySQL 又是最流行的一种数据库,这篇文章介绍 Pytho ...

  3. Python使用MySQLConnector/Python操作MySQL、MariaDB数据库

    使用MySQL Connector/Python操作MySQL.MariaDB数据库   by:授客 QQ:1033553122 因目前MySQLdb并不支持python3.x,而MySQL官方已经提 ...

  4. 转载 Python 操作 MySQL 的正确姿势 - 琉璃块

    Python 操作 MySQL 的正确姿势 收录待用,修改转载已取得腾讯云授权 作者 |邵建永 编辑 | 顾乡 使用Python进行MySQL的库主要有三个,Python-MySQL(更熟悉的名字可能 ...

  5. 笔记-python操作mysql

    笔记-python操作mysql 1.      开始 1.1.    环境准备-mysql create database db_python; use db_python; create tabl ...

  6. Python操作MySQL[转]

    本篇对于Python操作MySQL主要使用两种方式: 1.原生模块pymsql. 2.ORM框架SQLAchemy. pymsql pymsql是Python中操作MySQL的模块,其使用方法和MyS ...

  7. python接口自动化(三十八)-python操作mysql数据库(详解)

    简介 现在的招聘要求对QA人员的要求越来越高,测试的一些基础知识就不必说了,来说测试知识以外的,会不会一门或者多门开发与语言,能不能读懂代码,会不会Linux,会不会搭建测试系统,会不会常用的数据库, ...

  8. Python操作MySQL数据库(步骤教程)

    我们经常需要将大量数据保存起来以备后续使用,数据库是一个很好的解决方案.在众多数据库中,MySQL数据库算是入门比较简单.语法比较简单,同时也比较实用的一个.在这篇博客中,将以MySQL数据库为例,介 ...

  9. Python 操作 MySQL 的5种方式

    不管你是做数据分析,还是网络爬虫,Web 开发.亦或是机器学习,你都离不开要和数据库打交道,而 MySQL 又是最流行的一种数据库,这篇文章介绍 Python 操作 MySQL 的5种方式,你可以在实 ...

随机推荐

  1. dubbo接口FindMemberInfoTest思路整合

    package com.yzb.user_center; /** * @Created by IntelliJ IDEA. * @Author tk * @Date 2018/7/31 * @Time ...

  2. Linux服务器搭建Nexus-Maven私服(适合新手比较基础)

    背景 在使用maven构建项目的时候,几乎都会涉及到一个“私服”的概念,那么到底什么是私服?使用私服有能够带来哪些益处? 私服:私服是指私有服务器,是架设在局域网的一种特殊的远程仓库,目的是代理远程仓 ...

  3. Codeforces 946 D.Timetable-数据处理+动态规划(分组背包) 处理炸裂

    花了两个晚上来搞这道题. 第一个晚上想思路和写代码,第二个晚上调试. 然而还是菜,一直调不对,我的队友是Debug小能手呀(真的是无敌,哈哈,两个人一会就改好了) D. Timetable   tim ...

  4. Firemonkey的几个特色属性(二)

    3.RotationAngle 控件的旋转角度,可以通过TAnimation进行角度旋转控制. 4.RotationCenter 控件旋转的中心位置,从(0,0)到(1,1),缺省是(0.5,0.5) ...

  5. HDU - 1849 Rabbit and Grass 【Nim博弈】

    Problem Description 大学时光是浪漫的,女生是浪漫的,圣诞更是浪漫的,但是Rabbit和Grass这两个大学女生在今年的圣诞节却表现得一点都不浪漫:不去逛商场,不去逛公园,不去和AC ...

  6. HDU 2647 Reward 【拓扑排序反向建图+队列】

    题目 Reward Dandelion's uncle is a boss of a factory. As the spring festival is coming , he wants to d ...

  7. Spring Boot源码分析

    1.核心: SpringApplication.run(SpringbootdemoApplication.class, args); 内部 2.初始化: new SpringApplication( ...

  8. LuoguP2680 运输计划

    题目地址 题目链接 题解 二分答案,那么大于答案的路径都需要有一条公共边,maxlen-val>=二分出来的x.val是边权. 考虑树剖,对每条大于答案的路径都+1(线段树里),枚举边,如果(线 ...

  9. Face Aging with Conditional Generative Adversarial Network 论文笔记

    Face Aging with Conditional Generative Adversarial Network 论文笔记 2017.02.28  Motivation: 本文是要根据最新的条件产 ...

  10. 【使用指南】WijmoJS 前端开发工具包

    为方便广大前端开发人员更好的使用 WijmoJS 前端开发工具包,葡萄城专门推出了 WijmoJS 使用指南,该指南详细地介绍了如何把 WijmoJS 各种强大的功能应用到您自己的 Web 项目中,助 ...