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

