從實踐中學習oracle/sql 1-3章學習

mengzhaoliang發表於2008-05-04

1 把當前會話的日期改成 American的日期格式
SQL> select sysdate from dual;

SYSDATE
--------------
04-5月 -08

SQL> alter session
  2  set NLS_DATE_LANGUAGE='AMERICAN';

會話已更改。

SQL> SELECT sysdate from dual;

SYSDATE
------------
04-MAY-08


2 用distinct關鍵字來過濾不同的行
SQL> select distinct deptno from emp;

    DEPTNO
----------
        30
        20
        10


3 在查詢select中的字句where 中的字串是區分大小寫的

SQL> select empno,ename,job from emp
  2  where job='salesman';

未選定行

SQL> select empno,ename,job from emp
  2  where job='SALESMAN';

     EMPNO ENAME      JOB
---------- ---------- ---------
      7499 ALLEN      SALESMAN
      7521 WARD       SALESMAN
      7654 MARTIN     SALESMAN
      7844 TURNER     SALESMAN


4 轉義escape運算子
SQL> select * from dept_temp where loc='beijing';

    DEPTNO DNAME          LOC
---------- -------------- -------------
        88 IT_dept        beijing

SQL> select * from dept_temp
  2  where dname like 'IT\_%' escape '\';

    DEPTNO DNAME          LOC
---------- -------------- -------------
        88 IT_dept        beijing


SQL> select * from dept_temp
  2  where dname like 'IT*_%' escape '*';

    DEPTNO DNAME          LOC
---------- -------------- -------------
        88 IT_dept        beijing

SQL> select * from dept_temp
  2  where dname like 'ITm_%' escape 'm';

    DEPTNO DNAME          LOC
---------- -------------- -------------
        88 IT_dept        beijing

 

5 只列出前三行查詢資料用rownum,order by 排序時要放在最後
SQL> select * from dept_temp where rownum<=3 order by deptno desc ;

    DEPTNO DNAME          LOC
---------- -------------- -------------
        30 SALES          CHICAGO
        20 RESEARCH       DALLAS
        10 ACCOUNTING     NEW YORK


6 sqlplus當前會話預設的螢幕寬為80個字元,更改為100。

SQL> show line
linesize 80
SQL> set line 100;
SQL> show line;
linesize 100

7 把SQL緩衝區的內容存入指定指令碼
SQL> save g:\SelectEmp.sql
已建立 file g:\SelectEmp.sql

執行指令碼
SQL> @g:\SelectEmp.sql
編輯指令碼
SQL> edit g:\SelectEmp.sql
檢視該指令碼語句
SQL> get g:\SelectEmp.sql
  1  select empno,ename,job,sal
  2  from emp
  3  where sal>=1500
  4* order by job,sal desc


8 用spool產生報表
SQL> spool g:\output20080504
SQL> select empno,ename,job,sal
  2  from emp;

     EMPNO ENAME      JOB              SAL
---------- ---------- --------- ----------
      7369 SMITH      CLERK            800
      7499 ALLEN      SALESMAN        1600
      7521 WARD       SALESMAN        1250
      7566 JONES      MANAGER         2975
      7654 MARTIN     SALESMAN        1250
      7698 BLAKE      MANAGER         2850
      7782 CLARK      MANAGER         2450
      7839 KING       PRESIDENT       5000
      7844 TURNER     SALESMAN        1500
      7900 JAMES      CLERK            950
      7902 FORD       ANALYST         3000

     EMPNO ENAME      JOB              SAL
---------- ---------- --------- ----------
      7934 MILLER     CLERK           1300

已選擇12行。

SQL> spool off;

在g盤產生一個output20080504.LST檔案,該檔案儲存查詢的內容.

 


Oracle9i之前的版本日期型別為“DD-MON-YY”,Oracle9i之後的版本日期型別為“DD-MON-RR”

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12778571/viewspace-258800/,如需轉載,請註明出處,否則將追究法律責任。

相關文章