日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

oracle查询第二个字为a,Oracle中SQL语句学习二(like,转义,order by)

發(fā)布時(shí)間:2023/12/31 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle查询第二个字为a,Oracle中SQL语句学习二(like,转义,order by) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、like操作符

like操作符用于執(zhí)行模糊查詢,當(dāng)執(zhí)行查詢操作時(shí),如果不能完全確定某些信息的查詢條件,但這些信息又具有某些特征,那么可以使用模糊查詢,當(dāng)執(zhí)行模糊查詢時(shí),需要使用通配符"%"和"_",其中"%"(百分號(hào))用于表示0個(gè)或多個(gè)字符,"_"(下劃線)用于表示一個(gè)字符,如果要將

"%"、"_"、"'"、"&"

做為查詢條件時(shí),那么需要通過(guò)escape對(duì)

"%"、"_"

進(jìn)行轉(zhuǎn)義或通過(guò)ASCII編碼進(jìn)行轉(zhuǎn)義,而"&"則通過(guò)ASCII編碼或"||"將查詢的字符進(jìn)行拼接,"'"則通過(guò)ASCII編碼或通過(guò)

''替換'

進(jìn)行轉(zhuǎn)義,下面實(shí)例說(shuō)明使用like操作符的方法:

1、查詢首字符為"a"的所有員工姓名的信息:

Oracle代碼

select?*?from?temps?where?name?like?"a%";

2、查詢第三個(gè)字符為大寫"A"的所有員工姓名的信息:

Oracle代碼

select?*?from?temps?where?name?like?"__A%";

二、Oracle轉(zhuǎn)義符

1、對(duì)"&"進(jìn)行轉(zhuǎn)義,update、insert、select操作均需要進(jìn)行轉(zhuǎn)義,但是不能通過(guò)轉(zhuǎn)義字符查找,可以通過(guò)ASCII編碼或"||"將查詢字符拼接進(jìn)行查詢,例如:

Oracle代碼

update?temps?set?name='myjsp?page=1'||?'&'?||'page=10'??where?id=27;

update?temps?set?name='index.do?page=1'?||?chr(38)?||?'page=10'?where?id=88;

select?*?from?temps?where?name?like?'%'||chr(38)||'%';

select?*from??temps?where?name?like?'%.do%'?||chr(38)||?'%';

2、對(duì)"-"進(jìn)行轉(zhuǎn)義,insert、update操作可以不需要轉(zhuǎn)義,但是select操作需要通過(guò)escape或通過(guò)ASCII進(jìn)行轉(zhuǎn)義,例如:

Oracle代碼

update?temps?set?name='index.do_1'?where?id=28;

select?*?from?temps?where?name?like?'a=_%'?escape?'=';

select?*?from?temps?where?name?like?'a__%'?escape?'_';

select?*?from?temps?where?name?like?'__/_%'?escape?'/';

select?*?from?temps?where?name?like?'%\_%'?escape?'\';

----查詢帶有--字符并且以ab開(kāi)始的記錄的記錄

select?*?from?temps?where?name?like?'ab=_=_%'?escape?'=';

select?*?from?temps?where?name?like?'%\_\_%'?escape?'\';

3、對(duì)"%"進(jìn)行轉(zhuǎn)義,insert、update操作可以不需要轉(zhuǎn)義,但是select操作需要通過(guò)escape或通過(guò)ASCII進(jìn)行轉(zhuǎn)義,例如:

Oracle代碼

update?temps?set?name='index.do%'?where?id=100;

--查詢帶有%字符的記錄

select?*?from?temps?where?name?like?'%\%%'?escape?'\';

select?*?from?cip_temps?where?name?like?'index.do=%%'?escape?'=';

---查詢帶有%%字符的記錄

select?*?from?temps?where?name?like?'index.do\%\%%'?escape?'\';

select?*?from?temps?where?name?like?'%/%/%%'?escape?'/';

select?*?from?temps?where?name?like?'%=%=%%'?escape?'=';

select?*?from?temps?where?name?like?'%'%';

3、對(duì)"'"進(jìn)行轉(zhuǎn)義,insert、update操作可以不需要轉(zhuǎn)義,但是select操作需要通過(guò)?''替換'或通過(guò)ASCII進(jìn)行轉(zhuǎn)義,例如:

