操作符(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子句結束,...