十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章给大家介绍怎么在Python中使用pymysql模块操作数据库,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
为企业提供成都做网站、成都网站设计、成都外贸网站建设、网站优化、成都营销网站建设、竞价托管、品牌运营等营销获客服务。创新互联拥有网络营销运营团队,以丰富的互联网营销经验助力企业精准获客,真正落地解决中小企业营销获客难题,做到“让获客更简单”。自创立至今,成功用技术实力解决了企业“网站建设、网络品牌塑造、网络营销”三大难题,同时降低了营销成本,提高了有效客户转化率,获得了众多企业客户的高度认可!1.建立数据库连接
通过 connect 函数中 parameter 参数 建立连接,连接成功返回Connection对象
import pymysql #建立数据库连接 connection = pymysql.connect(host = 'localhost', user = 'root', password = '123456', database = 'mydb', charset = 'utf8' ) #print(connection)
pymysql.connect()函数中常用的连接参数有以下几种:
host:数据库主机名或者ip地址
port:端口号
user:数据库的账号
password 或 passwd:数据库的密码
database 或 db:数据库的名字
charset:编码方式
Connection对象的重要方法:
close() 关闭数据库连接
commit() 提交数据库事物
rollback() 回滚数据库事务
cursor() 获得 Cursor游标对象
2.创建游标
一个Cursor游标对象,暂时保存了SQL操作所影响到的数据,相同的数据库连接创建的游标所引起的数据变化,会马上反应到同一连接中的其它游标对象。但是不同数据库连接中的游标对象,是否能及时反映出来,则与数据库事物管理有关。
Cursor对象基本方法和属性:
execute(operation,[parameters])
执行一条SQL语句,operation时SQL语句,parameters是其参数。返回值是整数,表示执行SQL语句影响的行数
executemany(operation,[parameters])
批量执行SQL语句
callproc(procname,[parameters])
执行存储过程,procname是存储过程名
使用execute()和executemany()方法查询后,通过以下提取方法提取结果集
fetchone()
从结果集当中返回一条记录的序列,无则返回None
fetchmany([size=cursor.arraysize])
从结果集当中返回小于或等于size的记录序列,无则返回空序列,size默认是整个游标的行数
fetchall()
从结果集当中返回所有的行数
3.建立数据库(这里我使用的是NaviCat)
创建一个名为pydb的数据库,表名为user,字段name和userid
数据的查找
#建立数据库连接 connection = pymysql.connect(host = 'localhost', user = 'root', password = '123456', database = 'mydb', charset = 'utf8' ) #print(connection) try: #创建游标对象 with connection.cursor() as cursor: #执行SQL操作 sql = 'select name, userid from user where userid >%(id)s' cursor.execute(sql, {'id':0}) #提取数据集 result_set = cursor.fetchall() for row in result_set: print('id:{0} - name:{1}'.format(row[1],row[0])) #游标自动关闭 finally: #关闭连接 connection.close()
数据插入
#数据增加 connection = pymysql.connect(host = 'localhost', user = 'root', password = '123456', database = 'mydb', charset = 'utf8' ) try: with connection.cursor() as cursor: sql = 'insert into user (userid,name) values (%s,%s)' cursor.execute(sql,(3,'cc')) #affectcount = cursor.execute(sql,(3,'cc')) #print('影响的数据行数:{0}'.format(affectcount)) #提交数据库事务 connection.commit() except pymysql.DatabaseError: #数据库事务回滚 connection.rollback() finally: connection.close()
执行结果:
数据更新
#数据更新 connection = pymysql.connect(host = 'localhost', user = 'root', password = '123456', database = 'mydb', charset = 'utf8' ) #print(connection) try: with connection.cursor() as cursor: sql = 'update user set name = %s where userid > %s' cursor.execute(sql,('Tom',2)) #提交事务 connection.commit() print('更新成功') except pymysql.DatabaseError as e: connection.rollback() print(e) finally: connection.close()
执行结果:
数据删除
#数据删除 connection = pymysql.connect(host = 'localhost', user = 'root', password = '123456', database = 'mydb', charset = 'utf8' ) try: with connection.cursor() as cursor: sql = 'delete from user where userid = %s' cursor.execute(sql,(1)) #提交事务 connection.commit() print("删除成功") except pymysql.DatabaseError as e: connection.rollback() print(e) finally: connection.close()
执行结果:
关于怎么在Python中使用pymysql模块操作数据库就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。