DC学院数据分析师(入门)学习笔记----利用python操作MySQL数据库



安装pymysql




原理介绍:

使用pymysql指令来连接数据库


host:要连接的数据库的IP地址,如果是远程的,这里指定远程的ip地址
user登录的账户名,如果登录的是最高权限账户则为root
password对应的密码
db要连接的数据库的名称,如需要访问存储的IRIS数据库,则输入'IRIS'
charset设置编码格式,如utf8mb4就是一个编码格式
cursorclass返回到Python的结果,以什么方式存储,如Dict.Cursor是以字典的方式存储


try:
    #从数据库链接中得到cursor的数据结构
    with connection.cursor() as cursor:
    #在之前建立的user表格基础上,插入新数据,这里使用了一个预编译的小技巧,避免每次都要重复写sql的语句
        sql="INSERT INTO `USERS`(`email`,`password`) VALUES (%s,%s)"
        cursor.execute(sql,('webmaster@python.org','very_secret'))
    #执行到这一行指令时才是真正改变了数据库,之前只是缓存在内存中
    connection.commit()


调用数据:查询webmaster@python.org邮箱的密码

                with connection.cursor() as cursor:
        		sql = "SELECT `id`,`password` FROM `user` WHERE `email`=%s"
        		cursor.execute(sql,('webmaster@python.org',))
        		#只取出一条结果
        		result=cursor.fetchone()
       		        print(result)
#最后别忘了关闭连接
finally:
    connection.close()


完整版:


COMMIT:

   commit之后,insert,update操作才真正进入数据库。因为commit是对一个物理数据尽心给一个真实的修改,所以它对数据库的资源消其实是相对比较大的。所以比较频繁的commit会很大地降低数据插入的效率。所以,当我们需要插入成千上万的数据的话,通常我们会选择在几百或者几千条数据之后,我们再进行一个统一的commit,这样,效率也会相对高一些;

   mysql有一个autocommit选项。如果我们把这个选项打开之后,我们每一次进行一个insert操作或者update操作,都会在操作之后自动触发commit操作,但在pymysql中,这个选项是默认没被开启的,如果大家希望开启,我们可以在pymysql.connect的db参数后面,加一个autocommit=True参数这样的话,我们在insert或者update之后,就不需要专门的commit。





========================我是分割线================================


示例:利用python对iris_id这个数据表进行操作。

#作用:查询id为3的行

import pymysql.cursors


#使用pymysql指令来连接数据库
connection=pymysql.connect(host='localhost',
                           user='root',
                           password='1994929',
                           db='iris')

                           
try:
                           
    with connection.cursor() as cursor:
        sql= " SELECT * FROM `iris_id` WHERE `id`=%s"#注意上方的小点儿,这个在键盘上数字1的左边
        cursor.execute(sql,('3',))#查询id是3的记录
        result=cursor.fetchone()
        print(result)
finally:
    connection.close()



    在heidisql中执行同样的sql语句,结果是一样的:




    也可以指定dictionary的cursor:






  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值