熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL語言 >> 正文

數據庫進階:循序漸進講解SQL查詢語句的高級應用技巧[1]

2022-06-13   來源: SQL語言 

  一 簡單查詢

  簡單的TransactSQL查詢只包括選擇列表FROM子句和WHERE子句它們分別說明所查詢列查詢的

  表或視圖以及搜索條件等

  例如下面的語句查詢testtable表中姓名為張三的nickname字段和email字段

  SELECT nicknameemail
  FROM testtable

  WHERE name=張三

  (一) 選擇列表

  選擇列表(select_list)指出所查詢列它可以是一組列名列表星號表達式變量(包括局部變

  量和全局變量)等構成

  選擇所有列

  例如下面語句顯示testtable表中所有列的數據

  SELECT *
  FROM testtable

  選擇部分列並指定它們的顯示次序

  查詢結果集合中數據的排列順序與選擇列表中所指定的列名排列順序相同

  例如

  SELECT nicknameemail
  FROM testtable

  更改列標題

  在選擇列表中可重新指定列標題定義格式為

  列標題=列名

  列名 列標題

  如果指定的列標題不是標准的標識符格式時應使用引號定界符例如下列語句使用漢字顯示列

  標題

  SELECT 昵稱=nickname電子郵件=email

  FROM testtable

  刪除重復行

  SELECT語句中使用ALL或DISTINCT選項來顯示表中符合條件的所有行或刪除其中重復的數據行默認

  為ALL使用DISTINCT選項時對於所有重復的數據行在SELECT返回的結果集合中只保留一行

  限制返回的行數

  使用TOP n [PERCENT]選項限制返回的數據行數TOP n說明返回n行而TOP n PERCENT時說明n是

  表示一百分數指定返回的行數等於總行數的百分之幾

  例如

  SELECT TOP *
  FROM testtable
  SELECT TOP PERCENT *
  FROM testtable

  (二) FROM子句

  FROM子句指定SELECT語句查詢及與查詢相關的表或視圖在FROM子句中最多可指定個表或視圖

  它們之間用逗號分隔

  在FROM子句同時指定多個表或視圖時如果選擇列表中存在同名列這時應使用對象名限定這些列

  所屬的表或視圖例如在usertable和citytable表中同時存在cityid列在查詢兩個表中的cityid時應

  使用下面語句格式加以限定

  SELECT usernamecitytablecityid
  FROM usertablecitytable
  WHERE usertablecityid=citytablecityid

  在FROM子句中可用以下兩種格式為表或視圖指定別名

  表名 as 別名

  表名 別名

  例如上面語句可用表的別名格式表示為

  SELECT usernamebcityid
  FROM usertable acitytable b
  WHERE acityid=bcityid

  SELECT不僅能從表或視圖中檢索數據它還能夠從其它查詢語句所返回的結果集合中查詢數據

  例如

  SELECT aau_fname+aau_lname
  FROM authors atitleauthor ta
  (SELECT title_idtitle
  FROM titles
  WHERE ytd_sales>
  ) AS t
  WHERE aau_id=taau_id
  AND tatitle_id=ttitle_id

  此例中將SELECT返回的結果集合給予一別名t然後再從中檢索數據

  (三) 使用WHERE子句設置查詢條件

  WHERE子句設置查詢條件過濾掉不需要的數據行例如下面語句查詢年齡大於的數據

  SELECT *
  FROM usertable
  WHERE age>

  WHERE子句可包括各種條件運算符

  比較運算符(大小比較)>>==<<=<>!>!<

  范圍運算符(表達式值是否在指定的范圍)BETWEEN…AND…

  NOT BETWEEN…AND…

  列表運算符(判斷表達式是否為列表中的指定項)IN (項……)

  NOT IN (項……)

[]  []  []  


From:http://tw.wingwit.com/Article/program/SQL/201311/16245.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.