MySQL資料庫 過濾資料

2021-10-11 21:07:27 字數 2827 閱讀 6786

資料庫一般包含大量的資料,但是我們大部分情況下並不需要檢索所有的資料,只要檢索部分資料就行了。

1. 使用where 子句

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

select users.user_name, users.user_age from users where users.user_name = 「張三」;

2.where子句操作符**

2.1 檢查單個值

select users.user_name, users.user_age from users where users.user_age <= 200 order by users.user_age; 1
注意這裡的小於等於,關於where的操作符和平常程式語言其實差不多的。

2.2 不匹配檢查

select users.user_name, users.user_age from users where users.user_age != 40 order b
2.3 範圍值檢查

為了檢查某個範圍的值,可使用between操作符。其語法和其他的where操作符稍有不同,因為他需要兩個值,即開始值和結束值。

select users.user_name, users.user_age from users where users.user_age between 19 a
2.4 空值檢查

建立表的時候,表的設計人員可以指定其中的列是否可以不包含值。在乙個列不包含值的時候,稱其為包含空值null 。

null 無值,他與字段包含0,空字串或僅僅包含空格不同

select語句有乙個特殊的where子句,可用來檢查具有null值的列。這個where子句就是 is null 子句 如下:

select prod_name from products where prod_price is null;
** 3 組合where子句**

mysql允許給出多個where子句。這些子句可以兩種方式使用:以and方式或者or方式使用。

3.1 and操作符

為了通過不只乙個列進行過濾,可以使用and操作符給where子句附加條件。下面的**給出了乙個例子:

select users.user_name, users.user_age from users where users.user_age between 19 and 50 and users.user_id < 8;1
可以看出,我們在where子句中 多新增了乙個and關鍵字 來鏈結兩個過濾條件 。就是這麼簡單~

3.2 or操作符

or操作符和and操作符不同,它指示mysql檢索匹配任一條件的行 。

如下:

select users.user_name, users.user_age from users where users.user_age between 19 and 60 or users.user_id < 10;1
3.3 計算次序

where可以包含任意數目的and和or操作符。並且允許兩者進行結合,但是這會產生乙個有趣的問題。

就是說當類似於where id = 2002 or id = 1003 and price >= 10的情況,我們該如何確定 id = 1003 是應用於前面的 or 還是 後面的 and呢?

sql語言對這種情況,在處理or操作前,優先處理and。就是說 and在計算次序中優先順序更高,有時會產生我們不想要的結果 。

這個問題的解決方法是使用圓括號明確地分組相應的操作符 。

select users.user_name, users.user_age from users where (users.user_age != 1 and users.user_id != 0) or users.user_id < 10;1
注意,從結構上講,這條語句就比上面那條多了個括號,任何時候使用具有and和or操作符的語句的時候都應該帶上括號明確分組操作!

3.4 in操作符

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

select users.user_name , users.user_age from users where users.user_age in(19,63);1
可以看出 in 操作符 和 or的 功能是相似地! 那為什麼要使用in操作符呢?如下:

1.在使用長的合法選項清單中 in 操作符語法更清楚且直觀 。

2.在使用in時,計算的次序更容易管理。

3.in操作符一般比or更快

4.in操作符最大的有點就是能包含其他select語句,使得能夠更動態的建立where子句。

3.5 not操作符

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

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

如下:

select users.user_name , users.user_age from users where users.user_age not in(19,63

MySQL資料庫 過濾資料(一)

資料庫一般包含大量的資料,但是我們大部分情況下並不需要檢索所有的資料,只要檢索部分資料就行了。只檢索所需要資料需要指定搜尋條件,搜尋條件也稱為過濾條件。part 1 使用where 子句 在select子句中,資料根據where子句中指定的搜尋條件進行過濾。where子句在表名 from子句 之後給...

MySQL資料庫 萬用字元過濾

萬用字元 wildcard 用來匹配值的一部分的特殊字元。搜尋模式 search pattern 由字面值 萬用字元或兩者組合構成的搜尋條件。最常使用的萬用字元是百分號 在搜尋串中,表示任何字元出現任意次數。例如,為了找出所有以詞dll起頭的產品名,可使用以下select語句 萬用字元可在搜尋模式中...

Mysql資料庫學習(4) 過濾資料

通常情況下,採用列檢索出來的資料範圍很大,並非都是我們所需要使用的資料。為了盡快的尋找出所需資料,我們可以使用wher語句進一步縮小資料範圍,從而得到我們真正想要的資料。關於where語句的具體使用方法如下 1.單純的where語句 select cust id,cust name from cus...