Oracle基本語法

2021-09-08 02:23:04 字數 3542 閱讀 9190

1.日期顯示問題依次執行以下命令:

(1)alter session set nls_date_language='american;

(2)col hiredate for a15

(3)col ename for a8

2.列的別名:

在列名和別名別名之間放上as或空格就可以了。

當別名沒有被雙引號括起來時,其顯示結果為大寫。如果別名中包含了特殊字元,或想讓別名原樣顯示,你就要使用雙引號把別名括起來。

select empno as "employee number",ename name,(sal+500)*12 "annual salary"

from emp;

3.連線字條串:

文字字串是包含在select子句中的字元、數字或表示式,而不是任何的列名或列的別名。如果文字字元是日期型和字元型,就必須將它們用單引號括起來。每個字串在每行輸出結果中都輸出一次。

連線運算子由兩個豎線(||)表示,它用於把乙個或多個列或字串連線在一起。

select ename||' 年薪為: '||(sal+500)*12 "員工的年薪"

from emp;

4.distinct

select distinct deptno

from emp;

當查詢比較大的表時應盡可能的避免使用distinct,因為oracle系統是通過排序的方式來完成distinct這一功能的,所以會造成oracle系統的效率降低。通常可以使用不同的查詢語句來完成同樣的工作。如:

select deptno

from dept;

5.比較運算子(operator)

條件格式為:

表示式 operator 表示式

oracle 提供了》(大於),>=(大於等於),<(小於),<=(小於等於),=(等於),<>或!=6(不等於)6個常用的比較運算子。

此外,還提供了between and,in和like 3個比較運算子。

sql> select empno,ename,sal

2  from emp

3  where sal between 1500 and 2900;

between運算子用於測試某些值是否在指定的數值範圍之內。在between和and之間的值稱為下限,and之後的值稱為上限。顯示結果包括下限和上限的值。該運算子不但可用於數字型資料,而且還可以用於字元型和日期型資料,但這兩種型別的資料必須用單引號括起來。可以在between之前加上not,用於測試某些值是否在between和and指定的數值範圍之內。如:

sql> select empno,ename,sal,hiredate

2  from emp

3  where hiredate not between '01-jan-81' and '31-may-82';

in用來測試某些值是否在列表**現。也可以在in之前加上否定詞not。not in用來表示測試的某些值是否不在列表**現。

sql> select empno,ename,sal,job

2  from emp

3  where job not in ('analyst','president');

可以使用like運算子進行萬用字元查詢。like運算子可以使用以下兩個萬用字元「%」和「-」。其中:

「%」代表0個或多個字元。

「-」代表乙個且只能是乙個字元。

sql> select empno,ename,sal,job

2  from emp

3  where job like 's_l_s%';

6.轉義操作符:

要查詢的字條串中含有「-」或「%」,可以使用轉義(escape)關鍵字實現查詢。

sql> create table dept_temp

2  as

3  select *

4  from dept;

sql> insert into dept_temp

2  values(88,'it_research','beijing');

sql> select *

2  from dept_temp

3  where dname like 'it\_%' escape '\';

定義「\」為轉義符,即在「\」之後 的「-」字元已不是萬用字元了,而是它本來的含義,即下劃線。沒有必要一定使用「\」字元作為轉義符,完全可以使用任何你字元作為轉義字元。但最好不要將在sql和sql*plus中有特殊含義的字元定義為轉義字元,否則使你的wql語句變得很難理解。

7.order by

利用order by子句對查詢的結果進行排序。asc(ascending order)為公升序排序(預設),因此,asc在實際的sql語句中很少見到。字元型資料的順序是按ascii碼的次序。desc(descending order)為降序排序。

如果在查詢語句中用使用order by子句,則查詢結果的次序是不確定的,即你寫了兩個完全相同的查詢語句,其執行結果的次序可能是不一樣的。

如果使用了order by子句,則該子句一定是sql語句的最後乙個子句。

sql> select empno,ename,sal

2  from emp

3  where sal>=1500

4  order by sal desc;

8.在操作表之前如果想知道表的結構,可以使用desc【ribe】命令來實現。

sql> desc emp

9.命令set line[size],其中n為自然數,80為預設值。該命令是將顯示屏的顯示輸出置為n個字元寬,80個字元為此命令的預設顯示寬度。

sql> set line 100

10.l命令和n next命令,以及「/」命令:

oracle的sql*plus提供了若干條命令來幫助我們來發現錯誤和改正錯誤,其中最常用的這類命令之一就是l(list)命令。該命令用來顯示sql緩衝區中的內容。

sql> l

此時會顯示你剛剛輸入的sql語句,前面的數字表示行號,*表示當前行。

之後可以使用n text命令來修改出錯的部分,其中,n為在sql緩衝區中的sql語句的行號,text為替代出錯部分的sql語句。

sql> 2 from emp

之後再使用l命令來顯示sql緩衝區中的內容,以檢查你的修改是否正確。

sql> l

「/」(run)用來重新執行剛剛修改過的sql語句。

sql> /    或   sql> r

11.n(設定當前行)命令和a【ppend】(附加)命令:

sql> select ename

2  from emp;

使用l命令來顯示sql緩衝中的內容。

sql> l

2後面的*表示第2行為當前行。為了在ename之後新增「,job,sal」,你應該先把第一行設定為當前行。

sql> 1

再使用a命令(附加命令)把「,job,sal」新增到select ename之後。

sql> a,job,sal

使用l命令來檢查修改是否正確。

sql> l

「/」(run)用來重新執行剛剛修改過的sql語句。

sql> /    或   sql> r

Oracle基本語法

1 window下啟動oracle服務 net start oracle服務名 net start oracle的 名 2 建立使用者 create user 建立使用者的名稱 identified by 建立使用者的密碼 3 修改使用者口令 alter user 需要修改使用者 identifie...

Oracle基本語法

1 表 create table test names varchar2 12 dates date,num int,dou double 2 檢視 create or replace view vi test as select from test 3 同義詞 create or replace ...

Oracle基本語法

檢視表結構 descride 修改表型別 alter table tablename modify.alter table emp modify empname char 55 修改表字段 alter table tablename add.alter table emp add enote1 ch...