目录
1、索引
-
提升查询效率、当数据量小的时候,索引看不出来效果,当数据量很大的时候,索引会显著提高查询速度
-
当给表添加索引之后,新插入一条数据,就会让索引进行重新排列
所以,如果频繁的增加或者删除数据,此时 索引的效率不会很高
-
在创建表的时候,主键会自动的被设置为索引
-
创建索引:create index 索引的名称 on 表(字段)
- create index student_index_sname on Student(sname)
-
删除索引:drop index 索引的名称 on 表
- drop index student_index_sname on Student
2、视图
-
可以把一段sql语句保存起来,以后进行查询的时候,可以从视图中查询数据, 相当于一张结果表
-
create view 视图名称 as sql语句
sql-- 创建视图 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 -- 使用视图 把视图当成结果表来看 select sid,avg(score) from student_sc_course group by sid -- 删除视图 drop view student_sc_course
3、触发器
- 触发器可以监控数据库里的表,当表被执行增删改操作的时候,可以执行一些固定的操作
比如,删除student表数据的时候,把被删数据保存起来,以便后面进行数据恢复
-
创建触发器
sqlcreate trigger 触发器名字 triggerTime --- before|after triggerName --- insert|update|delete on 表 For Each Row begin ... 当被触发的时候要做的事 ... End -- 监控Student -- 里面有变量: -- old 原来的数据库里的数据 -- new 新来的数据 create trigger stu_t create trigger stu_trigger before delete on Student for each row begin -- old 原来的数据库里的数据 -- new 新来的数据 insert into Student_copy1(sname,sage,ssex) values(old.sname,old.sage,old.ssex); End
4、分页查询⚠️
limit start, length 从start开始,查length条
sql
每页显示4条数据
-- 第一页显示 0开始 4条
select * from Student LIMIT 0,4
-- 第二页数据 4号数据开始,4条
select * from Student LIMIT 4,4
......
-- 当前页:n
-- start:(n-1)*pageSize
-- 每一页显示:pageSize条数据
select * from Student limit (n-1)*pageSize,pageSize