视图
-
关键字view
-
语法:
create view 名称 as 联表查询
-
-
相同的联表语句可以创为一个视图
-
新建视图可以对联表语句查询的结果进行封装,封装后可以对结果直接引用
-
删除视图
-
drop view 名称
-
-
四个数据表的联接本质上就是两个视图的联接
-
这两个视图也需要条件的限制,否则就是将其中一个表格的其中一行对应另一个表格的每一行
-
-
四个视图联接的案例
-- 用户表和计划表联接视图
create view yi as select a.id user_id, a.name user_name, a.phone user_phone, a.nric user_nric, b.id plan_id, b.user_id plan_user, b.room_id plan_room, b.begin plan_begin, b.end plan_end from user a inner join plan b on a.id = b.user_id;
-- 类型表和房间表联接视图
create view er as select a.id type_id, a.name type_name, b.id room_id, b.no room_no, b.type_id room_type, b.description room_description, b.price room_pricce from type a inner join room b on a.id = b.type_id;
-- 四个表联接
create view san as select * from yi a inner join er b on a.plan_room = b.room_id;
-
表与表之间相互连接的时候要注意有没有相同的列段名,如果有的话需要取别名,后续应用的时候可以直接引用别名,需要避免列段重复,别名建议使用英文。
-
两个表之间的联接是寻找表与表之间的联系之处,两个视图之间的联接也不例外。
-
视图只是保存的查询而不储存数据,相当于一张虚拟的表格,视图无法实时更新。
索引
-
提高查询速度的数据结构
-
作用:
-
提高查询数据的速度
-
加速排序和分组
-
唯一性约束
-
但是会,增加储存空间,以及影响读写速度
-
-
创建索引:index
-
create index 索引名称 on 表名(列段名);
-
create index aa on book(title);
-
当查询book表格里面的title列段的时候速度变得更加快
-
当查询次数很多的时候可以添加索引,并不一定每个字段都得添加
-
-
-
删除索引
-
drop index aa on book(title);
-