oracle9i學習心得之一 基本SQL語句

1.SQL語句包括:


  1) 數據查詢:select
  2) DML(data manipulation language):insert、update、delete、merge
  3) DDL(data definition language):create、alter、drop、rename、truncate
  4) 事務控制:commit、rollback、savepoint
  5) DCL(數據控制語言):grant、revoke

 

2.基本SELECT語句


  SELECT * | {[DISTINCT] column [alias],...}
  FROM   table;

 

例:SELECT deptno,loc
          FROM   dept;
  
3.顯示錶的結構


  DESC[RIBE]  tablename

 

4.表說明


1)僱員信息表(emp)

  名稱     是否爲空?     類型 
  EMPNO    NOT NULL    NUMBER(4) 
  ENAME                VARCHAR2(10) 
  JOB                  VARCHAR2(9) 
  MGR                  NUMBER(4) 
  HIREDATE             DATE 
  SAL                  NUMBER(7,2) 
  COMM                 NUMBER(7,2) 
  DEPTNO               NUMBER(2)
 
2)部門表(dept)

  名稱     是否爲空?     類型 
  DEPTNO   NOT NULL    NUMBER(2) 
  DNAME                VARCHAR2(14) 
  LOC                  VARCHAR2(13)

 

3) 薪水等級表(salgrade)
   名稱     是否爲空?    類型 
   GRADE                NUMBER 
   LOSAL                NUMBER 
   HISAL                NUMBER 

 

5.SELECT語句練習

例1:
        SELECT *  FROM dept;


結果:
        DEPTNO     DNAME                    LOC 
          10              ACCOUNTING       NEW YORK 
          20              RESEARCH             DALLAS 
          30              SALES                     CHICAGO 
          40              OPERATIONS        BOSTON 

          ...
  
例2:
        SELECT deptno,loc
        FROM   dept;


結果:
        DEPTNO      LOC 
          10      NEW YORK 
          20      DALLAS 
          30      CHICAGO 
          40      BOSTON 

          ...

 

6.執行SQL語句的工具:


  1)SQL*Plus工具
  2)iSQL*Plus工具
  3)PL/SQL Developer工具

 

7.算術表達式


  使用+,-,*,/可創建一個數據型或日期型數據的表達式


例1:

       SELECT ename,sal,sal+300
       FROM   emp;
結果:
        ENAME      SAL      SAL+300 
        SMITH      2000     2300 
        ALLEN      1600     1900 
        WARD       1250     1550 
        JONES      2975     3275 
        ... 
例2:
       SELECT ename,sal,12*sal+100
       FROM   emp;
結果:
       ENAME     SAL    12*SAL+100 
       SMITH     2000     24100 
       ALLEN     1600     19300 
       WARD      1250     15100 
       JONES     2975     35800 
       ...
例3:
       SELECT ename,sal,12*(sal+100)
       FROM   emp
;
結果:
       ENAME    SAL    12*(SAL+100) 
       SMITH   2000       25200 
       ALLEN   1600       20400 
       WARD    1250       16200 
       JONES   2975       36900 
       ...

8.空值NULL


  -不同於零或者空格
  -是在一種無效的、未賦值、未知的或不可用的值
 

例:
       SELECT ename,job,sal,comm
       FROM   emp;
結果:
       ENAME     JOB       SAL      COMM    
       MARTIN  SALESMAN    1250     1400 
       BLAKE   MANAGER     2850    
       CLARK   MANAGER     2450         
       TURNER  SALESMAN    1500      0 
       ADAMS   CLERK       1100

       ...
  
注:任何包含空值的算術表達式運算後的結果都爲空值NULL

例:
     SELECT ename,12*sal,12*sal+comm
     FROM   emp
     WHERE  ename='BLAKE';
結果:
        ENAME  12*SAL  12*SAL+COMM 
        BLAKE   34200    
 
9.列的別名:


  1)緊跟列名或在列名和別名之間加入可選關鍵字AS
  2)如果別名包含空格或特殊關鍵字符或區分大小寫則需要使用雙引號

例1:
     SELECT ename AS name,sal salary
     FROM   emp;
結果:
        NAME    SALARY 
        SMITH    2000 
        ...

例2:
       SELECT ename "Name",sal*12 "Annual Salary"
       FROM  emp;
結果:
        Name      Annual Salary 
        SMITH         24000 
        ALLEN         19200

 


10.連接操作符


  1)用於列與列、列和字符之間的連接
  2)形式上是連個豎槓:||
  3)用於創建字符表達式的結果列
  
例:
     SELECT ename||job AS "Employees"
     FROM   emp;
結果:
         Employees 
        SMITHCLERK 
        ALLENSALESMAN 
        WARDSALESMAN 
        JONESMANAGER 
        ...

  4)原義字符串:
    -是包含在SELECT列表中的字符、數字或日期
    -日期和字符字面值必須用單引號引起來
    -每個字符串都會在每個數據行輸出中出現

 

例:
      SELECT ename||' is a '||job AS "Employees"
      FROM   emp;
結果:
               Employees 
        SMITH is a CLERK 
        ALLEN is a SALESMAN 
        WARD is a SALESMAN 
        JONES is a MANAGER 
        ...
 

11. 消除重複行


   在SELECT子句中使用關鍵字DISTINCT可消除重複行
 
   例:

           SELECT DISTINCT deptno
           FROM   emp;

 

 

 

練習題


1.顯示emp表結構

 

  DESC emp

 

2.顯示emp表中所有列的數據

 

  SELECT * FROM emp;

 

3.顯示emp表僱員編號、僱員名、薪水信息

 

  SEELCT empno,ename,sal
  FROM   emp;

 

4.顯示emp表中不重複的工作類別

 

  SELECT DISTINCT job
  FROM   emp;
 
5.顯示emp表中empno、sal*12、job,它們對應的別名爲編號、年薪、工作類別
 
  SELECT empno "編號",sal*12 "年薪",job "工作類別"
  FROM   emp;

 

6.顯示emp表的ename和sal列,要求顯示的格式爲:XXXX僱員的薪水爲XXX。

 

  SELECT ename ||'僱員的薪水爲 '||sal
  FROM   emp;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章