文章分类 -  SQL基础知识进阶

摘要:一种普遍的观点是:多个对象间的关系必须通过一种连接数据结构来表示,这是分层模型、网状模型流行特有的数据结构但关系型数据模型的理论却基于:集合,即一种无序的,非连接性质的理念 关系与表的典型区别: 1.关系不允许重复元组(tuple),表中可以存在。即关系时集合set,表是多重集合multiset 2 阅读全文
posted @ 2023-01-15 14:18 咪嗞哈嘻 阅读(135) 评论(0) 推荐(0) 编辑
摘要:关系模型创建的必要条件: 所有关系都满足第一范式:定义域只包含原子值的关系(标量值) 宿主语言可以灵活选择数组、结构体、对象等多种数据结构表现非规范化数据。但插入数据库时,必须分解为标量值,即按照第一范式进行规范化,再存入数据库。面向对象语言和关系数据库不一致问题:阻抗不匹配。若想要关系数据库支持宿 阅读全文
posted @ 2023-01-15 14:18 咪嗞哈嘻 阅读(75) 评论(0) 推荐(0) 编辑
摘要:SQL编程风格 1.代码清晰--不要为了效率牺牲可读性 一、表的设计: 1.名字和含义:英文字母、数字、下划线_ 2.属性和列:列表示属性,内容应据由一贯性 二、编程方针: 1.注释:SQL逻辑比较凝练;SQL很难分布执行调试 2.缩进:SELECT FROM WHERE GROUP BY HAVI 阅读全文
posted @ 2023-01-15 14:17 咪嗞哈嘻 阅读(55) 评论(0) 推荐(0) 编辑
摘要:性能优化减少对硬盘的访问1.参数是子查询: 一、用EXISTS代替IN: EXISTS 更好原因: 1.子查询的连接列--建立了索引 2.查询1条满足条件就会终止--不会全表扫描 3.不会生成内联视图--资源消耗少 IN 的工作逻辑: 1.Oracle也会先扫描索引列--改进了性能 2.当参数是子查 阅读全文
posted @ 2023-01-15 14:17 咪嗞哈嘻 阅读(28) 评论(0) 推荐(0) 编辑
摘要:SQL最重要的功能之一:HAVINGHAVING 的应用技巧:调查集合自身性质 1.10.1 各队,全体点名查出可以出勤的队伍;with teams as( select '乔'member,1 team_id,'待命'status from dual union all select '肯'mem 阅读全文
posted @ 2023-01-15 14:17 咪嗞哈嘻 阅读(13) 评论(0) 推荐(0) 编辑
摘要:用于处理无序集合的SQL,处理数列和日期等有序集合?? 1.9.1生成连续编号 如:0......99 Oracle:CONNECT BY DB2\SQLSERVER:WITH 子句怎样提供一个不依赖数据库的方案?思考:0......99,0,......9分别出现了多少次?答案:每个出现了20次, 阅读全文
posted @ 2023-01-15 14:16 咪嗞哈嘻 阅读(55) 评论(0) 推荐(0) 编辑
摘要:SQL理论基础:1.集合论2.谓词逻辑(predicate logic) EXISTS为实现谓词逻辑中量化(quantification)功能,与关联子查询使用性能很好 数据库引入谓词逻辑--表--行的集合/命题的集合 谓词1.特殊函数,返回真值2.为命题分析提供函数式方法:返回值判断命题真假 比较 阅读全文
posted @ 2023-01-15 14:16 咪嗞哈嘻 阅读(204) 评论(0) 推荐(0) 编辑
摘要:SQL根基:集合论 集合运算注意事项:1.SQL能操作重复行集合(多重集合muliset,bag):UNION ALL2.集合运算符有优先级:INTERSECT>UNION>EXCEPT(MINUS)3.各个DBMS供应商在集合运算实现程度上参差不齐4.除法运算没有标准定义 SQL对集合的四则运算包 阅读全文
posted @ 2023-01-15 14:16 咪嗞哈嘻 阅读(92) 评论(0) 推荐(0) 编辑
摘要:1.不同行的列数据比较 1.同行不同列比较 --where a_col=b_col 2.行间比较--关联子查询+自连接 / 窗口函数(数据库间可移植性不佳);--1.增长、减少、维持现状--行间比较代表业务--基于时间序列的分析--排行榜--面向过程分析:1.年份递增排序 -- 2.循环比较本年与上 阅读全文
posted @ 2023-01-15 14:15 咪嗞哈嘻 阅读(27) 评论(0) 推荐(0) 编辑
摘要:/* * SQL的弱点及趋势对策 格式转换:行列转换、嵌套式侧栏 (外连接) * 将SQL执行结果转换成特殊格式 * SQL便于生成报表的功能--窗口函数、。。。。 */--1.用外连接进行转换--行转列--制作交叉表with courses as( select '赤井'name,'SQL入门'c 阅读全文
posted @ 2023-01-15 14:15 咪嗞哈嘻 阅读(37) 评论(0) 推荐(0) 编辑
摘要:--HAVING字句:理解SQL面向集合的关键,可单独使用(默认GROUP BY NULL)--面向集合语言第二个特性:以集合为单位进行操作 --eg1:寻找缺失编号;--1.面向过程:1.编号升序/降序;2.循环比较相邻行编号--2.面向集合:无序检查+HAVING+聚合函数使用--(SQL没有排 阅读全文
posted @ 2023-01-15 14:14 咪嗞哈嘻 阅读(20) 评论(0) 推荐(0) 编辑
摘要:--NULL不是值,所有不支持谓词逻辑,使用谓词逻辑后结果为unknown --unknown参与逻辑运算后,有优先级变化,可按步骤等价替换追踪SQL的执行结果:--AND 与:false>unknown>true--OR 或:true>unknown>false --解决NULL 问题:对列进行N 阅读全文
posted @ 2023-01-15 14:14 咪嗞哈嘻 阅读(50) 评论(0) 推荐(0) 编辑
摘要:with a as( select 'A' key,'1'x,'2'y,'3'z from dual union all select 'B' key,'5'x,'5'y,'2'z from dual union all select 'C' key,'4'x,'7'y,'1'z from dual 阅读全文
posted @ 2023-01-15 14:14 咪嗞哈嘻 阅读(20) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示