侧边栏壁纸
  • 累计撰写 123 篇文章
  • 累计创建 27 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

MySQL高级操作

梁来福
2022-03-10 / 0 评论 / 0 点赞 / 0 阅读 / 6245 字
温馨提示:
本文最后更新于 2024-05-06,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

数据库设计之三范式

介绍

image.png

E-R模型

介绍

E-R模型即实体-关系模型,E-R模型就是描述数据库存储数据的结构模型

使用场景

image.png

外键SQL语句的编写

外键约束作用

image.png

对已经存在的字段添加外键约束

为学生表的cls_id添加外键约束

ALTER TABLE students add FOREIGN KEY(c_id) REFERENCES classes(id);

删除外键约束

获取外键约束名称

SHOW CREATE TABLE students;

删除

alter table students drop foreign key 外键名;

组合使用

分组和聚合函数的组合使用-演练

将查询结果插入其他表中

使用连接更新表中某个字段数据

创建表并给某个字段添加数据

修改表结构

事务

介绍

image.png

使用场景

image.png

四大特性

image.png

原子性

image.png

一致性

image.png

隔离性

image.png

持久性

image.png

使用

image.png

表的存储引擎

image.png

查看MySQL支持的表的存储引擎

SHOW ENGINES;

image.png

说明

image.png

开启事务

begin;

或者

start transaction;

说明

image.pngimage.png

提交事务

将本地缓存文件中的数据提交到物理表中,完成数据的更新

commit;

回滚事务

image.png

事务演练SQL语句

image.png

小结

image.png

索引

image.png

应用场景

image.png

使用

查看表中已有索引

show index from students;

说明

  • 主键列会自动创建索引
  • 外键约束这个字段也会自动创建索引

创建索引

image.png

说明

索引名不指定,默认使用字段名

删除索引

image.png

案例-验证索引查询性能

1、创建测试表test

CREATE TABLE test(name VARCHAR(50) not NULL);

2、代码插入1000条数据

# 1.导包
import pymysql

if __name__ == '__main__':

    # 2.创建连接对象
    conn = pymysql.connect(host="主机地址",
                           port=3306,
                           user="root",
                           password="123456",
                           database="python",
                           charset="utf8")

    # 3.获取游标,目的就是执行sql语句
    cursor = conn.cursor()
    # 准备sql
    sql = "insert into test(name) value (%s);"  # 增

    try:
        # 4、执行sql语句,传入的参数类型可以是元祖,列表,字典
        # 循环执行1000次插入数据操作
        for i in range(1000):
            cursor.execute(sql, ["测试数据" + str(i)])
        # 提交数据到数据库
        conn.commit()
    except Exception as e:
        conn.rollback()

        # 5.关闭游标
    finally:
        cursor.close()
        # 6.关闭连接
        conn.close()

3、验证性能

3.1 开启运行sql时间监测

set profiling = 1;

3.2 查找第一千条数据“测试数据999”

select * from test where name = "测试数据999";

3.3 查看运行sql所需的时间

show profiles;

image.png

3.3 给name字段添加索引

alter table test add index(name);

3.4 再次查询同样的数据

3.5 再次查看所需的时间进行对比

image.png

联合索引

介绍

image.png

创建联合索引

image.png

联合索引好处

image.png

最左原则

概念

image.png

示例

image.png

说明

image.png

索引优点

加快数据的查询速度

索引缺点

image.png

索引使用原则

image.png

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin
博主关闭了所有页面的评论