sql查詢點(diǎn)滴記錄
更新時(shí)間:2011年12月20日 13:06:28 作者:
做.NET有一段時(shí)間了,如果說不會(huì)sql,那肯定是假的,但是真的掌握嗎
也不一定,以前從來沒有深入的研究過sql查詢,最近買了一本T-SQL查詢的書,把以前忽視的問題都記錄一下
以前一直模模糊糊的把sqlserver作為關(guān)系數(shù)據(jù)庫,里面就是以表的方式進(jìn)行數(shù)據(jù)的關(guān)系化話管理,后來有些SQL語句看著怪怪的,也沒怎么管
其實(shí)
“寫好sql,需要的是一種面向聲明和集合的思維方式,而不是面向過程的(集合是重點(diǎn))”(PS:數(shù)據(jù)庫里面的表就是一個(gè)集合,集合是無序的?。?
以前沒太注意過sql語句執(zhí)行時(shí)的邏輯順序,在研究linq時(shí),linq強(qiáng)調(diào)了sql語句的執(zhí)行順序,在看書時(shí)也留意了一下
(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>
可以看到
第一個(gè)階段是from :標(biāo)識(shí)出查詢的來源,處理表(集合)運(yùn)算符
第二個(gè)階段是where根據(jù)謂詞(查詢條件)進(jìn)行刷選
第三個(gè)階段是gruop by 根據(jù)指定的列表名進(jìn)行分組
第四個(gè)階段是having 根據(jù)having中出現(xiàn)的謂詞進(jìn)行刷選
第五個(gè)階段是select
第六各階段是order by根據(jù)指定列進(jìn)行排序
以前一直模模糊糊的把sqlserver作為關(guān)系數(shù)據(jù)庫,里面就是以表的方式進(jìn)行數(shù)據(jù)的關(guān)系化話管理,后來有些SQL語句看著怪怪的,也沒怎么管
其實(shí)
“寫好sql,需要的是一種面向聲明和集合的思維方式,而不是面向過程的(集合是重點(diǎn))”(PS:數(shù)據(jù)庫里面的表就是一個(gè)集合,集合是無序的?。?
以前沒太注意過sql語句執(zhí)行時(shí)的邏輯順序,在研究linq時(shí),linq強(qiáng)調(diào)了sql語句的執(zhí)行順序,在看書時(shí)也留意了一下
(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>
可以看到
第一個(gè)階段是from :標(biāo)識(shí)出查詢的來源,處理表(集合)運(yùn)算符
第二個(gè)階段是where根據(jù)謂詞(查詢條件)進(jìn)行刷選
第三個(gè)階段是gruop by 根據(jù)指定的列表名進(jìn)行分組
第四個(gè)階段是having 根據(jù)having中出現(xiàn)的謂詞進(jìn)行刷選
第五個(gè)階段是select
第六各階段是order by根據(jù)指定列進(jìn)行排序
相關(guān)文章
SQLServer中NEWID()函數(shù)用于生成一個(gè)唯一的標(biāo)識(shí)符的方法實(shí)踐
NEWID函數(shù)用于生成一個(gè)唯一的標(biāo)識(shí)符,本文主要介紹了SQLServer中NEWID()函數(shù)用于生成一個(gè)唯一的標(biāo)識(shí)符的方法實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下2024-08-08
SQL server高并發(fā)生成唯一訂單號(hào)的方法實(shí)現(xiàn)
這篇文章主要介紹了SQL server高并發(fā)生成唯一訂單號(hào)的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
SQL?Server2022數(shù)據(jù)庫安裝及配置過程
最近發(fā)現(xiàn)有諸多的小伙伴們對(duì)于sqlserver安裝教程2022,sql server安裝教程這個(gè)問題都頗為感興趣的,這篇文章主要給大家介紹了關(guān)于SQL?Server2022數(shù)據(jù)庫安裝及配置的相關(guān)資料,需要的朋友可以參考下2023-12-12
SQL?Server數(shù)據(jù)庫如何查看表的數(shù)據(jù)內(nèi)容
查詢數(shù)據(jù)在數(shù)據(jù)庫的操作中相當(dāng)重要的,在項(xiàng)目實(shí)訓(xùn)中查詢是經(jīng)常要用到的,所以掌握數(shù)據(jù)庫的查詢是基本要求,這篇文章主要給大家介紹了關(guān)于SQL?Server數(shù)據(jù)庫如何查看表的數(shù)據(jù)內(nèi)容的相關(guān)資料,需要的朋友可以參考下2023-11-11
SQL Server Alwayson創(chuàng)建代理作業(yè)的注意事項(xiàng)詳解
在工作中有時(shí)為了避免數(shù)據(jù)庫增長太大所以需要定時(shí)來刪除某段時(shí)間前的數(shù)據(jù),所以使用代理作業(yè)的方式來實(shí)現(xiàn)定時(shí)刪除的功能,下面這篇文章主要給大家介紹了關(guān)于SQL Server Alwayson創(chuàng)建代理作業(yè)的注意事項(xiàng),需要的朋友可以參考下。2017-09-09
SQL SERVER數(shù)據(jù)庫收縮日志的實(shí)現(xiàn)步驟
這篇文章主要介紹了SQL SERVER數(shù)據(jù)庫收縮日志的實(shí)現(xiàn)步驟,文中通過圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2024-04-04
SQL Server 通過with as方法查詢樹型結(jié)構(gòu)
with as 公用表表達(dá)式類似VIEW,但是不并沒有創(chuàng)建對(duì)象,WITH AS 公用表表達(dá)式不創(chuàng)建對(duì)象,只能被后隨的SELECT語句2019-11-11

