Pymyaql操作数据库
Pymyaql操作数据库
Python3中专门用于操作Mysql数据库的模块。
一、 导入模块
import pymysql
二、 创建连接
conn=pymysql.connect(host=’127.0.0.1’,port=3306,user=’root’,passwd=’root’,db=’数据库名’,charset=’utf8’)
三、创建游标
cursor=conn.cursor()
三、 执行SQL语句
1、执行固定的sql语句
cursor.execute(‘要执行的SQL语句’)
2、执行可变的sql语句
(1)增
A.字符串拼接可以执行(会产生SQL注入的风险)
Inp=input(‘请输入内容’)
Sql=‘insert into 表名(列名) values (“%s”)’
Sql=Sql % (Inp,)
cursor.execute(Sql)
B、参数传递(推荐使用)
Inp=input (‘请输入内容:’)
cursor.execute(‘ insert into 表名(列名)values(%s)’,Inp)
插入多个值:
cursor.execute(‘insert into 表名(列名,列名) values(%s,%s),(‘值1’,‘值2’)
l=[(‘值1’,’值2’),(‘值3’,’值4’)]
cursor.executemany(‘insert into 表名(列名,列名)values(%s,%s)’,l)
(2)删
cursor.execute('delete from test1 WHERE id=%s',5) #删除表test1中id为5的数据行
(3)改
cursor.execute('update test1 set age=%s WHERE sss=%s',(18,‘aaa’)) #更新test1表中sss列中aaa对应的age列的值为18。
(4)査
<a>fetch法
result=cursor.fetchall() #取出表中所有数据
print (result) #将表中数据以元组的形式打印出来
result=cursor.fetchone() #取出表中第一条数据
print (result) #将表中第一条数据以元组的形式打印出来
result=cursor.fetchmany(3) #取出表中前3条数据
print (result) #将表中前3条数据以元组的形式打印出来
注:使用fetch的方法取数据时,游标会依次向下移动,即:
result=cursor.fetchone() #取出表中第一条数据
print (result) #将表中第一条数据以元组的形式打印出
result=cursor.fetchone() #取出表中第二条数据
print (result) #将表中第二条数据以元组的形式打印出
此时,可以使用scroll的方法移动游标。cursor.scroll(0,mode=’absolute’) #游标返回原点(绝对模式)
cursor.scroll(-2,mode=’relative’) #游标向上移动2个(相对模式)
<b>将表中数据以字典的形式返回:
创建游标:cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)
取数据:cursor.execute(‘select * from 表名’)
print (cursor.fetchall())
如果只取个别列的数据,只需将*改成对应列的列名即可。
<c>取出刚插入数据行的自增列的对应数据:
cursor.execute(‘insert into 表名(列名)values(%s)’,(‘值’))
conn.commit()
print (cursor.lastrowid) #刚插入数据行的自增列的数字
四、 提交事务
在创建了要执行的SQL语句后,并不会立即执行,而是需要提交事务,否则创建无效。
conn.commit()
五、 关闭游标
cursor.close( )
六、 关闭连接
conn.close( )
Pymyaql操作数据库的更多相关文章
- Java-jdbc操作数据库
如果需要访问数据库,首先要加载数据库驱动,数据库驱动只需在第一次访问数据库时加载一次.然后在每次访问数据库时创建一个Connection实例,获取数据连接,这样就可以执行操作数据库的SQL语句.最后在 ...
- python高级之操作数据库
python高级之操作数据库 本节内容 pymysql介绍及安装 使用pymysql执行sql 获取新建数据自增ID fetch数据类型设置 1.pymysql介绍及安装 在python2中连接数据库 ...
- greenDao:操作数据库的开源框架
greenDAO: Android ORM for your SQLite database 1. greenDao库获取 英文标题借鉴的是greendrobot官网介绍greenDao时给出的Tit ...
- 总结一些关于操作数据库是sql语句还是存储过程问题
总结一些关于操作数据库是sql语句还是存储过程问题 程序中,你跟数据的交互,需要向数据库拿数据.更改数据库的数据等,这些操作,本身不是程序完成的,而是程序发命令给数据库去做的,不管是通过sql语句方式 ...
- greendao操作数据库的使用方法
第一步:把greendao-1.3.0-beta-1,greendao-generator-1.3.1两个jar包加载到工程的lib的文件夹中,一定要右键点击Add As Library后才能使用. ...
- pymysql 操作数据库
一.简介 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同,但目前pymysql支持python3.x而后者不支持3.x版本 其执行语句与sql源码相似 二.使用 ...
- Asp.Net MVC 自定义的MVC框架(非EF操作数据库)
一些废话:在北京辞职回家不知不觉中已经半年多了,这半年中有过很多的彷徨,困惑,还有些小小难受.半年时间算是我人生以来遇到过的最困苦的时候.理想的工作跟我擦肩而过,驾照也没有考过,年后这一改革...,毕 ...
- 一次莽撞的行为:在phpmyadmin中修改MySQL root密码后无法操作数据库
一.手贱行为(✿◡‿◡) 在一次开发中通过xampp方式安装了PHP环境,需要操作数据库时通过phpmyadmin访问MySQL,在一次数据库操作时想起没有设置密码,于是直接在mysql数据库中的us ...
- python操作数据库
一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的l ...
随机推荐
- 字符串匹配问题(lfyzoj)
问题描述 字符串中只含有括号 (),[],<>,{},判断输入的字符串中括号是否匹配.如果括号有互相包含的形式,从内到外必须是<>,(),[],{},例如.输入: [()] 输 ...
- OpenStack IceHouse 部署 - 4 - 计算节点部署
Nova计算服务(计算节点) 参考 本页内容依照官方安装文档进行,具体参见Configure a compute node(nova service) 前置工作 数据库 由于我们在Nova(计算管理 ...
- 原生canvas写的飞机游戏
一个原生canvas写的飞机游戏,实用性不大,主要用于熟悉canvas的一些熟悉用法. 项目地址:https://github.com/BothEyes1993/canvas_game
- sql: Oracle 11g create procedure
CREATE OR REPLACE PROCEDURE proc_Insert_BookKindList ( temTypeName nvarchar2, temParent int ) AS nco ...
- Bzoj4766: 文艺计算姬(Matrix-tree/prufer)
BZOJ 答案就是 \(n^{m-1}m^{n-1}\) \(prufer\) 证明: \(n\) 中的数字出现 \(m-1\) 次,\(m\) 中出现 \(n-1\) 次,根据 \(prufer\) ...
- 几种常用的bootstrap功能。
---恢复内容开始--- 我对于bootstrap定义与一种插件,他可以使我们的网页布局更加的炫酷,更加的整洁和合理.他的优点不多说,缺点一个就够我们头疼的,那就是需要记一些长长的英文名. 我为大家说 ...
- C++学习笔记(8)----C++类的大小
C++类的大小 (i) 如下代码: #include<iostream> using namespace std; class CBase { }; class CDerive :publ ...
- Linux / mysql: is it safe to copy mysql db files with cp command from one db to another?
Copying is very simple for MyISAM and completely 100% risky (near suicidal) with InnoDB. From your q ...
- Android获取蓝牙地址
最近做一个项目,发现Android6.0以上的版本获取的蓝牙地址始终为02:00:00:00, Google一下发现Android早就封掉了相关接口,于是想到反射的方式去获取Mac地址,在此记录一下 ...
- Vue实例对象的数据选项(火柴)
前言 一般地,当模板内容比较简单的时候,使用data选项配合表达式即可.涉及到复杂逻辑时,则需要用到methods.computed.watch等方法.本文将详细介绍Vue实例对象的数据选项. dat ...