MYSQL必知必會(三)過濾資料

2021-10-05 04:08:28 字數 4428 閱讀 5474

資料過濾

用萬用字元進行過濾

使用萬用字元技巧

在select語句中,資料根據where子句中指定的搜尋條件進行過濾。where子句在表名(from子句)之後給出

select prod_name,prod_price

from products

where prod_price =

2.5;

order by和where同時使用時

order by位於where之後

;between匹配範圍中所有的值,包括指定的開始值和結束值

select prod_name,prod_price

from products

where prod_price between

5and

10;

null無值(no value),它與字段包含0、空字串或僅僅包含空格不同

select prod_name

from products

where prod_price is

null

;##返回**為空的名字

在過濾資料時,一定要驗證返回資料中確實給出了被過濾列具有null的行

select cust_id

from customers

where cust_email is

null

;

select prod_id,prod_price,prod_name

from products

where vend_id =

1003

and prod_price <=

10;

select prod_price,prod_name

from products

where vend_id =

1003

or vend_id=

1002

;

假如需要列出**為10美元(含)以上且由1002或1003製造的所有產品

返回的行中有兩行**小於10美元,顯然,返回的行未按預期的進行過濾。為什麼會這樣呢?

原因在於計算的次序。sql(像多數語言一樣)在處理or操作符前,優先處理and操作符

and 優先順序大於 or

select prod_name,prod_price

from products

where

(vend_id =

1002

or vend_id=

1003

)and prod_price >=

10;

此為我們所想要的

:任何時候使用具有and和or操作符的where子句,都應該使用圓括號明確地分組操作符

圓括號在where子句中還有另外一種用法

in操作符用來指定條件範圍,範圍中的每個條件都可以進行匹配

in取合法值的由逗號分隔的清單,全都括在圓括號中

select prod_name,prod_price

from products

where vend_id in

(1002

,1003

)order

by prod_name;

in操作符後跟由逗號分隔的合法值清單,整個清單必須括在圓括號中。

in操作符完成與or相同的功能

select prod_name,prod_price

from products

where vend_id =

1002

or vend_id=

1003

order

by prod_name;

in操作符優點在使用長的合法選項清單時,in操作符的語法更清楚且更直觀

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

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

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

功能:否定它之後所跟的任何條件

select prod_name,prod_price

from products

where vend_id notin(

1002

,1003

)order

by prod_name;

萬用字元(wildcard):用來匹配值的一部分的特殊字元

搜尋模式(search pattern):由字面值、萬用字元或兩者組合構成的搜尋條件

為在搜尋子句中使用萬用字元,必須使用like操作符

%:表示任何字元出現任意次數

#找出所有以詞jet起頭的產品

select prod_id,prod_name

from products

where prod_name like

'jet%'

select prod_id,prod_name

from products

where prod_name like

'%anvil%'

注:%可匹配 0,1,多個字元,不能匹配null

:下劃線(_)只能匹配乙個字元,要注意空格,空格也是字元

和%比較

萬用字元搜尋的處理一般要比前面討論的其他搜尋所花時間更長

技巧:

不要過度使用萬用字元。如果其他操作符能達到相同的目的,應該使用其他操作符

在確實需要使用萬用字元時,除非絕對有必要,否則不要把它們用在搜尋模式的開始處。把萬用字元置於搜尋模式的開始處,搜尋起來是最慢的

仔細注意萬用字元的位置。如果放錯地方,可能不會返回想要的資料

MySQL必知必會 過濾資料

基礎過濾 包括以下內容 面向已知值,進行過濾 where操作符的使用 非組合過濾 組合過濾 where 表示過濾條件 基礎語法 select field from tb where condition 要點 1.面向被檢索的所有資料 並非對查詢結果進行過濾 2.可以根據非檢索列進行過濾 建議實踐 2...

mysql過濾 MySQL必知必會 資料過濾

組合where子句 1.1 and操作符 1.2 or操作符 1.3 計算次序 in 操作符 not操作符 1.1 and操作符 mariadb test select id,age,province from user where age 30 and province 北京 id age pro...

MySQL必知必會六 過濾資料

只檢索所需資料需要指定搜尋條件 search criteria 搜尋條件也稱為過濾條件 filter condition 在select語句中,資料根據where子句中指定的搜尋條件進行過濾。where子句在表名 from子句 之後給出,如下所示 mysql select prod name,pro...