笔记-python操作mysql

1.      开始

1.1.    环境准备-mysql

create database db_python;

use db_python;

create table `t2`(

`id` int unsigned auto_increment,

`name` varchar(30),

primary key(`id`));

#创建用户并授权

create user 'dev_python' identified by '123456';

grant all on db_python.t2 to dev_python@'%';

alter table t2 add password varchar(30);

alter table t2 add content varchar(500);

1.2.    环境-python

使用pymysql库,PyMySQL是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中是使用mysqldb。

pip install pymysql

2.      API

2.1.    connect

连接类,有一些参数可以调整,列出最常用的部分:

# connect to database, parameter: address, user name, password, database name,charset
db = pymysql.connect('localhost','dev_python','123456','db_python',cursorclass=pymysql.cursors.DictCursor)

2.2.   
cursor

执行操作的接口,有

execute(query, args=None)

Execute a query

Parameters:

query (str) – Query to execute.

args (tuplelist or dict) – parameters used with query. (optional)

Returns:

Number of affected rows

Return type:

int

If args is a list or tuple, %s can be used
as a placeholder in the query. If args is a dict, %(name)s can be used as a placeholder in the query.

fetchall()

Fetch all the rows

fetchmany(size=None)

Fetch several rows

fetchone()

Fetch the next row

classpymysql.cursors.DictCursor(connection)

A cursor which returns results as a
dictionary

返回的是一个字典,使用时需要注意返回的字典的健值。

3.     
使用

import pymysql

# connect to database, parameter: address, user name, password,
database name,charset
db = pymysql.connect('localhost','dev_python','123456','db_python',cursorclass=pymysql.cursors.DictCursor)

'''
#
得到一个可以执行sql语句的cursor object
# 注意cursor支持上下文,
# with db.cursor() as cur:
cursor = db.cursor()

#定义要执行的sql语句
#  本处为查看表结构
cmd_text = 'desc t2;'
# 执行
print(cursor.execute(cmd_text))

# 关闭相关对象

cursor.close()
db.close()
'''

# execute statement
#create table
sql_create = r"""create table if not
exists `t3` (`id` int)"""
with db.cursor() as cur:
    cur.execute(sql_create)
    print(cur.execute('show
tables;'
))
    print(cur.fetchall())

#CURD
#
插入
cmd_insert = """insert into t2
values('7','first_name','pass1', 'content1')"""
with db.cursor() as cur:
    pass
   
#print(cur.execute(cmd_insert))
db.commit()

# update
sql_update = """update t2 set name=%s
where id=%s"""
with db.cursor() as cur:
    cur.execute(sql_update, ['ppp','7'])
    cur.execute('select * from t2')
    #print(cur.fetchall())

# retrieve
sql_select = """select * from
t3;"""
with db.cursor() as cur:
    if cur.execute(sql_select):
        print(cur.fetchall())
    else:
        print('get 0
rows.'
)

# delete
sql_delete = """delete from t2 where
id=%s"""
with db.cursor() as cur:
    cur.execute(sql_delete, ['7'])
    cur.execute('select * from t2')
    print(cur.fetchall())

上面列出的仅包括最常用的CURD操作,更复杂的功能需要参考相关接口文档。

4.     
参考文档

https://pypi.org/project/PyMySQL/

https://pymysql.readthedocs.io/en/latest/

笔记-python操作mysql的更多相关文章

  1. mysql数据库----python操作mysql ------pymysql和SQLAchemy

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

  2. Python(九) Python 操作 MySQL 之 pysql 与 SQLAchemy

    本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...

  3. 练习:python 操作Mysql 实现登录验证 用户权限管理

    python 操作Mysql 实现登录验证 用户权限管理

  4. Python操作MySQL

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

  5. Python操作Mysql之基本操作

    pymysql python操作mysql依赖pymysql这个模块 下载安装 pip3 install pymysql 操作mysql python操作mysql的时候,是通过”游标”来进行操作的. ...

  6. python成长之路【第十三篇】:Python操作MySQL之pymysql

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

  7. python操作mysql数据库的相关操作实例

    python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...

  8. Python 操作 MySQL 之 pysql 与 ORM(转载)

    本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...

  9. Python开发【第十九篇】:Python操作MySQL

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

随机推荐

  1. jQuery核心探究

    动画animate.animate({}, { duration: 5000, progress: function (now, progressNum) {}, complete: function ...

  2. Python开发环境Wing IDE之Search in Files工具详解

    Search in Files工具是Wing IDE中最强大的搜索选项.它支持磁盘.项目,打开编辑器,或其它文件集的多文件批量搜索.它还可以使用通配符搜索,并可以做基于正则表达式的搜索/替换. 建议用 ...

  3. Appium 滑动界面swipe用法

    Appium 滑动API:Swipe(int start x,int start y,int end x,int y,duration) 解释:int start x-开始滑动的x坐标, int st ...

  4. Office加载项

    出自我的个人主页 Alvin Blog 前言 前一段时间公司做了有关Excel 加载项的开发,也遇到了很多坑,所以在此记录一下,有两个原因,1.留给以后在用到加载项的时候,复习所用,避免 跳进同一个坑 ...

  5. Django基础--2

    一.路由系统 URL 1.模板语言循环字典 1.简单的字典循环 <ul> {% for i in user_dict %} <li>{{ i }}</li> {% ...

  6. 花3分钟了解下C/C++中的函数可变参简单实现

    1.可变参函数的原理 C/C++函数的参数是存放在栈区的,并且参数的入栈是从参数的右边开始,即最后一个参数先入栈,而第一个参数最后才入栈,所以,根据栈的后进先出性质,函数总能找到第一个参数.所以,可变 ...

  7. MySQL安装和简单操作

    MySQL数据库安装与配置详解 MySQL的安装请参考下面这篇博客,讲述的非常详细,各种截图也很清晰.http://www.cnblogs.com/sshoub/p/4321640.html MySQ ...

  8. 【BZOJ5212】[ZJOI2018] 历史(LCT大黑题)

    点此看题面 大致题意: 给定一棵树每个节点\(Access\)的次数,求最大虚实链切换次数,带修改. 什么是\(Access\)? 推荐你先去学一学\(LCT\)吧. 初始化(不带修改的做法) 首先考 ...

  9. 转:postMan 使用教程

    转:https://www.cnblogs.com/alanjl/p/5490922.html 自从开始做API开发之后,我就在寻找合适的API测试工具.一开始不是很想用Chrome扩展,用的 Wiz ...

  10. python web应用--web框架(三)

    了解了WSGI框架,我们发现:其实一个Web App,就是写一个WSGI的处理函数,针对每个HTTP请求进行响应. 但是如何处理HTTP请求不是问题,问题是如何处理100个不同的URL. 每一个URL ...