视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
sql查询点滴记录
2020-11-09 07:10:46 责编:小采
文档


也不一定,以前从来没有深入的研究过sql查询,最近买了一本T-SQL查询的书,把以前忽视的问题都记录一下

以前一直模模糊糊的把sqlserver作为关系数据库,里面就是以表的方式进行数据的关系化话管理,后来有些SQL语句看着怪怪的,也没怎么管

其实

“写好sql,需要的是一种面向声明和集合的思维方式,而不是面向过程的(集合是重点)”(PS:数据库里面的表就是一个集合,集合是无序的!)

以前没太注意过sql语句执行时的逻辑顺序,在研究linq时,linq强调了sql语句的执行顺序,在看书时也留意了一下

(5) select (5-2) distinct (5-3) top (<top_specification>) (5-1) <select_list>
(1) from (1-j) <left_table> <join_type> join <right_table> on <on_predicate>
|(1-a) <left_table> <apply_type> apply <right_table_expression> as <alias>
|(1-p) <left_table> pivot (<pivot_specification>) as <alias>
|(1-u) <left_table> unpivot (<unpivot_specification>) as <alias>
(2) where <where_predicate>
(3) group by <group_by_specification>
(4) having <having_predicate>
(6) order by <order_by_list>


可以看到

第一个阶段是from :标识出查询的来源,处理表(集合)运算符

第二个阶段是where根据谓词(查询条件)进行刷选

第三个阶段是gruop by 根据指定的列表名进行分组

第四个阶段是having 根据having中出现的谓词进行刷选

第五个阶段是select

第六各阶段是order by根据指定列进行排序

下载本文
显示全文
专题