Python——pymysql、事务、索引学习笔记

pymysql 基本使用

查询

# 1. 导包
import pymysql

if __name__ == '__main__':
    # 2. 创建连接对象
    # connect=Connection=Connect
    # 1)host:服务器的主机地址
    # 2)port:mysql数据库端口号
    # 3)user:用户名
    # 4)password:密码
    # 5)database:操作的数据库
    # 6)charset:操作数据库使用的编码格式
    conn = pymysql.connect(host='localhost',
                           port=3306,
                           user='root',
                           password='root',
                           database='python',
                           charset='utf8')

    # 3. 获取游标,目的就是要执行sql语句
    cursor = conn.cursor()
    # 准备sql
    sql = "select * from students;"

    # 4. 执行sql语句
    cursor.execute(sql)

    # 获取查询结果
    # fetchone() 返回一条数据   fetchall() 返回全部数据
    row = cursor.fetchall()
    for row in row:
        print(row)

    # 关闭游标
    cursor.close()

    # 关闭连接
    conn.close()

增删改

# 1. 导包
import pymysql

if __name__ == '__main__':
    # 2. 创建连接对象
    # connect=Connection=Connect
    # 1)host:服务器的主机地址
    # 2)port:mysql数据库端口号
    # 3)user:用户名
    # 4)password:密码
    # 5)database:操作的数据库
    # 6)charset:操作数据库使用的编码格式
    conn = pymysql.connect(host='localhost',
                           port=3306,
                           user='root',
                           password='root',
                           database='python',
                           charset='utf8')

    # 3. 获取游标,目的就是要执行sql语句
    cursor = conn.cursor()
    # 准备sql
    # 插入数据 sql = "insert into students(name,age,sex) values('Jane', 20, 'Female')"
    # 更新数据 sql = "update students set sex='Man' where id=3;"
    # 删除数据
    sql = "delete from students where id=11;"

    try:
        # 4. 执行sql语句
        cursor.execute(sql)
        # 提交修改的数据到数据库
        conn.commit()
    except Exception as e:
        # 对修改的数据进行撤销,表示数据回滚
        conn.rollback()
    finally:
        # 关闭游标
        cursor.close()

        # 关闭连接
        conn.close()

防止sql注入

# 1. 导包
import pymysql

if __name__ == '__main__':
    # 2. 创建连接对象
    # connect=Connection=Connect
    # 1)host:服务器的主机地址
    # 2)port:mysql数据库端口号
    # 3)user:用户名
    # 4)password:密码
    # 5)database:操作的数据库
    # 6)charset:操作数据库使用的编码格式
    conn = pymysql.connect(host='localhost',
                           port=3306,
                           user='root',
                           password='root',
                           database='python',
                           charset='utf8')

    # 3. 获取游标,目的就是要执行sql语句
    cursor = conn.cursor()
    # 准备sql,使用防止sql注入的sql语句,%s 不需要加引号
    sql = "select * from students where name=%s;"

    # 4. 执行sql语句
    cursor.execute(sql, ("Tom",))

    # 获取查询结果
    # fetchone() 返回一条数据   fetchall() 返回全部数据
    row = cursor.fetchall()
    for row in row:
        print(row)

    # 关闭游标
    cursor.close()

    # 关闭连接
    conn.close()



### 防止sql注入多个参数使用 ###
# 1. 导包
import pymysql

if __name__ == '__main__':
    # 2. 创建连接对象
    # connect=Connection=Connect
    # 1)host:服务器的主机地址
    # 2)port:mysql数据库端口号
    # 3)user:用户名
    # 4)password:密码
    # 5)database:操作的数据库
    # 6)charset:操作数据库使用的编码格式
    conn = pymysql.connect(host='localhost',
                           port=3306,
                           user='root',
                           password='root',
                           database='python',
                           charset='utf8')

    # 3. 获取游标,目的就是要执行sql语句
    cursor = conn.cursor()
    # 准备sql,使用防止sql注入的sql语句,%s 不需要加引号
    sql = "insert into students(name,age,sex) value(%s,%s,%s);"

    try:
        # 4. 执行sql语句
        # 参数可以是元组,列表,字典
        cursor.execute(sql, ["Star", 10, "Man"])
        conn.commit()
    except Exception as e:
        conn.rollback()
    finally:
        # 关闭游标
        cursor.close()

        # 关闭连接
        conn.close()

事务

show engines;查看数据库存储引擎
begin开启事务 (默认自动提交)
set autocommit=0;手动提交数据
commit提交事务
rollback回滚

在这里插入图片描述
在这里插入图片描述

索引

索引:提高查询速度
主键,约束条件外键,自动添加索引

show index table 表名;查看表已有索引
show profiles查看执行时间
alert table 表名 add index(字段名1)给字段添加索引
alert table 表名 add index(字段名1,字段名2)给多字段添加联合索引,遵从最左原则(查询语句必须包含字段名1)
alert table 表名 drop index 索引名删除索引
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值