论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
读SQL进阶教程笔记15_SQL编程思维
读SQL进阶教程笔记15_SQL编程思维
滴水恩情
金牌会员
|
2023-5-8 08:22:39
|
显示全部楼层
|
阅读模式
楼主
主题
931
|
帖子
931
|
积分
2793
1. 还原论
1.1. 认为可以把高级现象还原为低级基本现象的学说
1.2. 将复杂的东西看成是由简单单元组合而成的
1.2.1. 以赋值、条件分支、循环等作为基本处理单元,并将系统整体分割成很多这样的单元的思维方式
1.2.2. 文件系统也是将大量的数据分割成记录这样的小单元进行处理的
2. 整体论
2.1. 用系统、整体的观点考察有机界的理论
2.2. 也称“机体论”
2.3. SQL中没有赋值或者循环的处理,数据也不以记录为单位进行处理,而以集合为单位进行处理
2.3.1. SQL更像一种函数式语言
3. 递归集合
3.1. 冯·诺依曼提出用递归集合定义自然数,是在1923年发表的论文《关于超限序数的引入》中
3.1.1. SQL可以通过COUNT函数计算出元素个数,与冯·诺依曼方法的定义方式兼容性很好
3.2. 伟大的哲学家弗雷格(Friedrich Ludwig Gottlob Frege),他几乎以一己之力创建了关系模型基础之一的谓词逻辑
3.3. 因完善了现代集合论体系并提出良序定理和选择公理而闻名的数学家策梅洛(Ernst Friedrich Ferdinand Zermelo)
3.4. 弗雷格方法和冯·诺依曼方法很像,区别在于不用空集表示0,而用包含空集的集合来表示
3.5. 自然数的定义是由皮亚诺列举的5个条件给出的,冯·诺依曼等人只是根据皮亚诺公理生成了自然数而已
3.6. 使用λ演算函数来构建自然数的方法
3.6.1. 使用λ演算构建的自然数被阿隆佐·邱奇(Alonzo Church)以自己的姓氏命名为了“邱奇数”
3.6.2. 其本质却是输入输出均为函数的高阶函数
4. 用CASE表达式代替IF语句和CASE语句
4.1. CASE表达式与1+(2-4)或者(x*y)/z一样,都是表达式,在执行时会被整体当作一个值来处理
4.2. 常量可以理解为变量个数为0的表达式
4.3. CASE表达式最终会作为一个确定的值来处理
4.4. 可以把CASE表达式当作聚合函数的参数来使用
5. 用GROUP BY和关联子查询代替循环
5.1. SQL中没有专门的循环语句
5.1.1. 使用游标实现循环,但是这样的话还是面向过程的做法
5.1.2. 去掉普通编程语言中的循环正是SQL语言设计之初的目的之一
5.2. 将关系整体作为操作的对象。目的是避免循环
5.3. 面向过程语言在循环时经常用到的处理是“控制、中断”
5.3.1. 在SQL中,这两个处理可以分别用GROUP BY子句和关联子查询来表达
5.3.2. 关联子查询适合用来分割处理单元
6. 表中的行没有顺序
6.1. 对于文件来说,行的顺序是非常重要的
6.2. 表有意地放弃了行的顺序这一形象的概念,从而使它具有了更高的抽象度
6.3. 依赖顺序的不好的写法
6.3.1. 在定义视图时指定ORDER BY子句(如果某种数据库支持这种写法,那么它本身就有问题)
6.3.2. Oracle中的rownum这样依赖具体实现的“行编号”列
7. 将表看成集合
7.1. 理解表的抽象性的最好的方法是使用自连接
8. 理解EXISTS谓词和“量化”的概念
8.1. 谓词逻辑有100多年的历史,是现代逻辑学的标准逻辑体系
8.2. 对于SQL来说,量化符就是EXISTS谓词
8.3. 更应该灵活掌握的其实是其否定形式——NOT EXISTS的用法
8.3.1. 对于SQL中不具备的全称量化符,我们只能通过在程序中使用NOT EXISTS来表达
8.3.2. 通过德·摩根定律和NOT EXISTS来表达全称量化的方法
8.3.3. 使用NOT EXISTS的查询语句,可读性都不太好
8.3.3.1. 同样的功能也可以用HAVING子句或者ALL谓词来实现
8.3.4. NOT EXISTS有一个很大的优点,即性能比HAVING子句和ALL谓词要好得多
9. 学习HAVING子句的真正价值
9.1. 与WHERE子句不同,HAVING子句正是设置针对集合的条件的地方
10. 不要画长方形,去画圆
10.1. 能够准确描述静态数据模型的标准工具是维恩图,即“圆”
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
滴水恩情
金牌会员
这个人很懒什么都没写!
楼主热帖
体系集成商重返黄金年代
SFSafariViewController 加载的网页与 ...
ubuntu 20.04 安装好搜狗输入法无法输 ...
nsenter命令简单介绍
使用扩展函数方式,在Winform界面中快 ...
Kali Linux全网最细安装教程
未来数据库需要关心的硬核创新 ...
Spark快速上手(2)Spark核心编程-RDD简 ...
Linux 进程概念 (上)
【C++】STL——vector模拟实现
标签云
存储
服务器
浏览过的版块
数据仓库与分析
快速回复
返回顶部
返回列表