天天看點

20、oralce中單引号和雙引号的差別

20、oralce中單引号和雙引号的差別:

20.1、單引号和雙引号oracle都支援,但是兩者是有差別的;

20.2、雙引号在 Oracle 中的作用:

1、雙引号的作用是:假如建立對象的時候,對象名、字段名加雙引号,則示意Oracle将嚴格區分大小寫,否則Oracl都預設大寫。

2、雙引号引住字段名:

(1)普通字段:

select * from emp where "ENAME" = scott;

因為雙引号提示oracle嚴格區分大小寫,如下則不行;

select * from emp where "ename" = scott;

(2)字段是關鍵字:

假如你有個表的字段叫sysdate,因為sysdate屬于oracle中的特有字元,但你要查詢這個字段的時候需要使用

select "SYSDATE" from table_name;

但是你要是用

select 'SYSDATE' from table_name;

那麼你查出來的就是字元串,結果是SYSDATE。

20.3、單引号在 Oracle 中的作用:

1、引用一個字元串常量,也就是界定一個字元串的開始和結束;

例如:

select * from table_name where id=1;

#這種代表查詢的是數字

select * from table_name where id='1';

#這種代表查詢的是字元

2、轉義符,對緊随其後出現的字元(單引号)進行轉義:

兩個單引号可以作為單引号的轉義使用,意思就是一個真正的、沒有特殊功能的單引号。

update device set dept='select * from message where name='tom' ';

#更新語句不可以

update device set dept='select * from message where name=' 'tom' ' where id=3';

#更新語句可以。

select substr('I''am a liuchang',1,4);

3、表示它本身,也就是它作為一個字元串的一部分而出現在一個字元串常量中:

如果單引号出現在表達式中間(即非表達式開頭和結尾的單引号),且多個單引号之間沒有任何其他字元,那麼當我們從左向右分析時,第一對單引号中的

第一個是轉義符,它對緊随其後的第二個單引号進行轉義,以使第二個單引号作為一個字元出現在一個字元串常量中,第二對,第三對,以此類推......。

示例一:

select '''' from dual;

result '

表達式 '''' 中第1、4個單引号表示引用一個字元串常量,表達式的剩餘部分我們從左往右分析,由于中間是一對單引号,故此對中的第一個是轉義符,對第二

個進行轉義,使第二個表示單引号本身。分析得出這裡有一個字元串常量,其中隻有一個單引号字元。

示例二:

select 'exit''''' from dual

result exit''