select語句手記

來源:互聯網
上載者:User

1,查詢系統時間

select  distinct getdate() from sysdatabases
//此處用了distinct關鍵字是為了只顯示一條記錄(因為系統中不可能只有一個資料庫),同樣也可以使用 top 1來進行限制
//對distinct來說,null值是相同的
//系統預設的是 select all sellist from yourtable //all,顯示所有資料

2,查詢指定百分比的資料
select top 40 percent from info  //返回前40%的資料

3,在查詢清單中使用運算式
select p_id ,cost,quantity ,cost*quantity as 合計 from product

4,into 語句 將表中的指定資料存入另一個新表中(可以在不同的資料庫)
select * into DB1.dbo.newtable from DB2.dbo.oldtable [where]
//如果在select語句中指定了計算資料行(如cost*quantity),而在新表中對應的列不是計算資料行,而是一個實際的列,資料由執行select … into 時計算得出
//select … into語句不能與compute語句一起使用 
//目標資料庫可以是新表,也可以是暫存資料表
select * into tempdb.dbo.NetTopic from Test.dbo.Topic

5,  inner join… on 串連查詢條件
select 員工資料表.員工標號,職位表.職位 from 員工資料表 inner join 職位表 on (員工資料表.職位編號=職位表.職位編號)

6,限定子句 where
where子句指定資料檢索的條件,以限制返回資料行
where子句中的查詢條件
比較子:<,<=,>,>=,=,>,!=,!>,!<
範圍說明:
Between A and B,Not Between A and B
可選值列表: IN ,NOT IN
模式比對:LIKE,NOT LIKE
是否為空白:IS NULL ,IS NOT NUll
上述條件的邏輯組合:AND ,OR,NOT
//text,ntext,image資料類型不能與比較子組成查詢條件

7,like關鍵字中的萬用字元
%    包含零個或多個字元的任一字元串。
WHERE title LIKE '%computer%' 將尋找書籍標題中任意位置包含單詞“computer”的所有書籍標題。
_(底線) 任意單個字元(漢字需要兩個 __)
WHERE au_fname LIKE '_ean' 將尋找所有以 ean 結尾的四個字母的名字,例如 Dean 或 Sean。
[ ]   用於指定範圍,例如[a-f],表示a到f範圍內的任何單個字元
[^ ]   表示指定範圍,例如[^a-f],表示a到f範圍以外的任何單個字元
//對萬用字元的轉義 
1,like ‘sql#_test’ escape ‘#'   表示  sql_test字串  ,此處的#號可以用任何的不常用的符號來做轉義符,不過後面記得要有escape ‘轉義符'
2,使用[]來進行說明   like ’sql[_]test’  

8,彙總函數——NULL
彙總函數忽略Null
Count:Count函數將忽略對象中的空值,而Count(*)函數則將所有合格記錄都計算在內
Sum:忽略求和對象中的空值
Avg:忽略求和對象中的空值
Max/Min:忽略求和對象中的空值

9,子查詢——多值比較all
多值比較:多行一列
父查詢與多值子查詢之間的比較需要用all來串連
標量值S比子查詢返回集R中的每個都大時,S>ALL R  為True
All表示所有
>all,<all,<=all,>=all,<>all
<>all 等價於not in
例:找出年齡最小的學生
select * from students where age <=all(select age from students)
//另一種方法  select top 1 from students order by age

10,子查詢——多值比較Some/Any(早期用Any)
父查詢與多值子查詢之間的比較需要用Some來串連
標量值S比子查詢返回集R中的某一個大時
S>Some R 為True
>Some,<Some,=Some,<>Some,>=Some,<=Some
=Some等價於 in ,<>Some等價於 not in
例:找出不是最小年齡的學生
select * from students where age >some(select * from students)

11,子查詢——存在判斷Exists
Exists+子查詢用來判斷該子查詢是否返回元組
當子查詢的結果集非空時,Exists為True
當子查詢的結果集為空白時,Exists為False
不關心子查詢的具體內容,因此用Select *
例:列出選修了C01課程的學生的學號、姓名
select sno,sname From Students Where Exists
(

select * from SC

where SC.sno=Students.sno and cno=’C01’

)

//SC為選修課程表

聯繫我們

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