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''