小鸦视角-看关系数据库MSSQL-view(视图)+存储过程+索引

上一节, 我提到SQL中的查询语句

select * from table

但现实中, 有时查询没这么简单, 有可能

select * from table1 join table2 on ... where...

一大堆乱七八糟

这个场景似曾相识. Java中也似乎有

System.out.println("李好啊");
乱七八糟的代码
+
再给你一波算法
+
System.out.println("算法结果是:"+a);

此时, 我们该怎么做? 就是用个method+{}括起来.

同样, 数据库也有这样的操作:

  1. 视图 view
  2. 存储过程 store procedures

区别是啥?
视图: 给你一大波SQL
存储过程: 给你一大波SQL+code

当然通过类比方式, method是封装的一种方式, 也就是说, 我想让你看啥你就看啥.
而对应数据库, 也是如此.


我们称SQL叫宣告式编程(英语:Declarative programming),因为它只有命令, 而没有命令执行的过程, 而”我们”让”电脑”调用已经编辑好的view或者 store procedures, 其实也是一种宣告式, 换句话, 执行view, store procedures和用SQL没有区别

而我们平时打的Java代码

public void a(){
给你一波code
}

这种就叫命令式编程(英语:Imperative programming)

在此,我只是想说, 编写view的过程, 和Java别无两样


接下来就是index(索引)

index(索引)是view(视图)的亲兄弟.

但是它们有点区别 (查询的过程)

  1. index(索引)展示的是SQL, 一般而言, 就是查询table , 形象点比喻, 它就像静态语言(java), 编译后产生的.class文件. 是直接调用就可以的, 效率相对高
  2. 而view(视图)是动态语言, 它每次的改动都要自己”解释”一遍. (也就是真是的table改动, 它也要跟着改动)

另外的区别:
index的查询可优化, 优化后速度比view快.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值