Python操作数据库

我用的是Python3.7.x(python版本) + Navicat(数据库可视化工具)

我们要用到pymysql模块,也很好安装,进入命令行,输入pip install pymysql就行了,如果出现了版本问题、权限问题等请自行百度,本文的重点不在这里。

ok,有了pymysql模块之后我们就可以尝试与数据库建立链接啦。
整个操作分为三步,

1.首先要和数据库建立连接(仅仅是连接起来,还不能实现具体操作)
import pymysql

con = pymysql.connect(
    host = 'localhost',
    port = 3306,
    user = 'root',
    password = 'usbw',
    db = 'test',
    charset = 'utf8'
    )

详细说一下代码,导入模块之后调用connect函数来建立连接。
介绍一下所有参数

  • host : 主机地址或者IP
  • port : 端口号
  • user : 用户名,一般都是root
  • password : 密码
  • db : 数据库名字,就是你建立过的数据库的名字,我们是要在这个数据库的目录下进行各种操作
  • charset : 编码格式,一般都选utf8,毕竟通用嘛
获取游标
cur = con.cursor()

获取游标之后你就可以进行各种操作了

进行操作

我们用cur.execute(sql)来执行sql命令,其中sql是一个字符串,内容就是你要执行的命令,要注意的一点是,除了建表操作外,我们执行的sql命令需要再同步到数据库中,需要用到commit()函数,如果不使用的话你会发现这些命令都执行了,但是就是不在数据库中反映出来。
具体操作就是这样:

sql = "delete from co where iid = 1"
cur.execute(sql)
con.commit()

这样下来就可以实现与数据库的交互了,但是仅仅是实现了,还不够完美,容错性太差,如果输入的sql命令语法有误,那可就不好玩了。
所以要改进一下,用try…except…finally机制来处理一下,也用到了rollback()函数来回退,但是只可以回退DML,没法回退DDL,(数据库的DDL和DML),最后还要记得关闭游标和连接:

import pymysql

con = pymysql.connect(
    host = 'localhost',
    port = 3306,
    user = 'root',
    password = 'usbw',
    db = 'test',
    charset = 'utf8'
    )
    
cur = con.cursor()

try:
    #尝试创建表
    cur.execute("create table co (iid int not null, namse char(30) not null, score int not null, primary key (iid))character set utf8;")

    #尝试执行插入命令
    cur.execute("insert into co (iid, namse, score) values (22, 'studeb', 19);")

    #将命令真正同步到数据库中
    con.commit()

    #输出返回的信息,对于fetchall函数,如果没有返回信息的话,返回()
    print(cur.fetchall())

except Exception as e:
    #如果出错的话输出错误信息
    print(e)

    #并回退
    con.rollback()

finally:
    #关闭游标和连接
    cur.close()
    con.close()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值