關於SQL查詢操作的一些小得

2021-09-25 02:16:58 字數 2070 閱讀 3872

1、組合where子句

為了進行更強的過濾控制,sql允許給出多個where子句,這些子句有兩種使用方式,即以and子句或or子句的方式使用。

注意:1、操作符:用來聯結或改變where子句中的子句的關鍵字,也稱為邏輯操作符

1.1、and操作符

#檢索由**商dll01製造且**小於等於4美元的所有產品的名稱和**;

select  prod_id , prod_price , prod_name

from products

where vend_id = 'dll01' and prod_price <= 4 ;

1.2 、or操作符

#檢索由**商dll01或者brs01製造的所有產品的產品名和**;

select   prod_name ,prod_price

from products

where vend_id = 'dll01' or vend_id = 'brs01' ;

1.3、求值順序

列出**為10美元及以上,且有dll01或bsr01製造的產品。

輸入:select prod_name,prod_price

from products

where vend_id = 'dll01' or vend_id = 'brs01'

and prod_price >= 10;

#錯誤輸出:

分析:返回的行中由四行**小於10美元,顯然返回的行未按預期的進行過濾。原因就是and操作符的優先順序比or操作符的優先順序高,所有這裡理解為:由**商brs01製造的**為10美元以上的所有產品,以及由**商製造的所有產品而且不管其**如何。

輸入:select prod_name,prod_price

from products

where (vend_id = 'dll01' or vend_id = 'brs01')

and prod_price >= 10;

#正確#正確的語句和前一條的唯一差別就是,將前兩個條件用圓括號括了起來

輸出:注意:

1、任何時候使用具有and和or操作符的whereziju,都應該使用圓括號明確的分組操作符。不要過分依賴預設求值順序,即使他確實如你希望的那樣。使用圓括號沒有什麼壞處,他能消除歧義。

2、in操作符

in:where子句中用來指定要匹配值的清單的關鍵字,功能與or相當。

select prod_name,prod_price

from products

where vend_id in ('dll01','brs01')

order by prod_name ;

select prod_name,prod_price

from products

where vend_id = 』dll01『 or vend_id = 'brs01'

order by prod_name ;

為什麼要使用in操作符

1、再由很多合法選項時,in操作符的語法更清楚,更直觀。

2、在與其他and和or操作符組合使用in時,求職順序更容易管理。

3、in操作符一般比一組or操作符執行的更快。

4、in的最大優點是可以包含其他select語句,能夠更動態的建立where子句。

3、not操作符

where子句中的not操作符由且只有乙個功能,那就是否定其後所更的任何條件。

select prod_name

from produtcts

where not vend_id = 'dll01'

order by  prod_name ;

分析:這裡的not否定跟在其後的條件,因此,dbms不是匹配vend_id為dll01,而是匹配非dll01之外的所有東西。

#以上的例子也可以使用<>操作符來完成

select prod_name

from products

where vend_id <> 'dll01'

order by prod_name ;

分析:為什麼使用not?對於這裡的這種簡單的where子句,使用not確實沒有什麼優勢。但在更複雜的子句中,not是非常有用的。

sql一些小查詢語句

1.表內容 2005 05 09 勝 2005 05 09 勝 2005 05 09 負 2005 05 09 負 2005 05 10 勝 2005 05 10 負 2005 05 10 負 如果要生成下列結果,該如何寫sql語句?勝 負 2005 05 09 2 2 2005 05 10 1 2...

SQL查詢的一些小技巧

1.當使用and時,將很可能不為真的條件放在前面.因為資料庫系統從左到右計算條件,並遵守運算子的優先順序.如果乙個條件中存在兩個或多個and運算子,則左邊的乙個條件首先被計算.例子 1 select language 2from computer 3where comefrom usa and da...

SQL一些小技巧

1.把某個字段重新生氣序列 從1到n declare i int set i 0 update table1 set i i 1,field1 i 2.按成績排名次 update 成績表 set a.名次 select count 1 from 成績表 b where a.總成績 b.總成績 fro...