第七节---视图和索引

视图

  • 关键字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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值