SQL Server ---T-SQl基本語句

來源:互聯網
上載者:User

標籤:類型   研究   不同   height   ges   忽略   png   不能   ...   

T-SQL 是 SQL-Server 的結構化查詢語言 (SQL)。

基本資料操作語言.

基礎語句

先建立表 我後面的列子都是用的這一個表,列名啥的 就大概看看吧~~ 純粹為了學習語句,文法~~所以先建立個表吧~

1.SELECT語句 

注意 : 最好選擇想要的列,不要因為省事用  “ * ” 去選擇所有的列,因為這樣檢索的資料會比你實際需要的資料多 ,實際使用中也會降低應用程式 和 網路 的使用 效能。

  where 子句

不加限制條件的查詢在填充 列表框和組合框 時非常有用,並且在其他想要提供域列表的情況下也非常有用。

在where子句中運算順序NOT、AND、OR是醬紫的。

In  左邊運算式 和 右邊任意值匹配時 返回TURE。常用於子查詢。

  Order by 子句

決定資料的輸出順序,會選擇系統開銷最小的方法來輸出查詢結果 

DECS 降序  ASC 升序

  Group by 子句

用於彙總資訊。

如果不使用group by 子句,那麼 sum函數將返回指定列的所有行之和。用了group by  ,sum函數返回的是每一組的和(ps:圖裡最後一行忘記刪掉了~沒用~)

注意:使用Group by子句時select 列表中所有列必須是彙總列 要麼就是 Group by 中包含的列。

           如果在select 列表中用了彙總列,那麼select 列表必須只包含彙總列,否則 必須有一個 Group by子句。

有點暈麼 沒關係 來翻一下

    就是說  select  彙總,彙總 from XX  where xx   列都是彙總列   可以不用 Group by  

    但是    select ID, 彙總 from XX  where xx Group By  因為不都是彙總列,所以要有 Group  by

下面那句 同理可證。

A.彙總函式

彙總函式獨立使用時,彙總函式只是用於彙總整個結果集 就像圖裡的第三條語句那樣。但是和Group by 一起使用時會很強大。

B.AVG 平均數

C.MAX/MIN 最大值/最小值

當求最大值和最小值時,為了分辨 列,可以使用AS關鍵字。雖然AS關鍵列是可選的,但是一為了程式可讀性,二為了編寫代碼符合ANSI/ISO標準。

D.COUNT(運算式 / * )

計算查詢中返回的行數

分為2種情況 第一種count(*)時

 

第二種count(運算式)時

 寫這個時候碰到一點問題,關於主鍵約束,唯一約束的定義用法,回來專門寫一篇好好研究下。

好,可以看見我寫了兩個不同的運算式,既然每一行都有列,那為什麼出來的結果不一樣?

這裡就是要注意的地方了。

注意:除了COUNT(*)函數外,所有的彙總函式都忽略NULL值。

 COUNT函數和GROUP BY函數一起使用時

 E.使用HAVING 子句給分組設定條件

 如果要將查詢條件放到分組後,可以用HAVing

注意:HAVING子句僅用於帶有GROUP BY子句的查詢語句。where子句應用於某一行,而having子句應用於分組的彙總值。

 F.使用for xml語句輸出XML

這裡以後會放一個專門介紹的連結,在這不做過多介紹。

G.通過option子句利用提示

這裡以後會放一個專門介紹的連結,在這不做過多介紹。

H.distinct和all謂詞

 這兩個與重複資料的處理有關。

秒懂~

這樣就可以篩選出 不重複的資料,在實際操作中這樣會讓返回的數量 大大的減小,而且下面的語句也比上面的語句執行速度要快。這裡以後會有個連結來討論為什麼會更快。

在彙總函式也可以使用distinct,文法:Select COUNT(distinct ID)from 表名。

ALL的含義剛好和distinct相反,所以他表示的就是除了distinct之外的情況。現在就需要瞭解就好, 以後會放一個專門介紹的連結,在這不做過多介紹。

 2.使用insert語句添加資料

 

into 關鍵字可加可不加,加了就是為了增強語句可讀性。隨意~

 

注意:在插值時有三種情況下,列不能設定為null值

1.列定義為預設值。

2.列定義為接受某種形式的系統產生值。比如說identity值

3.插入資料時已經提供了該列的值。

(預存程序sp_help功能給出任意資料庫物件、使用者自訂資料類型或sql server資料類型的資訊。查看course表屬性)

 

insert into ...select語句

如果要插入的資料區塊兒是從以下獲得:

  • 資料庫中的另一個表
  • 同一伺服器上一個完全不同的資料庫
  • 來自另一sql server的異類查詢或其他資料
  • 同一表 
insert into 需要插資料的表 Select 列名 from 輸出資料的表 where ID between 1 AND 100;
3.用update語句更改資料

 

update 表名 set 列名 =‘更新的值’ where 列名 =‘老的值’或者是 需要更改的那列的隨意列名和隨意列名的值

注意:有一些列是不能更新或者不建議更新的,比如timestamp 還有主鍵最好不要更新。

 

3.DELETE語句

SQL Server ---T-SQl基本語句

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.