Python学习日记14|python连接MySQL及相关操作

今天是2016.5.6r。

学的越多,越发现自己好多东西都不懂。

连接过程都是在网上搜索出来的,没有直接下载mysql数据库,而是下载的phpstudy。至于phpstudy是什么,好像是一个集apache,mysql还有其他支持php开发于于一体的软件,我们只利用其中的mysql功能,软件很小才15M左右,附上phpstudy下载地址。
(http://www.phpstudy.net/phpstudy/phpStudyLite.zip)


一、连接数据库

那么现在就已经安装好pycharm和mysql了,如何连接只需要两步:
(1).在pycharm中安装PyMysql;
(2).使用下面的语句进行连接:

import pymysql
conn=pymysql.connect(host='localhost',user='root',passwd='root',db='mysql',charset='utf8')
cursor = conn.cursor() 

其中host,user,passwd,db,charset后面的参数都不用修改,db后面的参数则是要根据数据库中实际想连接哪个库来设定,因为安装好phpstudy后打开数据库管理后能看到默认有很多库,mysql就是其中之一,所以这里选择连接mysql这个库。

二、pycharm中操作数据库

使用上面connect()函数连接后,返回的是一个连接对象,这里用conn来接收。

(1)连接对象(Connection Objects)
这个连接对象提供了对事务(transaction)操作支持的标准方法,这里主要介绍下面三个:

commit() 提交 用法:conn.commit()
rollback() 回滚 用法:conn.rollback() 相当于撤销事务里面的所有操作。
cursor()游标 用法:conn.cursor()

特别注意:
commit和rollback()只有在事务(transaction)中才会起作用,那么在没有声明事务的情况下不起任何作用。不同的数据库中声明事务的方式不同,下面是其中一种:

conn.begin()   #python中连接对象开始一个事务的方法
cur.execute('delete from city where code=19')
conn.rollback()  #结束一个事务

之所以用到事务是为了防止某些相关联的操作,如购物时添加了订单,而由于某种原因添加订单商品信息失败,则会导致数据库的不完整性。那么对于事务中操作,要么全部执行,要么全部不执行。

(2)游标对象(Cursor Objects)
可以认为cursor就是一个标识,用来标识数据取到什么地方了。你也可以把它理解成数组中的下标。由于连接对象conn没有execute这个属性,即不能直接用conn.execute(sql)来执行相应的语句,所以在pycharm中必须先获取游标,cur=conn.cousor()

所以游标主要用来:执行sql语句和接收返回值
a).执行sql语句
cur.execute(sql)方法执行单条sql语句;(可以是增、删、修改、查询)
cur.executemany(sql)方法也是执行单条sql语句,但是重复执行参数列表里的参数。如下:

cur.executemany(
      """INSERT INTO breakfast (name, spam, eggs, sausage, price)
      VALUES (%s, %s, %s, %s, %s)""",
#使用sql语句,这里要接收的参数都用%s占位符.要注意的是,无论你要插入的数据是什么类型,占位符永远都要用%s
      [
      ("Spam and Sausage Lover's Plate", 5, 1, 8, 7.95 ),
      ("Not So Much Spam Plate", 3, 2, 0, 3.95 ),
      ("Don't Wany ANY SPAM! Plate", 0, 4, 3, 5.95 )
      ] 
#可以看到使用executemany方法来批量的插入数据,这真是一个很酷的方法!

cur.nextset():移动到下一个结果集

b).接收返回值
在进行完execute(sql)操作后,结果集存储在cur中,要返回数据必须进行接受(fetch)。
cur.fetchone():返回一条结果行;
cur.fetchall():接收返回的全部的结果行;
cur.fetchmany(size=xx):接收size条返回结果行,如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据;如果不指定size,则默认返回一行;
cur.scroll(value, mode=’relative/absolute’):移动指针到某一行.如果mode=’relative’,则表示从当前所在行移动value条,如果mode=’absolute’,则表示从结果集的第一行移动value条。

例子如下:
cur.execute('select * from city')
cur.execute(    
        '''update city
          set code=3
          where name='深圳'
        ''') #对于更新等带条件的多行操作语句一定要用'''xx'''来表示才会不报错。

print(cur.fetchall())
或者如下来打印结果
for each in cur:
    print(each)

(3)关闭游标和连接对象
cursor.close()
conn.close()


以上除了rollback()和commit()对事务处理外的操作没有生效外,其他都正确运行了。这里就了解了rollback()和commit()的作用是对事务进行处理

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,710评论 4 376
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,839评论 2 308
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 112,295评论 0 255
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,776评论 0 223
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,198评论 3 297
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 41,074评论 1 226
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,200评论 2 322
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,986评论 0 214
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,733评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,877评论 2 254
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,348评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,675评论 3 265
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,393评论 3 246
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,209评论 0 9
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,996评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,212评论 2 287
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 36,003评论 2 280

推荐阅读更多精彩内容