一、and
通過where可以進行條件過濾,但只限於單個條件。
通過and就可以連線多個條件,and代表了和,即and兩邊的條件全部滿足才會通過篩選。
這就類似程式語言中的&&。
以下表為例:
找出vend_id 等於『dll01』且prod_price > 4資訊。
二、or
or代表了或者,篩選時只需滿足or任意一邊的條件即可。類似程式語言中的||。
例如:
尋找vend_id = 'dll01'或者prod_price > 4的資訊,只需滿足任何乙個即可。
三、組合次序。
or和and可以聯合使用,但需要注意其組合次序,一般and優先順序高於or。
使用時最好加上()以表明那個操作符是乙個整體。
加上括號後會先算括號內的,如果不加括號會先算and兩邊的條件。
使用時最好加上括號。
四、in
in用於指定條件範圍,即只需滿足in指定的多個條件其中乙個即可。
where id in(1,2,3) 只需id等於1或2或3即滿足條件。
等價於where id = 1 or id = 2 or id = 3;
vned_id等於'dll01'或『brs01』的使用者被篩選出來了。
主要是in() 的括號中可以新增select語句,將select語句的檢索結果作為判斷引數。
五、not操作符
not操作符就是否認後面的條件,類似程式設計語句的!。
如果not後面是單一的條件,則否定是後面的單個條件。
如果not後面是被括號括起的多個條件,則否定的是這個括號內多個條件的結果。
例如(條件1...條件n) 為真, 則 not(條件1...條件n)為假。
下面看具體例子
否定後面單個條件,即變成了 prod_price >= 4 and prod_price < 6。
括號內條件篩選時所有小於4且小於6的資訊(即所有小於4的資訊),加上not後就變成了所有大於等於4的資訊。
該例原本是vend_id等於'dll01'或『brs01』,加上not後就變成了除了這些資料(滿足vend_id等於『dll01』或「brs01」)之外的其他資料。
即 not (vend_id = 'dll01' or vend_id = 'brs01')等價 (not vend_id = 'dll01' and not vend_id = 'brs01').記得這是乙個定理具體的名字忘了。
!(a || b) == !a && !b
六、用萬用字元進行過濾
使用萬用字元就可以實現類似正規表示式的操作,匹配資料中指定資料,使匹配更加靈活。
例如我想匹配所有商品名稱中帶『dog』的商品,這時採用常規操作比較難辦到。
萬用字元就是一些代表特殊含義的字元,使用這些特殊含義的字元時需要通過like匹配。
6.1 %
%萬用字元代表任意字元出現任意次數。(空格也是字元)
prod_name like '%be%'代表只要prod_name中有『be』,『be『 前面、後面可以是任意字元出現任意次數。
6.2 _
_萬用字元代表任意字元出現一次。
匹配了『8 inch teddy bear』,但沒有匹配『12 inch teddy bear』 因為12是兩個字元所以需要『__』(兩個)
注意空格也是字元,『_ in%』中'_'和in之間需要乙個空格。
SQL學習筆記之高階資料過濾
通過組合where子句建立功能更強 更高階的搜尋條件 sql可以通過and子句和or子句組合多個where子句 要過濾不止乙個列,可以通過and操作符給where子句附加條件 select prod id,prod price,prod name from products where vend i...
SQL學習筆記 《SQL高階教程》1 2
自連線 非等值連線 自連線 group by 遞迴集合 表是行的集合,面向集合 開銷較大 唯二重要的方法 case 自連線 sql語言 面向集合的特性 有序對 無序對 獲取可重排列 交叉連線 笛卡爾積 3 3 select p1.name as name 1,p2.name as name 2 fr...
SQL學習之高階資料過濾
一 高階資料過濾之in操作符 in 操作符用來指定條件範圍,範圍中的每個條件都可以進行匹配。in取一組由逗號分隔 括在圓括號中的合法值。如下 select itemid,itemname,checkvaluenum,checkvaluestring,resultlevel from t check ...