# coding=utf-8

import pymysql

'''
数据库的登录信息:
config={
'host':'118.126.108.xxx', # :主机
'user':'python', # :用户名
'password':'pythonxxx', #:密码
'port':3306, # :端口
'database':'test_demo' # :库名
} ''' config = {
'host': '118.111.299.173', # :主机
'user': 'python', # :用户名
'password': 'python111', #:密码
'port': 3306, # :端口
'database': 'test_mmr' # :库名
} # : 登录上mysql
cnn = pymysql.connect(**config) # kwargs # 游标 --->>cursor ->获取操作数据库的权限
cursor = cnn.cursor() # 增删改查 --->对于用户来说,查询/新增/更新/删除操作是经常用的 # 查询: select
sql = 'SELECT * FROM student a WHERE a.id=2 ' # 传参 : 元组 '''
查询sql的传参必须是以元组的形式传参
'''
# -----------
'''
元组传参
: 单个参数
sql = 'select * from student a WHERE a.id=%s'
data = (2,)
cursor.execute(sql, data) : 多个参数
sql_1 = 'select * from student s WHERE s.id=%s and s.age=%s'
data = (2, 20)
cursor.execute(sql_1, data)
''' '''
单条插入语句 insert
如果是insert语句的话,cursor.execute(sql,data)
一定要后面加上Commit提交操作
sql_insert = 'INSERT INTO student(age,name) VALUES (%s,%s)'
data = (19, 'mr.chen')
cursor.execute('commit') 多条插入语句 insert,cursor.executemany方法
以列表的类型插入
insert_datas = [(12, 'mr.chen1'), (13, 'mr.chen2')]
sql_insert = 'INSERT INTO student(age,name) VALUES (%s,%s)'
# 执行语句
cursor.executemany(sql_insert, insert_datas)
cursor.execute('commit') # dict 字典传参方式
sql_insert_dict='INSERT INTO student(age,name) VALUES (%(age)s,%(name)s)' # 为什么要这样写?,因为字典是无序的,要通过key去指定
dict_data={'age':20,'name':'ChenYs'}
cursor.execute(sql_insert_dict, dict_data)
cursor.execute('commit') ''' sql_insert_dict = 'INSERT INTO student(age,name) VALUES (%(age)s,%(NAME)s)' # 为什么要这样写?,因为字典是无序的,要通过key去指定
dict_data = {'age': 29, 'name': 'ChenYs.1'}
cursor.execute(sql_insert_dict, dict_data)
# cursor.execute(sql)
cnn.commit()
# fetchone,fetchall 读取sql语句执行的结果
# res_sql_one = cursor.fetchone()
# res_sql_all = cursor.fetchall() # :针对的是查询结果
# fetchone :执行一条sql语句
# fetchall :执行多条sql语句
# 如果查询结果对象有多条数据的话,一定要用fetchall,
# 不然用fetchone的话,只能从查询结果中读取一条数据出来,还会返回错误提示还有剩余数据未读
# print("one的数据:", res_sql_one)
# print("all的数据:", res_sql_all) cursor.close() # : 关闭游标
cnn.close() # : 关闭数据库连接 '''
Ps:
(select) 查询sql传参只能以元组的形式传,用fetchone和fetchall方法查看执行结果(fetchone/fetchall只适合查询) (insert) 单条插入sql传参也是以元组的形式传,insert_data=('param_a','param_a')
多条插入sql传参是以列表的形式传,insert_data_s=[('param_a','param_b'),('param_aa','param_bb')]
最后是用cursor.executemany()方法
单条插入sql传参也支持dict的形式传,dict_data = {'age': 20, 'name': 'ChenYs'} Update,Delete同Inset语句一个道理
'''

人生苦短_我用Python_pymysql库对Mysql数据库操作_009的更多相关文章

  1. Python之使用Pandas库实现MySQL数据库的读写

      本次分享将介绍如何在Python中使用Pandas库实现MySQL数据库的读写.首先我们需要了解点ORM方面的知识. ORM技术   对象关系映射技术,即ORM(Object-Relational ...

  2. 使用第三方库连接MySql数据库:PyMysql库和Pandas库

    使用PyMysql库和Pandas库链接Mysql 1 系统环境 系统版本:Win10 64位 Mysql版本: 8.0.15 MySQL Community Server - GPL pymysql ...

  3. 关于.Net使用企业库访问MySql数据库

    关于.Net使用企业库访问MySql数据库 在网上看了很多又重写又加WebConfig中的内容,其实不用那么麻烦 企业库5.0访问MySql数据库只需要在Web服务器安装mysql-connector ...

  4. Robotframework使用自写库连接mysql数据库

    Robotframework使用自写库连接mysql数据库 新建库文件mysqltest.py 代码如下: # -*- coding: utf-8 -*- import MySQLdbimport o ...

  5. MySQL数据库操作常用命令

    MySQL数据库操作常用命令DOS连接数据库1.安装MySQL配置好环境2.运行cmd命令net start mysql3.找到mysql文件根目录输入命令mysql -h localhost -u ...

  6. Mysql 数据库操作之DDL、DML、DQL语句操作

    Mysql 数据库操作之DDL.DML.DQL语句操作 设置数据库用户名密码 l  Show databases 查看数据库列表信息 l  查看数据库中的数据表信息 ,格式: use 数据库名: sh ...

  7. Python3:sqlalchemy对mysql数据库操作,非sql语句

    Python3:sqlalchemy对mysql数据库操作,非sql语句 # python3 # author lizm # datetime 2018-02-01 10:00:00 # -*- co ...

  8. (转载)常用的Mysql数据库操作语句大全

    打开CMD,进入数据库命令:mysql -hlocalhost -uroot -p 退出数据库:exit 用户管理: 1.新建用户: >CREATE USER name IDENTIFIED B ...

  9. Python数据存储 — MySQL数据库操作

    本地安装MySQL 调试环境python3.6,调试python操作mysql数据库,首先要在本地或服务器安装mysql数据库. 安装参考:https://mp.csdn.net/postedit/8 ...

随机推荐

  1. [CSP-S模拟测试]:reverse(数位DP)

    题目描述 我们定义: $\overline{d_k...d_2d_1}=\sum \limits_{i=1}^kd_i\times {10}^{i-1}=n(d_i\in [0,9]\ and\ d_ ...

  2. laravel5.6 操作数据 Eloquent ORM

    建立Users模型 <?php namespace App\Model\Eloquent\Admin; use Illuminate\Database\Eloquent\Model; class ...

  3. linux系统忘记root密码的解决办法--(超细致讲解!)

    在本博客中我采用虚拟机和radhet6.5作为示范: 首先:重新系统系统,在系统重新启动是未进入系统检查之前按下"e"键: 一定要在倒计时到0秒之前按下"e", ...

  4. 奖项-MVP:MVP(微软最有价值专家)百科

    ylbtech-奖项-MVP:MVP(微软最有价值专家)百科 微软最有价值专家(MVP) 是指具备一种或多种微软技术专业知识,并且积极参与在线或离线的社群活动,经常与其他专业人士分享知识和专业技能,受 ...

  5. day07——css布局解决方案之居中布局

     转行学开发,代码100天——2018-03-23 1.水平居中 使用inline-block + text-align方法 先将子框由块级元素改为行内块元素,再通过设置行内块元素居中以实现水平居中 ...

  6. 第 2 章 前端基础之CSS

    一.CSS语法 CSS规则由两个主要的部分构成:选择器,以及一条或多条声明. ''' selector { property: value; property: value; ... property ...

  7. vue分页练习

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

  8. MySQL点滴记录

    1.查询所用引擎 show engines;

  9. Netty核心组件介绍及手写简易版Tomcat

    Netty是什么: 异步事件驱动框架,用于快速开发高i性能服务端和客户端 封装了JDK底层BIO和NIO模型,提供高度可用的API 自带编码解码器解决拆包粘包问题,用户只用关心业务逻辑 精心设计的Re ...

  10. spring-第七篇之深入理解容器中的bean

    1.抽象bean与子bean 用于指定配置模板. 2.容器中的工厂bean 这种工厂bean必须实现FactoryBean接口,通过spring容器getBean()方法获取它时,容器返回的不是Fac ...