人生苦短_我用Python_pymysql库对Mysql数据库操作_009
# 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的更多相关文章
- Python之使用Pandas库实现MySQL数据库的读写
本次分享将介绍如何在Python中使用Pandas库实现MySQL数据库的读写.首先我们需要了解点ORM方面的知识. ORM技术 对象关系映射技术,即ORM(Object-Relational ...
- 使用第三方库连接MySql数据库:PyMysql库和Pandas库
使用PyMysql库和Pandas库链接Mysql 1 系统环境 系统版本:Win10 64位 Mysql版本: 8.0.15 MySQL Community Server - GPL pymysql ...
- 关于.Net使用企业库访问MySql数据库
关于.Net使用企业库访问MySql数据库 在网上看了很多又重写又加WebConfig中的内容,其实不用那么麻烦 企业库5.0访问MySql数据库只需要在Web服务器安装mysql-connector ...
- Robotframework使用自写库连接mysql数据库
Robotframework使用自写库连接mysql数据库 新建库文件mysqltest.py 代码如下: # -*- coding: utf-8 -*- import MySQLdbimport o ...
- MySQL数据库操作常用命令
MySQL数据库操作常用命令DOS连接数据库1.安装MySQL配置好环境2.运行cmd命令net start mysql3.找到mysql文件根目录输入命令mysql -h localhost -u ...
- Mysql 数据库操作之DDL、DML、DQL语句操作
Mysql 数据库操作之DDL.DML.DQL语句操作 设置数据库用户名密码 l Show databases 查看数据库列表信息 l 查看数据库中的数据表信息 ,格式: use 数据库名: sh ...
- Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句 # python3 # author lizm # datetime 2018-02-01 10:00:00 # -*- co ...
- (转载)常用的Mysql数据库操作语句大全
打开CMD,进入数据库命令:mysql -hlocalhost -uroot -p 退出数据库:exit 用户管理: 1.新建用户: >CREATE USER name IDENTIFIED B ...
- Python数据存储 — MySQL数据库操作
本地安装MySQL 调试环境python3.6,调试python操作mysql数据库,首先要在本地或服务器安装mysql数据库. 安装参考:https://mp.csdn.net/postedit/8 ...
随机推荐
- jQuery入门教程-文档操作方法
一.append()和appendTo() 1.1 append()方法 <body> <p>好好学习</p> <button>append() 方法& ...
- (转)深入详解Java线程池——Executor框架
转:https://yq.aliyun.com/articles/633782?utm_content=m_1000015330 在Java中,使用线程来异步执行任务.Java线程的创建与销毁需要一定 ...
- JDBC链接Mysql失败
错误信息:Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionExc ...
- mysql_DML_select_union
使用union可以将多个select 语句的查询结果集组合成一个结果集.select 字段列表1 from table1union [all]select 字段列表2 from table2...说明 ...
- jenkins之定时任务配置
jenkins可以配置任务定时执行 1.jenkins配置解释说明 在每个job的配置项里,有一个构建触发器配置,勾选“定时检查版本库选项”,在输入框可根据需求配置时间: 日程表填写格式: 日程表(S ...
- 非典型T_SQL的总结
------over的两种常用的用法--- --第一种分组 当然要注意了,这里的分组并不是实际的分组,而是根据你的业务需求而坐的临时分组 select roomguid,Room, avg(t ...
- Vim 8.0 版本安装方法及添加Python支持
利用Git安装 最简单也是最有效的方法 1. 获取Vim仓库: git clone https://github.com/vim/vim.git 2. 升级到最新的版本: cd vim git pul ...
- ping, telnet, tcping 命令使用及对比
1. ping 命令 ping 命令只能检查 IP 的连通性或网络连接速度,无法具体到某个端口. ping 命令使用 ICMP 协议,跟 IP 协议属于同一层次(网络层).ping 命令在每次发数据包 ...
- CentOS7.4伪分布式搭建 hadoop+zookeeper+hbase+opentsdb
前言 由于hadoop和hbase都得想zookeeper注册,所以启动顺序为 zookeeper——>hadoop——>hbase,关闭顺序反之 一.前期准备 1.配置ip 进入文件编辑 ...
- 上海站赛后总结&反思
上海站赛后总结&反思 赛后反思一下,本应该做出3~4题的场,最后只出了2题. 先回顾一下比赛,比赛开始10分钟,队友dy就想出了B题是trie树的模板题,然后让mqy码,第一次交的时候有地方打 ...