IN操作符與LIKE子句 各種查詢

2022-04-08 19:52:27 字數 1676 閱讀 9241

in操作符與like子句-各種查詢

一、指定範圍的判斷:in操作符

www.2cto.com  

in操作符表示的是指定乙個查詢的範圍,例如,現在有如下乙個查詢要求:

範例:查詢出雇員編號是7369、7566、7799的雇員資訊

如果按照最早的做法,使用or操作完成;

select * from emp

where empno=7369 or empno=7566 or empno=7799;

如果現在使用了新的操作符in的話,則**簡單了;

select * from emp

where empno in (7369,7566,7799);

而如果現在使用的是not in呢?則表示不在指定的範圍之中。

select * from emp

where empno not in (7369,7566,7799);

www.2cto.com  

注意點:關於not in的問題

如果現在使用了in操作符,查詢的範圍之中存在了null,不影響查詢;

select * from emp where empno in(7369,7566,null);

如果現在使用的是not in操作符,如果查詢範圍之中有了null則表示的就是查詢全部資料。

select * from emp where empno not in(7369,7566,null);

對於這個限制,現在先作為特點記住,以後會講解為什麼not in之中不能出現null。

二、模糊查詢:like子句

like子句的功能是提供了模糊查詢的操作,例如:某些程式上出現的搜尋操作,都屬於like子句的實現,但是必須提醒的,搜尋引擎上的查詢可不是like。

但是要想使用like子句則必須認識兩個匹配符號:

匹配單個字元:_;             ->  1個

匹配任意多個字元:%;      ->  0個、1個、多個

範例:要求查詢雇員姓名中以字母a開頭的全部雇員資訊

select * from emp where ename like 'a%';

範例:要求查詢出雇員姓名中第二個字母是a的全部雇員資訊

select * from emp where ename like '_a%';

範例:要求查詢出雇員姓名中帶有字母a的雇員

select * from emp where ename like '%a%';

現在也可以使用not操作,對操作進行求反的功能:

select * from emp where ename not like '%a%';

但是對於like子句,不一定只能在字串資料上表示,可以在任意的資料上表示:

select * from emp where ename like '%1%' or hiredate like '%1%' or sal like '%1%';

說明:關於like子句的使用

在開發之中,資料庫的模糊查詢肯定使用like子句,但是在使用like子句的時候有乙個最大的注意點:如果在模糊查詢上不設定任何的查詢關鍵字的話('%%')則表示查詢全部記錄:

select * from emp where ename like '%%' or hiredate like '%%' or sal like '%%';

這乙個特點可以幫助使用者節約很多的**,所以一定要記住。

LIKE操作符 謂詞

like操作符 用來進行模糊查詢。當你不知道乙個具體值 可以使用like操作符進行模糊查詢!select from 表名 where a like a a a b a b 這個是防止b後面有空格 所以可能檢索不到,在b後再加上 select from products where prod name...

4 2 WHERE子句操作符

4.2 where子句操作符 我們在關於相等的測試時看到了第乙個where子句,它確定乙個列是否包含特定的值。sql支援表4 1列出的所有條件操作符。表4 1 where子句操作符 操 作 符 說 明 等於 不等於 不等於 小於 小於等於 不小於 大於 大於等於 不大於between 在指定的兩個值...

MySQL基礎之 LIKE操作符

like操作符 作用 用於在where子句中搜尋列中的指定模式。語法 select column name from table name where column name like pattern 現在我們建立乙個表 mysql select from information id name a...