MySQLdb模块中的常用方法
2016-04-24 15:07
387 查看
终于腾出一个下午好好看看自己项目中的东西。前两天在QQ上问我,你的项目做的怎么样了?我第一反应是,卧槽我啥都没做这两个礼拜只顾着好好听课努力做作业给自己的代码debug,剩下的时间就是健身看直播看剧发神经,所以我和老师说,我很努力地学会了怎么在MySQL里创建一个属于自己的数据库,以及怎么在自己的数据库里创建一个表。
老师当时的心里估计就是一万头草泥马奔腾而过,但是他发来一个微笑的表情,说继续努力,我乐呵呵地说好的。
BULL SHIT. 相信有点MySQL基础的人都知道懂得创建一个数据库是怎么样的水平,好比在C语言里学会#include<stdio.h>之后傻叉呵呵地去邀功一样。所以在这个周日的下午,我终于挤出了一个下午的时间好好研究Python调用MySQLdb模块了。仅以此文记录该模块中一些可能会用到的方法:
1、连接与关闭数据库:这个毋用多说,毕竟在编程语言中涉及对文件的输入输出过程中都需要用到打开和关闭。
2、获取游标:估计游标就是指鼠标光标吧,在之后的对数据库操作过程中都是使用游标的execute方法来执行指令。
3、执行数据库指令:对游标进行execute操作,可以在数据库中执行原有的指令。如:查看所有数据库
4、获取数据库中显示的信息:目前我知道有两个方法可以用来分别返回数据库中响应操作指令后的一条与所有信息。
注1:使用fetchone()方法获取的信息(data)是元组类型,里面是响应操作指令后的第一条返回的数据库信息,以字符串形式保存在元组中,但是奇怪的一点是,在该元组的以字符串形式保存的信息后有一个逗号,却没有第二个元组元素,这可能是我python学的太浅根本不知道这是个什么玩意的缘故(如果有知道的朋友请在我这个没有人光顾的博客下面留言解释哦跪谢),返回示例如下:
使用fetchall()方法,顾名思义,能返回所有响应指令后返回的信息,返回的类型是一个元组,其中的每一个元组元素都是一个使用fetchone()方法返回的元组,返回示例如下:
注2:目前已知形如 use studentinfo 这类的语句没有返回值(即返回元组为空)。
5、提交数据库执行:针对一些插入数据到数据库的语句,需要进行提交后才会保存到数据库中
6、数据库事务回滚:在语句执行错误时,使用回滚操作来撤销该语句的执行。例:创建一个不知道是否存在的表。
在我的预期中,以上操作应该能满足项目的绝大部分需求,以下是我所认为的在针对MySQL的操作上项目所需要的知识点的归纳:
1、数据库与表的创建:基本操作,创建了之后只管往里面插入数据就好,所以不需要费心;
2、数据库与表的删除:在我所做的项目内根本用不到;
3、插入数据到表中:执行频度会非常高;
4、数据库内容查询:估计在使用R语言做分析的时候需要用到,在一般情况下只需要desc table就能看到所有保存的数据,本知识点在需要的时候可以进行google。
老师当时的心里估计就是一万头草泥马奔腾而过,但是他发来一个微笑的表情,说继续努力,我乐呵呵地说好的。
BULL SHIT. 相信有点MySQL基础的人都知道懂得创建一个数据库是怎么样的水平,好比在C语言里学会#include<stdio.h>之后傻叉呵呵地去邀功一样。所以在这个周日的下午,我终于挤出了一个下午的时间好好研究Python调用MySQLdb模块了。仅以此文记录该模块中一些可能会用到的方法:
1、连接与关闭数据库:这个毋用多说,毕竟在编程语言中涉及对文件的输入输出过程中都需要用到打开和关闭。
db = MySQLdb.connect(host = "localhost",user = "root",passwd = "*****",db = "test",port = 3306,charset = 'utf8')
db.close()MySQLdb模块中使用connect与close方法来连接与关闭数据库,连接数据库过程中传入多个参数:数据库主机名(默认为本地主机),数据库登录名(默认为当前用户),数据库密码(默认为空),要打开的数据库名称(无默认,可缺省),MySQL使用的TCP端口(默认为3306,可缺省),数据库字符编码(可缺省)
2、获取游标:估计游标就是指鼠标光标吧,在之后的对数据库操作过程中都是使用游标的execute方法来执行指令。
cursor = db.cursor()
3、执行数据库指令:对游标进行execute操作,可以在数据库中执行原有的指令。如:查看所有数据库
cursor.execute("show databases")注:在填写数据库指令过程中不需要打分号来标志语句结束
4、获取数据库中显示的信息:目前我知道有两个方法可以用来分别返回数据库中响应操作指令后的一条与所有信息。
data = cursor.fetchone()
datas = cursor.fetchall()前者用来获取一条信息,后者用来获取所有的信息。
注1:使用fetchone()方法获取的信息(data)是元组类型,里面是响应操作指令后的第一条返回的数据库信息,以字符串形式保存在元组中,但是奇怪的一点是,在该元组的以字符串形式保存的信息后有一个逗号,却没有第二个元组元素,这可能是我python学的太浅根本不知道这是个什么玩意的缘故(如果有知道的朋友请在我这个没有人光顾的博客下面留言解释哦跪谢),返回示例如下:
('student',)
使用fetchall()方法,顾名思义,能返回所有响应指令后返回的信息,返回的类型是一个元组,其中的每一个元组元素都是一个使用fetchone()方法返回的元组,返回示例如下:
(('information_schema',), ('mysql' 4000 ,), ('performance_schema',), ('sakila',), ('studentinfo',), ('sys',), ('world',))
注2:目前已知形如 use studentinfo 这类的语句没有返回值(即返回元组为空)。
5、提交数据库执行:针对一些插入数据到数据库的语句,需要进行提交后才会保存到数据库中
db.commit()
6、数据库事务回滚:在语句执行错误时,使用回滚操作来撤销该语句的执行。例:创建一个不知道是否存在的表。
try:
<span style="white-space:pre"> </span>cursor.execute("create database python")
<span style="white-space:pre"> </span>db.commit()
except:
<span style="white-space:pre"> </span>db.rollback()
在我的预期中,以上操作应该能满足项目的绝大部分需求,以下是我所认为的在针对MySQL的操作上项目所需要的知识点的归纳:
1、数据库与表的创建:基本操作,创建了之后只管往里面插入数据就好,所以不需要费心;
2、数据库与表的删除:在我所做的项目内根本用不到;
3、插入数据到表中:执行频度会非常高;
insert into 表名 (数据名,数据名,...,数据名) values(数据值,数据值,...,数据值)
4、数据库内容查询:估计在使用R语言做分析的时候需要用到,在一般情况下只需要desc table就能看到所有保存的数据,本知识点在需要的时候可以进行google。
相关文章推荐
- MySQL数据库介绍及基本操作
- mysql 执行reset master 风险
- commandline (命令行)登录mysql
- mysql总结
- Mysql——分组排序加序列号
- [笔记]在Mac下进行mysql操作细节
- Mysql批量删除和修改某个前缀的表
- MySQL排错工具perror
- MySQL排错工具perror
- MySQL datetime数据类型设置当前时间为默认值
- HIVE+mysql环境搭建及简单应用
- mysql 时间
- 查看修改mysql编码方式
- mysql死锁,等待资源,事务锁,Lock wait timeout exceeded; try restarting transaction解决
- 绿色版mysql
- mysql处理海量数据时的一些优化查询速度方法
- MySQL已有column值为NULL,修改列属性为NOT NULL报1138错误
- MySQL常用函数
- jsp连接mysql数据库
- Mysql远程链接访问权限设置