SQL Server 查詢

來源:互聯網
上載者:User

標籤:des   os   io   使用   strong   資料   on   c   時間   

 

from子句

在查詢語句中from應該是必須的,雖然可以沒有,但是那樣沒有意義。

因為from子句是其他部分的基礎,輸出、where條件、order by等所有要訪問的表都必須包含在from子句中。

簡單的可以包含一個表,也可以合并多個資料來源的資料和多個資料類型的資料。最大訪問數量是256個表。

可以接受的資料來源:本地SQL SERVER表、子查詢、視圖、表值使用者定義的函數返回的行和列、分布式資料來源。。。

表的別名:from子句中 “表名 AS 別名”這種格式為表起一個別名。AS可以省略,但最好不要這樣。

如果表名、別名、列名等等名稱與關鍵字衝突,可以將名稱放在中括弧[]中,以表示其不是關鍵字。(非標準SQL)

同樣 如果表名、列名等名稱中間包含空格,也可以放在中括弧[]中,但絕不建議這樣做。

完整名稱 由4部分組成:Server.Database.Schema.Table   在當前資料庫中則不需要伺服器和資料庫名,也就是一般情況下我們需要些後面兩部分就可以了。使用限定的名稱有兩個好處,①避免意外的錯誤,②提高查詢的效能,所以建議養成好的習慣。

 

where條件

篩選from子句的輸出結果,並限制結果集中返回的行。

比較子 標準的六個 >、>=、=、=<、<、<>      SQL Server特有的三個 !=、!<、!>

代數的使用 子句條件中的 col+20=60 與col=60-20 等價,但是後者可以提高效能,這個簡單的例子,道理是一樣的,所以一定要注意書寫習慣,改掉壞毛病。

其他比較子 BETWEEN  IN  LIKE  IS  SOME  ANY  ALL

BETWEEN x and z 相當於大於等於x且小於等於z;它經常與日期一起使用,日期時間

IN  用例一  region IN (‘Hebei’,‘Henan’);                   用例二 ‘Hebei‘ IN (col1,col2,col3…)

LIKE 包含萬用字元的條件。SQL萬用字元與DOS萬用字元不同,避免混淆,現在只說SQL的萬用字元:%代表任意個數的任一字元,  _代表一個任一字元,   []所附字元中的一個,  [^]不在所附字元中。舉例說明:‘Able’ LIKE ’A%’       ‘Able’ LIKE ’Abl_’        ‘A’ LIKE ‘[A-E]’     ‘a’ LIKE ‘abf’    ‘A’ LIKE ‘[^WXYZ]’

邏輯運算子 NOT AND OR 串連多個where條件 ,運算順序即 NOT AND OR。可以加()以增強可讀性。

SELECT…WHERE…    SELECT ‘abc’ AS col  WHERE 條件。如果條件為真,則返回 abc ,如果條件為假,返回為空白。

 

返回結果

星號* 特殊萬用字元 代表表順序的所有列;如果多個表也是所有表的所有列。tablename.*則只包括來自該表的列。

別名顯示在結果集中;如果沒有別名,運算式和常量一般顯示為空白欄位標題;包含空格或者關鍵字的別名放在方括弧、單引號或者雙引號內(不過最好還是不用那些)。

限定的列用表名限定列,防止產生誤會和錯誤。

 

結果集排序

通過列名指定排序 order by  col1,col2…

使用運算式指定排序 order by 運算式

使用列別名指定排序  (where子句不允許使用列別名,OK)

使用列的順序位置 order by 1;  不是很好,因為有時候列的順序位置會改變

升序、降序:預設升序ASC;降序DESC。例,ORDER BY col1 DESC;

定序

 

謂詞

首先解釋一下謂詞的意思,根據《現代漢語》的定義,詞語分兩類:體詞包括名詞、數詞、量詞;謂詞包括動詞和形容詞。在電腦語言的環境下,謂詞是指條件運算式的求值返回真或假的過程。SQL中的謂詞跟在SELECT後面

ALL/DISTINCT   ALL返回所有行(預設); DISTINCT把重複的行刪除,保留一個。

TOP(n) 在order by的條件下,TOP(n)表示返回結果的前n行;TOP(n) PERCENT 則返回結果集中的前n%。

WITH TIES 與TOP(n)一起使用,表示允許並列第n名等情況的發生

隨即行選擇  用ORDER BY NewID()排序,然後選擇第一行。newID是一個隨機數,這種方法對效能有一定影響。

SQL Server 查詢

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.