Python3操作MySQL数据库

核心内容

(1)使用到的模块:PyMySQL

安装:

pip3 install pymysql

(2)连接数据库

# 连接数据库,地址:localhost,账号:root,密码:123,数据库:test,编码:UTF-8
db = pymysql.connect('localhost', 'root', '123', 'test', charset='utf8')

(3)创建游标对象

# 创建一个游标对象
cursor = db.cursor()

(4)执行SQL语句

cursor.execute(SQL)

(5)事务提交、回滚

#提交事务
db.commit()
#事务回滚
db.rollback()

(6)获取结果(返回的类型为元组

  • 获取一条数据
cursor.fechone()
  • 获取所有的数据
cursor.fechall()
  • 查看执行SQL语句后影响到的行数
cursor.rowcount

(7)关闭游标和连接

#关闭游标
cursor.close()
#关闭数据库连接
db.close()

 

增删改查

1、添加数据

# insertData_mysql.py
import pymysql

# 连接数据库,地址:localhost,账号:root,密码:123,数据库:test,
# 编码:UTF-8
db = pymysql.connect('localhost', 'root', '123', 'test', charset='utf8')

# 创建一个游标对象
cursor = db.cursor()

# SQL语句
SQL = '''
      INSERT INTO STUDENT VALUES('2016081111','张三'),('2016081112','李四'),('2016081113','王五');
      '''
try:
    # 插入数据
    cursor.execute(SQL)
    # 提交到数据库
    db.commit()
    print('插入成功')
except:
    # 插入失败
    db.rollback()
    print('插入失败')

#关闭游标
cursor.close()
#关闭数据库连接
db.close()

2、查询数据

# selectData_mysql.py
import pymysql

# 连接数据库,地址:localhost,账号:root,密码:123,数据库:test,
# 编码UTF-8
db = pymysql.connect('localhost', 'root', '123', 'test', charset='utf8')

# 创建一个游标对象
cursor = db.cursor()

# SQL语句
SQL = '''
      SELECT * FROM STUDENT;
      '''
try:
    # 查询所有的数据
    cursor.execute(SQL)
    # 查询到的条数
    print('查询到了%s条数据' % (cursor.rowcount))
    # 获取一条数据
    one = cursor.fetchone()
    print(type(one))
    print(one)
    # 获取所有数据
    for item in cursor.fetchall():
        print(item)
except:
    # 插入失败
    print('查询失败')

#关闭游标
cursor.close()
#关闭数据库连接
db.close()

执行结果

查询到了3条数据
<class 'tuple'>
('2016081111', '张三')
('2016081112', '李四')
('2016081113', '王五')

3、修改数据

# updateData_mysql.py
import pymysql

# 连接数据库,地址:localhost,账号:root,密码:123,数据库:test
db = pymysql.connect('localhost', 'root', '123', 'test', charset='utf8')

# 创建一个游标对象
cursor = db.cursor()

SNAME = '李华'
# 更新数据SQL语句
UPDATE_SQL = '''
      UPDATE STUDENT SET SNAME='%s' WHERE SNO='2016081111';
      ''' % (SNAME)
# 查询数据SQL语句
SELECT_SQL = '''
            SELECT * FROM STUDENT WHERE SNO='%s'
           ''' % ('2016081111')
try:
    # 更新数据前
    cursor.execute(SELECT_SQL)
    print('更新前:', cursor.fetchall())
    # 更新数据
    cursor.execute(UPDATE_SQL)
    # 提交到数据库
    db.commit()
    # 更新数据后
    cursor.execute(SELECT_SQL)
    print('更新后:', cursor.fetchall())
except:
    # 更新失败,回滚
    db.rollback()
    print('更新失败')

#关闭游标
cursor.close()
#关闭数据库连接
db.close()

执行结果: 

更新前: (('2016081111', '张三'),)
更新后: (('2016081111', '李华'),)

4、删除数据

# deleteData_mysql.py
import pymysql

# 连接数据库,地址:localhost,账号:root,密码:123,数据库:test
db = pymysql.connect('localhost', 'root', '123', 'test', charset='utf8')

# 创建一个游标对象
cursor = db.cursor()

SNO = '2016081111'
# 删除数据SQL语句
DELETE_SQL = '''
      DELETE FROM STUDENT WHERE SNO='%s';
      ''' % (SNO)
# 查询数据SQL语句
SELECT_SQL = '''
            SELECT * FROM STUDENT WHERE SNO='%s'
           ''' % (SNO)
try:
    # 删除数据前
    cursor.execute(SELECT_SQL)
    print('删除前:', cursor.fetchall())
    # 删除数据
    cursor.execute(DELETE_SQL)
    # 提交到数据库
    db.commit()
    # 删除数据后
    cursor.execute(SELECT_SQL)
    print('删除后:', cursor.fetchall())
except:
    # 删除失败,回滚
    db.rollback()
    print('删除失败')

#关闭游标
cursor.close()
#关闭数据库连接
db.close()

执行结果:

删除前: (('2016081111', '张三'),)
删除后: ()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值