Python之pymysql数据库的简单使用

2020/09/27 10:58

1、准备数据库demo_temp

create database demo_temp;

2、连接数据库

import pymysql.cursors
connect = pymysql.connect(
    host='127.0.0.1',
    user='root',
    password='123',
    db='demo_temp',
    charset='utf8',
    cursorclass=pymysql.cursors.DictCursor
)

3、创建表

import pymysql.cursors
# 连接数据库
connect = pymysql.connect(
    host='127.0.0.1',
    user='root',
    password='123',
    db='demo_temp',
    charset='utf8',
    cursorclass=pymysql.cursors.DictCursor
)
# 创建表users
with connect.cursor() as cursor:
    sql = """
    CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT ,
    user CHAR(30),
    passwd CHAR(20))
    """
    cursor.execute(sql)
connect.close()

相关推荐:《Python视频教程》

4、一个简单的增、删、改、查实例

import pymysql.cursors
# 连接数据库
connect = pymysql.connect(
    host='127.0.0.1',
    user='root',
    password='123',
    db='demo_temp',
    charset='utf8',
    cursorclass=pymysql.cursors.DictCursor
)
with connect.cursor() as cursor:   # 创建游标
    # 创建表
    sql = """
    CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT ,
    user CHAR(30),
    passwd CHAR(20))
    """
    cursor.execute(sql)
    # 向表中插入数据
    sql = """
        INSERT INTO users (user,passwd) VALUES ('小明','123')
        """
    cursor.execute(sql)
    connect.commit()   # 插入数据后必须更新
    # 查询数据
    sql = """
        select * from users
        """
    cursor.execute(sql)
    ret = cursor.fetchone()  # 提取查询数据
    print(ret)
    # 修改数据
    sql = """
           update users set user='葫芦娃' where id=1
           """
    cursor.execute(sql)
    # 再次查询数据
    sql = """
           select * from users
           """
    cursor.execute(sql)
    ret = cursor.fetchone()  # 提取查询数据
    print(ret)
connect.close()   # 关闭数据库连接

打印内容如下

{'id': 1, 'user': '小明', 'passwd': '123'}
{'id': 1, 'user': '葫芦娃', 'passwd': '123'}

5、简单的事务

import pymysql.cursors
# 连接数据库
connect = pymysql.connect(
    host='127.0.0.1',
    user='root',
    password='123',
    db='demo_temp',
    charset='utf8',
    cursorclass=pymysql.cursors.DictCursor
)
try:
    with connect.cursor() as cursor:  # 创建游标
        # 插入数据
        sql = """
            INSERT INTO users (user,passwd) VALUES ('11111','123')
            """
        cursor.execute(sql)
        # 更新数据
        sql_1 = """
              update users set user='葫芦娃' where id=1
        """
        cursor.execute(sql_1)
        raise NameError   # 更新数据时主动抛出异常
except Exception as e:
    connect.rollback()  # 事务回滚
connect.commit()
connect.close()  # 关闭数据库连接

通过下面的小动画我们可以看出,这里模拟在更新数据时出现问题。而插入数据时没有问题的。然后执行事务回滚,最终数据没有被写入到数据库中。

免费直播

    精选课程 更多

    注册电脑版

    版权所有 2003-2020 广州环球青藤科技发展有限公司