20、MySQLdb
MySQLdb
ubuntu下安装MySQLdb
sudo apt-get install python-MySQLdb
导入MySQLdb库
import MySQLdb
创建数据库连接
conn = MySQLdb.connect(host="localhost",user="root",passwd="123456",db="test",charset="utf8")
connect对象属性
commit():如果数据库表进行了修改,提交保存当前的数据。当然,如果此用户没有权限就作罢了,什么也不会发生。rollback():如果有权限,就取消当前的操作,否则报错。cursor([cursorclass]):游标指针。
创建游标(指针)cursor
cur = conn.cursor()
cursor执行命令的方法:
execute(query, args):执行单条sql语句。query为sql语句本身,args为参数值的列表。执行后返回值为受影响的行数。executemany(query, args):执行单条sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数
在数据表中插入一条记录
cur.execute("insert into users (username,password,email) values (%s,%s,%s)",("python","123456","python@gmail.com"))
在数据表中插入多条记录
cur.executemany("insert into users (username,password,email) values (%s,%s,%s)",(("google","111222","g@gmail.com"),("facebook","222333","f@face.book"),("github","333444","git@hub.com"),("docker","444555","doc@ker.com")))
提交数据库操作
conn.commit()
查询数据
cur.execute("select * from users")
- cursor对象获取数据的方法
fetchall(self):接收全部的返回结果行.fetchmany(size=None):接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据.fetchone():返回一条结果行.scroll(value, mode='relative'):移动指针到某一行.如果mode='relative',则表示从当前所在行移动value条,如果mode='absolute',则表示从结果集的第一行移动value条.cur.execute("select * from users")
lines = cur.fetchall()
for line in lines:
print line cur.execute("select * from users where id=1")
line_first = cur.fetchone() #只返回一条
print line_first cur.execute("select * from users")
print cur.fetchall()
- cursor对象获取数据的方法
游标cursor的操作
cur.scroll(n)或cur.scroll(n,"relative"):意思是相对当前位置向上或者向下移动,n为正数,表示向下(向前),n为负数,表示向上(向后)还有一种方式,可以实现“绝对”移动,不是“相对”移动:增加一个参数"absolute"
cur.scroll(1)
cur.scroll(-2)
cur.scroll(2,"absolute") #回到序号是2,但指向第三条
更新数据
cur.execute("update users set username=%s where id=2",("mypython"))
conn.commit()
指定数据库
conn = MySQLdb.connect("localhost","root","123456",port=3306,charset="utf8") #创建数据库时不指定那个数据库
conn.select_db("test") #连接创建后再指定
关闭数据库
cur.close() #先关闭游标
conn.close() #再关闭数据库
20、MySQLdb的更多相关文章
- ABP(现代ASP.NET样板开发框架)系列之20、ABP展现层——动态生成WebApi
点这里进入ABP系列文章总目录 ABP(现代ASP.NET样板开发框架)系列之20.ABP展现层——动态生成WebApi ABP是“ASP.NET Boilerplate Project (ASP.N ...
- FTP的20、21端口,工作模式
什么是FTP? FTP就是文件传输协议 File Transfer Protocol 的缩写. FTP端口号是多少? 21 FTP的端口号能改吗? 能 ftp的端口号20.21有何区别? 一个是数据端 ...
- python使用mysql的三个模块:mysql.connector、sqlalchemy、MySQLdb
在python中使用mysql其实很简单,只要先安装对应的模块即可,那么对应的模块都有什么?官方也没指定也没提供,pcat就推荐自己遇到的3个模块:mysql.connector.sqlalchemy ...
- 20、自动装配-@Autowired&@Qualifier&@Primary
20.自动装配-@Autowired&@Qualifier&@Primary 自动装配:Spring 利用依赖注入(DI),完成对IOC容器中各个依赖关系赋值 20.1 @Autowi ...
- MySQL、sqlalchemy、pymysql、mysqldb、DBAPI之间关系梳理(终于明白了)
MySQL.sqlalchemy.pymysql.mysqldb.DBAPI之间关系梳理(终于明白了) python3不再支持mysqldb 请用pymysql和mysql.connector 问题背 ...
- php面试专题---20、MySQL的安全性考点
php面试专题---20.MySQL的安全性考点 一.总结 一句话总结: 还是得多看视频,教程看的浮光掠影,容易get不到重点:比如预处理防sql注入之前是挺熟,后面就忘记了,而且看文章get不到点 ...
- 北风设计模式课程---20、UML类图介绍
北风设计模式课程---20.UML类图介绍 一.总结 一句话总结: 不仅要通过视频学,还要看别的博客里面的介绍,搜讲解,搜作用,搜实例 设计模式都是对生活的抽象,比如用户获得装备,我可以先装备工厂先生 ...
- 20、oralce中单引号和双引号的区别
20.oralce中单引号和双引号的区别: 20.1.单引号和双引号oracle都支持,但是两者是有区别的: 20.2.双引号在 Oracle 中的作用: 1.双引号的作用是:假如建立对象的时候,对象 ...
- JavaScript高级程序设计(第三版)学习笔记20、21、23章
第20章,JSON JSON(JavaScript Object Notation,JavaScript对象表示法),是JavaScript的一个严格的子集. JSON可表示一下三种类型值: 简单值: ...
随机推荐
- HTML5上传图片预览功能
HTML5上传图片预览功能 HTML代码如下: <!-- date: 2018-04-27 14:41:35 author: 王召波 descride: HTML5上传图片预览功能 --> ...
- js获取单选框的值
js获取单选框的值 var lx= $("input[name='lx']:checked").val();
- LeetCode竞赛题:笨阶乘(我们设计了一个笨阶乘 clumsy:在整数的递减序列中,我们以一个固定顺序的操作符序列来依次替换原有的乘法操作符:乘法(*),除法(/),加法(+)和减法(-)。)
通常,正整数 n 的阶乘是所有小于或等于 n 的正整数的乘积.例如,factorial(10) = 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1.相反,我们设计了一个笨 ...
- FileZilla FTP Client
FileZilla Client是一个快速.实用.多功能和界面直观的免费的FTP客户端,虽然它是免费软件,可功能却一点也不含糊,比起那些共享软件来有过之而无不及,在新的版本中作者改进了手动下载的界面和 ...
- Linux 文件夹相关常用命令
Linux 文件夹相关常用命令 查看 ls -la -l 列出详细信息 -a 列出全部,包括.和.. 删除 rm <folder> -rf -r 就是向下递归,不管有多少级目录,一并删 ...
- group by 和where 条件后面不能用刚设置的别名。
select count(*),c_xy_bj a from z_user group by c_xy_bj 这个group by后面不能使用c_xy_bj 字段的别名a,只有外面再嵌套sel ...
- Linux学习笔记7
执行脚本篇章 r w x 读 写 执行 4 2 1 如果要启动tomcat 服务器 即执行 startup.sh脚本文件 1> #chmod 444 startup.sh 增加文本读权限 -r ...
- js 解析json
一 ,eval var dataObj=eval("("+data+")"); 1,这种形式将使得性能显著降低,因为它必须运行编译器 2,eval函数还减弱了你 ...
- asp.net结合html使用
在用asp.net开发系统时,用控件能更方便快捷,但是大家也知道用它的控件会导致不可控,特别是css,如何用前端定义的html+css+js来运用asp.net(c#)呢,下面写了一个小实例,实现页面 ...
- Web API之service worker
一.参考链接 https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API http://www.alloyteam.com/ ...