--用兩個(gè)''代替'。

update temps set name='index''99' where id=67;

--用ascii碼

select * from cip_temps where name like '%'||chr(39)||'%';

三、in操作符

IN操作符用于執(zhí)行列表匹配操作,當(dāng)列或表達(dá)式結(jié)果匹配于IN列表中的任意一個(gè)值時(shí),則返回true。例如:

Oracle代碼

select?*?from?temps?where?name?in('aa','bb','cc');

四、is null操作符

is null 操作符用于檢測(cè)列或表達(dá)式結(jié)果是否為null,如果結(jié)果為null則返回true,否則返回false,例如:

Oracle代碼

select?*?from?temps?where?name?is?null;

當(dāng)于null進(jìn)行進(jìn)行比較時(shí),不能使用"="、'<>'等邏輯操作符進(jìn)行比較,盡管使用他們進(jìn)行比較不會(huì)報(bào)錯(cuò),但是條件子句返回總是false。例如:

Oracle代碼

select?*?from?temps?where?name?=?null;

結(jié)果是沒(méi)有查詢出記錄。

五、order by子句

在執(zhí)行查詢操作時(shí),經(jīng)常對(duì)查詢的結(jié)果進(jìn)行排序,以顯示更直觀的數(shù)據(jù),數(shù)據(jù)排序是使用order by子句來(lái)實(shí)現(xiàn)的,其語(yǔ)法是:

Oracle代碼

SELECT?"欄位名"?FROM?"表格名"?[WHERE?"條件"]ORDER?BY?"欄位名"?[ASC,?DESC]

主意:當(dāng)select語(yǔ)句中同是包含多個(gè)子句(where、group by、having、order by等)時(shí),order by必須是最后一條子句。

1、升序排序

默認(rèn)情況下,當(dāng)使用order by執(zhí)行排序操作時(shí),數(shù)據(jù)以升序方式排序,也可以在排序列后制定ASC關(guān)鍵字。例如:

Oracle代碼

select?*?form?order?by?id[asc]

注意:當(dāng)執(zhí)行升序排序時(shí),如果排序列包含null值,那么null會(huì)顯示在最后面,Oracle在Order by 時(shí)缺省認(rèn)為null是最大值。

2、降序排序

當(dāng)使用order by 子句進(jìn)行排序操作時(shí),如果進(jìn)行降序排序操作,則必須制定desc關(guān)鍵字。例如:

Oracle代碼

select?*?form?order?by?id?desc

注意:當(dāng)執(zhí)行降序排序時(shí),如果排序列包含null值,那么null會(huì)顯示在最前面,Oracle在Order by 時(shí)缺省認(rèn)為null是最大值

3、使用多列排序

當(dāng)使用order by子句進(jìn)行排序操作時(shí),不僅可以基于單列或單個(gè)表達(dá)式進(jìn)行排序,也可以基于多個(gè)列或多個(gè)表達(dá)式進(jìn)行排序,當(dāng)基于多個(gè)列或多個(gè)表達(dá)式進(jìn)行排序操作時(shí),首先按照第一列或表達(dá)式進(jìn)行排序,當(dāng)?shù)谝涣谢虮磉_(dá)式存在相同數(shù)據(jù)時(shí),然后以第二列或表達(dá)式進(jìn)行排序操作,以此類推.....,例如:

Oracle代碼

select?*from?temps?order?by?age?asc,name?desc;

4、使用非選擇列進(jìn)行排序

可以使用沒(méi)有必須顯示的列或表達(dá)式進(jìn)行排序,例如:

Oracle代碼

select?age?from?temps?order?by?name?desc;

5、使用列別名進(jìn)行排序

如果為列或表達(dá)式定義了別名,那么進(jìn)行排序操作時(shí),可以通過(guò)別名進(jìn)行排序,例如:

Oracle代碼

select?name?as?"姓名"?from?cip_temps?order?by?"姓名";

6、根據(jù)列位置編號(hào)進(jìn)行排序

可以按照列或表達(dá)式在選擇列表中的位置進(jìn)行排序,例如:

Oracle代碼

select?name,age?from?temps?order?by?2?desc;

總結(jié)

以上是生活随笔為你收集整理的oracle查询第二个字为a,Oracle中SQL语句学习二(like,转义,order by)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。