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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

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

一、like操作符

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

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

做為查詢條件時,那么需要通過escape對

"%"、"_"

進行轉義或通過ASCII編碼進行轉義,而"&"則通過ASCII編碼或"||"將查詢的字符進行拼接,"'"則通過ASCII編碼或通過

''替換'

進行轉義,下面實例說明使用like操作符的方法:

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

Oracle代碼

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

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

Oracle代碼

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

二、Oracle轉義符

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

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、對"-"進行轉義,insert、update操作可以不需要轉義,但是select操作需要通過escape或通過ASCII進行轉義,例如:

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開始的記錄的記錄

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

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

3、對"%"進行轉義,insert、update操作可以不需要轉義,但是select操作需要通過escape或通過ASCII進行轉義,例如:

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、對"'"進行轉義,insert、update操作可以不需要轉義,但是select操作需要通過?''替換'或通過ASCII進行轉義,例如:

--用兩個''代替'。

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

--用ascii碼

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

三、in操作符

IN操作符用于執行列表匹配操作,當列或表達式結果匹配于IN列表中的任意一個值時,則返回true。例如:

Oracle代碼

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

四、is null操作符

is null 操作符用于檢測列或表達式結果是否為null,如果結果為null則返回true,否則返回false,例如:

Oracle代碼

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

當于null進行進行比較時,不能使用"="、'<>'等邏輯操作符進行比較,盡管使用他們進行比較不會報錯,但是條件子句返回總是false。例如:

Oracle代碼

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

結果是沒有查詢出記錄。

五、order by子句

在執行查詢操作時,經常對查詢的結果進行排序,以顯示更直觀的數據,數據排序是使用order by子句來實現的,其語法是:

Oracle代碼

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

主意:當select語句中同是包含多個子句(where、group by、having、order by等)時,order by必須是最后一條子句。

1、升序排序

默認情況下,當使用order by執行排序操作時,數據以升序方式排序,也可以在排序列后制定ASC關鍵字。例如:

Oracle代碼

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

注意:當執行升序排序時,如果排序列包含null值,那么null會顯示在最后面,Oracle在Order by 時缺省認為null是最大值。

2、降序排序

當使用order by 子句進行排序操作時,如果進行降序排序操作,則必須制定desc關鍵字。例如:

Oracle代碼

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

注意:當執行降序排序時,如果排序列包含null值,那么null會顯示在最前面,Oracle在Order by 時缺省認為null是最大值

3、使用多列排序

當使用order by子句進行排序操作時,不僅可以基于單列或單個表達式進行排序,也可以基于多個列或多個表達式進行排序,當基于多個列或多個表達式進行排序操作時,首先按照第一列或表達式進行排序,當第一列或表達式存在相同數據時,然后以第二列或表達式進行排序操作,以此類推.....,例如:

Oracle代碼

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

4、使用非選擇列進行排序

可以使用沒有必須顯示的列或表達式進行排序,例如:

Oracle代碼

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

5、使用列別名進行排序

如果為列或表達式定義了別名,那么進行排序操作時,可以通過別名進行排序,例如:

Oracle代碼

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

6、根據列位置編號進行排序

可以按照列或表達式在選擇列表中的位置進行排序,例如:

Oracle代碼

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。