安装 pymysql 模块

pip3 install pymysql
# python2, 默认无 pip 命令
# python3, 默认自带 pip3 命令

mysql基本操作

# 导入 pymysql 模块
import pymysql # 创建连接
conn = pymysql.connect(host='192.168.0.214', port=3306, user='root', passwd='123456', db='tmpdb') # 获取光标
cursor = conn.cursor() # 以字典的形式返回结果
# cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # 插入一行
result = cursor.execute("insert into tmp(name) values (%s)",("jim")) # 插入多行
result = cursor.executemany("insert into tmp(name) values (%s)",[("james1"),("james2"),("james2")]) # 修改后必须提交
conn.commit() # 获取一行数据
cursor.execute('select * from tmp')
r = cursor.fetchone()
print(r) # 获取4行数据
cursor.execute('select * from tmp')
r = cursor.fetchmany(4)
print(r) # 获取影响的行数
result = cursor.execute('select * from tmp')
print(result) # 获取所有的值
values = cursor.fetchall()
print(values) # 把光标移到最开始处
cursor.scroll(0, mode='absolute') # 关闭光标
cursor.close() # 关闭连接
conn.close()

在操作mysql中应当禁止使用字符串拼接sql 的方式

# 禁止例子 :
inp = input('please input name: ')
sql = 'insert into tmp(name) values("%s")'
sql = sql %(inp,)
r = cursor.execute(sql)
conn.commit() # 推荐例子:
inp = input('please input name: ')
print(inp, type(inp))
r = cursor.execute('insert into tmp(name) values(%s)', inp)
conn.commit() # 获取所插入数据的主键id值,注意表的 id 必须是 AUTO_INCREMENT
nid = cursor.lastrowid
print(nid)

补充

# 数据库也可以通过以下方式连接
import pymysql PY_MYSQL_CONN_DICT = {
"host" : '192.168.0.214',
"port" : 3306,
"user" : 'root',
"passwd" : '123456',
"db" : 'tmpdb'
} conn = pymysql.connect(**PY_MYSQL_CONN_DICT)

注意

在 mysql 的 insert 语句中表名和列名外都不能加单引号,而值则可以加单引号且 sql 语句用双引号

Python mysql 创建连接的更多相关文章

  1. Python MySQL 创建表

    章节 Python MySQL 入门 Python MySQL 创建数据库 Python MySQL 创建表 Python MySQL 插入表 Python MySQL Select Python M ...

  2. Python MySQL 创建数据库

    章节 Python MySQL 入门 Python MySQL 创建数据库 Python MySQL 创建表 Python MySQL 插入表 Python MySQL Select Python M ...

  3. python selenium 测试环境的搭建及python mysql的连接

    又来一篇傻瓜教程啦,防止在学习的小伙伴们走弯路. 1.python 环境搭建 python官网:https://www.python.org/downloads/  选择最新版本python下载(如果 ...

  4. 如何给MySql创建连接用户并授权

    一般在为MySql创建用户时建议使用GRANT前台命令,当然如果对我们开发者而言,方法还有很多种,比如使用INSERT命令,甚至是直接修改mysql user数据表,但仍然建议按照MySQL规范去授权 ...

  5. python mysql创建表

    表设计 表:student 字段名 类型 是否为空 主键 描述 StdID int 否 是 学生ID StdName varchar(100) 否 学生姓名 Gender enum('M','F') ...

  6. nodejs mysql 创建连接池

    用Nodejs连接MySQL 从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发.Nodejs框架是基于V8的引擎,是目前速度最快的Javas ...

  7. Python MySQL - 创建/查询/删除数据库

    #coding=utf-8 import mysql.connector import importlib import sys #连接数据库的信息 mydb = mysql.connector.co ...

  8. mysql 创建连接是 Cannot create PoolableConnectionFactory (Unknown character set: 'utf8mb4')

    Cannot create PoolableConnectionFactory (Unknown character set: 'utf8mb4') maven 依赖换版本 <dependenc ...

  9. Python MongoDB 创建数据库

    章节 Python MySQL 入门 Python MySQL 创建数据库 Python MySQL 创建表 Python MySQL 插入表 Python MySQL Select Python M ...

随机推荐

  1. PyTorch-Adam优化算法原理,公式,应用

    概念:Adam 是一种可以替代传统随机梯度下降过程的一阶优化算法,它能基于训练数据迭代地更新神经网络权重.Adam 最开始是由 OpenAI 的 Diederik Kingma 和多伦多大学的 Jim ...

  2. java基础-2

    java基础-2 面向对象 定义 面向对象是一种思维方式,相对于面向过程​面向过程注重流程中的每一步,清楚流程中的每一个细节​面向对象注重的是对象,有了对象就有对象的一届​自己动手做--面向过程,找其 ...

  3. 删除github上面的项目

    1.进入github 2.点击Repositories,看到你所有的repository 3.点击进入你想要删除的repository,点击settings 4.在options选项中,下拉到底看到“ ...

  4. Java 基础:hashCode方法

    Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket 一.前言 泥瓦匠最近被项目搞的天昏地暗.发现有些要给自己一些目标,关于技术的目标: 专注很重要.专注J ...

  5. ①小姐,来桶全家桶不?(Servlet)

    一.前言 小生不才,大二下半学期第二个星期,近11月博客园.星期六闲来看看经典书.重温下Serlvet. 二.温故而知新:超文本转移协议HTTP HTTP协议是通过互联网(internet)或企业内部 ...

  6. ELK实践(二):收集Nginx日志

    Nginx访问日志 这里补充下Nginx访问日志使用的说明.一般在nginx.conf主配置文件里需要定义一种格式: log_format main '$remote_addr - $remote_u ...

  7. 在关闭页面时自动清除Session cookie,页面缓存

    在默认情况下,session对象在关闭浏览器后并不是立刻被销毁,因此,为了考虑系统的安全性,在用户退出时,需要即刻清除session对象,防止他人盗用session对象中的信息. 清除session对 ...

  8. nohup & expect & netstat学习

    1.nohup 用途:不挂断地运行命令,通常加上‘&’命令,& 放在命令后面表示设置此进程为后台进程.分为两种情况,如下: 在不使用密码的情况下使用nohup,只需按如下形式即可: n ...

  9. SpringBoot 配置文件application.properties

    # =================================================================== # COMMON SPRING BOOT PROPERTIE ...

  10. JavaScript中常见的十五种设计模式

    在程序设计中有很多实用的设计模式,而其中大部分语言的实现都是基于“类”. 在JavaScript中并没有类这种概念,JS中的函数属于一等对象,在JS中定义一个对象非常简单(var obj = {}), ...