其他数据库小知识

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

创建索引代码:

create index student_index_sname on student(sname)

可以看到表“student”的索引信息被改变了
其他数据库小知识_第1张图片

删除索引代码:

drop index student_index_sname on student

其他数据库小知识_第2张图片

二.视图
视图可以把一段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

视图其实就是一段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

这段sql语句形成的表
其他数据库小知识_第3张图片
使用视图:

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

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

删除视图:

drop view student_sc_course

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

先设计一个表“student_back”
其他数据库小知识_第4张图片
监控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;

删除

delete from student where sid = 3

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

执行以下代码

select * from student limit 2,4

发现结果是表student中第3到第6共4条数据。
其他数据库小知识_第7张图片

执行以下代码:

select * from student limit 0,4

结果是:
其他数据库小知识_第8张图片
执行以下代码:

select * from student limit 4,4

结果是:

其他数据库小知识_第9张图片
执行以下代码:

select * from student limit 8,4

结果是:
其他数据库小知识_第10张图片
五.5.最简单的一种备份方式(了解)
其他数据库小知识_第11张图片

其他数据库小知识_第12张图片
上一种是结构+数据,下一种是仅结构
然后保存到你想要的位置就行了。

你可能感兴趣的:(Mysql,+,Navicat,数据库,sql,mysql)