1、存儲(chǔ)過程中:
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比畢節(jié)網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式畢節(jié)網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋畢節(jié)地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴。
create or replace procedure p_test
as --這里的as表示存儲(chǔ)過程中與變量名字的承接v_begintimevarchar2(20);v_endtimevarchar2(20);v_strvarchar2(10);beginv_begintime:=to_char(sysdate,'yyyy-mm-dd hh24:mi:ss');select 'badkano' into v_str fromdual;v_endtime:=to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')
2、給字段起別名或給表起別名:
select empno as 員工號(hào) from emp as t;
其中as 員工號(hào)表示對(duì)empno起別名叫員工號(hào),as t表示emp表的別名叫t。
一 、with as 的含義
WITH AS短語,也叫做子查詢部分(subquery factoring),可以讓你做很多事情,定義一個(gè)SQL片斷,該SQL片斷會(huì)被整個(gè)SQL語句所用到。有的時(shí)候,是為了讓SQL語句的可讀性更高些,
也有可能是在UNION ALL的不同部分,作為提供數(shù)據(jù)的部分。
特別對(duì)于UNION ALL比較有用。因?yàn)閁NION ALL的每個(gè)部分可能相同,但是如果每個(gè)部分都去執(zhí)行一遍的話,則成本太高,所以可以使用WITH AS短語,則只要執(zhí)行一遍即可。
如果WITH AS短語所定義的表名被調(diào)用兩次以上,則優(yōu)化器會(huì)自動(dòng)將WITH AS短語所獲取的數(shù)據(jù)放入一個(gè)TEMP表里,如果只是被調(diào)用一次,則不會(huì)。而提示materialize則是強(qiáng)制將WITH AS短語里的數(shù)據(jù)放入一個(gè)
全局臨時(shí)表里。很多查詢通過這種方法都可以提高速度。
with as在查詢的時(shí)候建立臨時(shí)表,數(shù)據(jù)是寫入了內(nèi)存中,在處理邏輯復(fù)雜且數(shù)據(jù)量不是很大的業(yè)務(wù)時(shí),我們可以采取的這樣的方法來提高sql的性能,并且也降低sql的復(fù)雜性,讓邏輯更加的清晰,方便維護(hù)。
增加了SQL的易讀性,如果構(gòu)造了多個(gè)子查詢,結(jié)構(gòu)會(huì)更清晰;更重要的是:“一次分析,多次使用”,這也是為什么會(huì)提供性能的地方,達(dá)到了“少讀”的目標(biāo)。
參考下面的列子:
最后,如果數(shù)據(jù)量很大的情況不要用with as。
as一般用于存儲(chǔ)過程中定義變量前,還有一種用法是給表或者字段起別名。
1、存儲(chǔ)過程中:
create?or?replace?procedure?p_test
as?--這里的as表示存儲(chǔ)過程中與變量名字的承接
v_begintime?varchar2(20);
v_endtime?varchar2(20);
v_str?varchar2(10);
begin
v_begintime:=to_char(sysdate,'yyyy-mm-dd?hh24:mi:ss');
select?'badkano'?into?v_str?from?dual;
v_endtime:=to_char(sysdate,'yyyy-mm-dd?hh24:mi:ss');
dbms_output.put_line('開始時(shí)間為:'||v_begintime);
dbms_output.put_line('結(jié)束時(shí)間為:'||v_endtime);
end;
2、給字段起別名或給表起別名:
select?empno?as?員工號(hào)?from?emp?as?t;
其中as 員工號(hào)表示對(duì)empno起別名叫員工號(hào),as t表示emp表的別名叫t。
'N' AS SCBZ
新增了一個(gè)字段,字段名為scbz,每條記錄的字段值都為'N'
as的作用就是當(dāng)做別名的意思,當(dāng)做。其實(shí)空格代替as 也可以。
as加了以后可以定義字段別名,不加as無法命名別名。操作方法如下:
1、首先在oracle中as的作用主要是為表中的字段添加別名,如下圖。
2、在命名別名的時(shí)候也可以區(qū)分大小寫,不過要加雙引號(hào)"",如果不加雙引號(hào)只是首字母大寫的話,在查詢結(jié)果的時(shí)候會(huì)全部被替換成大寫。
3、如果定義的別名為多個(gè)字符,如果不加雙引號(hào)在語法上會(huì)報(bào)錯(cuò)誤。
4、在使用as為列定義別名的時(shí)候,as關(guān)鍵字是可以省略的。
5、最后也可以通過as關(guān)鍵字定義中文別名,不過為了規(guī)范一般不經(jīng)常使用中文別名。