人生苦短_我用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 ...
随机推荐
- 《Javascript设计模式与开发实践》关于设计模式典型代码的整理:单例模式、策略模式、代理模式、迭代器模式、发布-订阅模式、命令模式、组合模式
1.单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点. 使用闭包封装私有变量// 使用闭包创建单例var user = (function () { var _name = 'sven' ...
- 初步学习jQuery之事件
事件 页面加载 在DOM中提供了load事件用于页面加载完毕之后执行机制,jQuery提供了ready()方法实现相似的功能,但是存在以下的区别.1.DOM中的load事件没有任何的简写形式,但是在j ...
- Cordova指令
安装 cordova: npm install -g cordova 创建应用程序 cordova create hello com.example.hello HelloWorld cordov ...
- (appium+python)UI自动化_10_adb常用命令
前言 adb(Android Debug Bridge)工具是android-sdk里的一个工具,是一个命令行窗口,用于通过电脑端与模拟器或者真实设备交互.在app自动化测试过程中,有时要用到adb命 ...
- HDU 2063 过山车 (匈牙利算法)
题目链接:HDU 2063 Problem Description RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了.可是,过山车的每一排只有两个座位,而且还有条不成文的规矩 ...
- 合并石子(区间DP)
有N堆石子,现要将石子有序的合并成一堆,规定如下:每次只能移动相邻的2堆石子合并,合并花费为新合成的一堆石子的数量.求将这N堆石子合并成一堆的总花费最小. 区间DP思想:现在小区间进行DP得到最优解, ...
- C# 栈=>随时读取栈中最小值
//原理:利用两个栈,一个记录最小值,一个记录数据. using System; using System.Collections.Generic; using System.Linq; using ...
- CentnOS7安装Nginx“No package available”
Nginx相对Apache有轻量级,简洁的优点,算得上Apache的优秀替代品了,但是由于Nginx不在yum的官方源中,因此安装时总会出现失败的现象,只需: yum install epel-rel ...
- 关联查询总结,left join 和 inner join 区别和优化
left join 是做左外关联,主表内容都会显示:符合关联条件的附表内容才会显示出来. inner join 是内关联,没有主表附表的概念:两个表中,同时符合关联条件的数据才会显示出来. left ...
- Centos7.6替换自带的jre安装jdk
Centos7.6自带jre 1.8,可以作为java运行环境.但如果要编译java程序那就需要jdk,以下介绍如何把自带的jre卸掉并安装jdk 首先要卸载自带的jre PS:由于不同版本的操作系统 ...