• 其他数据库小知识


    一.索引
    增加查询效率,当数据量小的时候。索引看不出来效果。当数据量很大的时候,索引会显著的提高你的查询速度。
    当给表添加索引之后,新插入一条数据,就会让索引进行重新排列
    如果频繁的增加或者删除数据,此时索引的效率并不会高
    我们在创建表的时候,主键会自动地的被设置为索引
    语法规则:
    创建索引:create index 索引的名称 on 表(字段)
    删除索引:drop index 索引的名称 on 表

    创建索引代码:

    create index student_index_sname on student(sname)
    
    • 1

    可以看到表“student”的索引信息被改变了
    在这里插入图片描述

    删除索引代码:

    drop index student_index_sname on student
    
    • 1

    在这里插入图片描述

    二.视图
    视图可以把一段sql语句保存起来,以后进行查询的时候可以直接从视图中查询数据
    语法规则:
    创建视图:create view 视图的名称 as sql语句
    删除视图:drop view视图的名称

    创建视图代码:

    create view student_sc_course as
    select s.sid,s.sname,c.cid,c.cname,score from student s inner join sc on s.sid=sc.sid inner join course c on sc.cid = c.cid
    
    • 1
    • 2

    视图其实就是一段sql语句形成的表,比如这里的视图就是

    select s.sid,s.sname,c.cid,c.cname,score from student s inner join sc on s.sid=sc.sid inner join course c on sc.cid = c.cid
    
    • 1

    这段sql语句形成的表
    在这里插入图片描述
    使用视图:

    select sid,avg(score) from student_sc_course group by sid
    
    • 1

    不推荐更新视图,因为这样做麻烦且危险。

    删除视图:

    drop view student_sc_course
    
    • 1

    三.触发器
    触发器可以监控表,当表被执行增删改操作的时候可以执行一些固定的操作
    比如:
    删除student表数据的时候,把该数据保存起来,以备后面进行的数据恢复
    语法规则:
    创建触发器:
    Create trigger 触发器的名字
    triggerTime ->before|after
    triggerName->insert|update|delete
    On 表 For Each Row
    begin
    sql语句
    End

    先设计一个表“student_back”
    在这里插入图片描述
    监控student表:

    create trigger stu_trigger
    before
    delete
    on student
    for each row
    begin
    	-- old 原来的数据库里的老的数据
    	-- new 新来的数据
    	insert into student_back(sname,sage,ssex) values(old.sname,old.sage,old.ssex);
    end;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    删除

    delete from student where sid = 3
    
    • 1

    依次执行上面两段代码,可以发现:
    表“student”中sid为3被删除的数据转移到表“student_back”里面去了
    在这里插入图片描述
    在这里插入图片描述
    四.分页查询(重点)
    语法规则: limit start length
    如果当前页是n,则当前页可以显示(n-1)*pageSize条数据
    select * from student limit (n-1)*pageSize,pageSize

    执行以下代码

    select * from student limit 2,4
    
    • 1

    发现结果是表student中第3到第6共4条数据。
    在这里插入图片描述

    执行以下代码:

    select * from student limit 0,4
    
    • 1

    结果是:
    在这里插入图片描述
    执行以下代码:

    select * from student limit 4,4
    
    • 1

    结果是:

    在这里插入图片描述
    执行以下代码:

    select * from student limit 8,4
    
    • 1

    结果是:
    在这里插入图片描述
    五.5.最简单的一种备份方式(了解)
    在这里插入图片描述

    在这里插入图片描述
    上一种是结构+数据,下一种是仅结构
    然后保存到你想要的位置就行了。

  • 相关阅读:
    基于新版OpenCV5(C++)+OpenVINO Toolkit案例算法模型示例使用(一条语义分割与目标检测示例搞懂OpenVINO模型部署机制)
    卷积神经网络CNN中的卷积操作详解
    基于springboot的洗衣店订单管理系统
    Python超入门(3)__迅速上手操作掌握Python
    react脚手架写css样式不起作用
    HarmonyOS开发(一):开发工具起步
    C++入门教程||C++中的输入输出||C++ 注释
    Centos7安装wps无法打开及字体缺失的问题解决
    ArcGIS如何自动获得随机采样点?
    Redis 典型应用——缓存(缓存预热,穿透,雪崩,击穿)
  • 原文地址:https://blog.csdn.net/AKK188888881/article/details/126126105