SQL必知必會 筆記 第五章 高階過濾資料

2021-07-01 19:08:41 字數 2109 閱讀 8210

操作符(operator)用來聯結或改變where子句中的子句的關鍵字。也稱為邏輯操作符。

為了通過不止乙個列進行過濾,可使用and操作符給where子句附加條件。

select prod_id,prod_price,prod_name

from products

where vend_id = 'dll01'

and prod_price <= 4;

and 用在where子句中的關鍵字,用來指示檢索滿足所有給定條件的行。

or操作符與and操作符不同,他指示資料庫管理系統軟體檢測匹配任一條件的行。事實上,許多dbms在or where子句的第乙個條件滿足的情況下,不再計算第二個條件。

select prod_name,prod_price

from products

where vend_id = 'dll01'

or vend_id = 'brs01';where子句中使用的關鍵字,用來表示檢索匹配任一給定條件的行。

where可包含任意數目的and和or操作符。

select prod_name,prod_price

from products

where vend_id = 'dll01'

or vend_id = 'brs01'

and prod_price >=10;

不會按預期進行過濾。原因在於計算的次序。sql在處理or操作符前,優先處理and操作符。sql看到語句時,他理解為有**商brs01製造的任何**為10美元以上的產品,或者由**商dll01製造的任何產品,而不管其**如何。

select prod_name,prod_price

from products

where (vend_id = 'dll01'

or vend_id = 'brs01' )and prod_price >=10;

使用圓括號將前兩個條件括起來。

在where子句中使用圓括號:任何時候使用具有and和or操作符的where子句,都應該使用圓括號明確地分組操作符。不要過分依賴預設計算次序。

in操作符用來指定條件範圍,範圍中的每個條件都可以進行匹配。in取合法值的由逗號分隔的清單,全部括在圓括號中。

select prod_name,prod_price

from products

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

order

by prod_name;

等價於where vend_id =』dll01』 or vend_id = 『brs01』

使用in操作符的優點:

1.在長時間的合法選項清單時,in操作符的語法更清楚且更直觀。

2.在使用in時,計算的次序更容易管理(因為使用的操作符更少)。

3.in操作符一般比or操作符清單執行更快。

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

where子句中的not操作符有且只有乙個功能,那就是否定它之後所跟的任何條件。因為not從不自己使用,它的語法與其他操作符有所不同。not可以用在要過濾的列前,而不僅是在其後。

not where子句中用來否定後跟條件的關鍵字。

select prod_name

from products

where

not vend_id = 'dll01'

order

by prod_name;

not否定跟在它之後的條件。

等價於:

select prod_name

from products

where vend_id <> 'dll01'

order

by prod_name;

在使用簡單的where子句時,使用not沒有什麼優勢。但是在更複雜的子句中,not是非常有用的。

mysql中的not:mysql不支援這裡描述的not的格式。在mysql中,not只用來否定exists(not exists)

MySQL必知必會 學習筆記 第五章 排序檢索資料

檢索出的資料如果不排序,不是以純粹的隨機順序顯示的,一般以行在底層表 現的順序顯示,這可以是資料最初新增到表中的順序,但如果資料後來進行過更新或刪除,則此順序將會受到mysql重用 儲存空間的影響,因此不能依賴不排序的順序。關聯式資料庫的設計理論認為,如不明確規定排序順序,則不應假定檢索出的資料順序...

MYSQL必知必會讀書筆記 第五章 排序檢索資料

其實,檢索出的資料並不是以純隨機順序顯示的。如果不排序,資料一般將以它底層表現中出現的順序顯示。這可以是資料最初新增到表中的順序。但是,如果資料後來進行過更新或刪除,則此順序將會受到mysql重用 儲存空間的影響。因此,如果不明確控制的話,不能依賴該排序順序。在多個列上將序排列 如果想在多個列上進行...

《SQL必知必會》16 18章筆記

update的使用方式 e.g update customers set cust email kim thetoystore.com where cust id 1000000005 update語句總是以要更新的表名開始。set命令用來將新值賦給被更新的列,update語句以where子句結束,...