SQL語句 - 基本查詢

select select_list [ into new_table ] from table_source [ where search_condition ] [ group by broup_by_expression ] [ having search_condition ] [order by order_by_expression [ asc | desc ] 
複製代碼

select查詢語句中的主要參數說明以下html

select_list:查詢的列或者表達式的列表,用逗號進行分隔。 new_table:新的表名。 table_source:要查詢的表。若是是多個表,用逗號進行分隔。 search_condition:查詢條件。 group_by_expression:分組表達式。 order_by_expression:排序表達式。 asc:升序排序。 desc:降序排序。web

select查詢語句字句的功能列表數據庫

子句 主要功能 是否必需
select 指定由查詢返回的列
from 指定要查詢的表
into 建立新表並將結果行插入新表中
where 查詢條件
group by 對查詢結果進行分組
order by 對查詢結果進行排序
having 對查詢結果進行篩選

 

2、選擇列表

  選擇列表用於定義select語句的結果集中的列express

  一、*  查詢全部列:服務器

  select * from person  

  *就是結果集合,表示查詢person表中的全部列。函數

  二、distinct  去除重複數據:性能

   distinct是對全部列做用,也就是說,全部列都相同纔算重複數據。this

  select distinct name from person

  三、包含函數的查詢:spa

  例如:code

  select count(*) from person

3、from子句

from子句實際上就是用逗號分隔的表名、視圖名和join字句的列表。使用from子句能夠實現以下功能:

一、列出選擇列表和where子句引用的列所在的表和視圖。可使用as子句爲表和視圖指定別名。

二、聯接類型。這些類型由on子句中指定的聯接條件限定。

分配表名時可使用以下形式

    •  table_name  as  table alias
    •  table_name  as  table_alias

 須要特別說明的是,若是爲表分配了別名,那麼T-SQL語句中對該表的全部顯示引用都必須使用別名,而不能使用別名。

4、where子句

 where子句能夠篩選結果集的源表中的行。帶有where子句的select語句的結構以下:

   select <字段列表>   from <表名>   where<條件表達式>

 其中,條件表達式是由各類字段、常量、表達式、關係運算符、邏輯運算符和特殊的運算符組合起來的。

 where子句中的運算符:

 一、關係運算符

  關係運算符用來表示兩個表達式之間的比較關係。

關係運算符 含義
= 等於
< 小於
> 大於
!=(或<>) 不等於
>= 大於等於
<= 小於等於
!> 不大於
!< 不小於

 

   二、邏輯運算符

    邏輯運算符用於表示兩個表達式之間的邏輯關係:

邏輯運算符 含義
not 非(否)
and
or

 

  三、特殊運算符

特殊運算符 含義
% 通配符,一般與like配合使用
_ 通配符,表明嚴格的一個字符。where name like '_xxx'將查找以xxx結尾的全部4個字母的名字(sxxx,dxxx等)
[] 指定範圍([a-f])或集合([abcdefg])中的任何單個字符。where name like '[a-f]xxxx',將超找以abcdef開頭,xxxx結尾的字符。
[^] 不屬於指定範圍的([a-f])或集合([abcdefg])的任何單個字符。
between 定義一個取值範圍區間,使用and分開。between開始值與and結束值。
like 字符串匹配
in 一個字段的值是否在一組定義的值之中
exists 子查詢有結果集返回(則子查詢返回True)
not exists 子查詢沒有結果集返回(則子查詢返回True)
is null 字段是否爲null
is not null 字段是否不爲null

 在WHERE子句中使用EXISTS(若是使用得當的話)能夠大大提升性能。由於使用EXISTS時,只要找到和條件匹配的記錄,SQL Server就當即中止。假設有一個包含一百萬條記錄的表,而且在第三個記錄中找到了匹配的記錄,那麼使用EXISTS選項將避免讀取999997條記錄!NOT EXISTS以一樣的方式工做。

5、group by子句

  詳見地址:http://www.cnblogs.com/kissdodog/p/3365789.html

6、order by子句

   order by子句用於指定結果集的排序

  一、語法結構:

    select <字段名列表>     from 數據庫表名     [where <條件表達式>]     [order by[<字段名或者表達式> [asc|desc],...]]

   order by子句能夠搭配where子句,也能夠和select、fromD搭配使用,而不須要where子句。

  order by子句的語法以下:

    [ order by { order_by_expression [ asc | desc] } [ ,...n ] ]

其中主要的參數說明以下:

  order_by_espression:指定要排序的列、列的別名、表達式或者指定爲表明選擇列表內的名稱、別名或表達式的位置的負整數。

  asc:按遞增順序對指定列中的值進行排序。

  desc:按遞減順序對指定列中的值進行排序。

7、having篩選查詢

  詳見地址:http://www.cnblogs.com/kissdodog/p/3365789.html

8、into查詢

  into子句將查詢結果生成新表,新表的結構由查詢字段列表組成。也能夠將查詢的結果送入tempdb數據庫的臨時表中,這樣關閉服務器以後臨時表會自動刪除。

  into查詢的語法結構:

  SELECT <字段名列表>   [ into 新的數據表名 ]   FROM 數據庫表名   [ where <條件表達式> ]
相關文章
相關標籤/搜索