Oracle學習筆記——1、基本的SQL語句

之前上一家公司數據庫用的是informix數據庫,新公司數據庫用的是Oracle數據庫,所以還是需要重新學習一下,並做個筆記。

sql查詢語句基本語法:

1、別名的使用,別名使用As連接或者省略不寫。

SQL> SELECT EMPNO AS "Employee Number",
  2     ename name,(500+sal)*12 "Annual Salary"
  3  from emp;

結果:

Employee Number NAME       Annual Salary
--------------- ---------- -------------
           7369 SMITH              15600
           7499 ALLEN              25200
           7521 WARD               21000
           7566 JONES              41700
           7654 MARTIN             21000
           7698 BLAKE              40200
           7782 CLARK              35400
           7788 SCOTT              42000
           7839 KING               66000
           7844 TURNER             24000
           7876 ADAMS              19200
注意:當別名沒有被雙引號括起來時,別名的顯示結果爲大寫;如果別名中包含了特殊字符,或者想讓別名原樣顯示,就要使用雙引號把別名括起來。

2、字符串連接運算符 ||

SQL> SELECT ename ||' annual salary is '||(500+sal)*12 "Employee's Salary"
  2  FROM emp;
結果:

Employee's Salary
--------------------------------------------------------------------
SMITH annual salary is 15600
ALLEN annual salary is 25200
WARD annual salary is 21000
JONES annual salary is 41700
MARTIN annual salary is 21000
BLAKE annual salary is 40200
CLARK annual salary is 35400
3、在sql語句中使用算數表達式+,-,*,/

SQL> SELECT empno,ename,(500+sal)*12
  2     FROM EMP;
結果:

     EMPNO ENAME    (500+SAL)*12
---------- -------- ------------
      7369 SMITH           15600
      7499 ALLEN           25200
      7521 WARD            21000
      7566 JONES           41700
      7654 MARTIN          21000
      7698 BLAKE           40200
      7782 CLARK           35400
      7788 SCOTT           42000
      7839 KING            66000
      7844 TURNER          24000
      7876 ADAMS           19200

4、使用DISTINCT查詢是去掉重複的行

SQL> SELECT DISTINCT deptno
  2  FROM emp;
結果:

    DEPTNO
----------
        30
        20
        10
注意:DISTINCT可用於多列,此時的顯示結果爲每一種列組合只顯示一行。如:

SQL> SELECT DISTINCT deptno,job
  2  FROM EMP;
結果:

    DEPTNO JOB
---------- ---------
        20 CLERK
        30 SALESMAN
        20 MANAGER
        30 CLERK
        10 PRESIDENT
        30 MANAGER
        10 CLERK
        10 MANAGER
        20 ANALYST
5、查詢是使用where限制性條件。

SQL> SELECT empno,ename,sal
  2  FROM emp
  3  WHERE SAL>=1500;
結果:

     EMPNO ENAME           SAL
---------- -------- ----------
      7499 ALLEN          1600
      7566 JONES          2975
      7698 BLAKE          2850
      7782 CLARK          2450
      7788 SCOTT          3000
      7839 KING           5000
      7844 TURNER         1500
      7902 FORD           3000
備註:6個常用的比較運算符

>(大於),<(小於),=(等於),<=(小於等於),>=(大於等於),!=或<>(不等於)

6、使用between 下限 and 上限,判斷數字型數據、字符串或者日期型數據在下限和上限之間,包含下限和上限。字符串和日期型數據需要用單引號括起來。

SQL> SELECT empno,ename,sal
  2  FROM emp
  3  WHERE sal BETWEEN 1500 AND 2900;

     EMPNO ENAME           SAL
---------- -------- ----------
      7499 ALLEN          1600
      7698 BLAKE          2850
      7782 CLARK          2450
      7844 TURNER         1500

SQL> SELECT empno,ename,sal,hiredate
  2  FROM emp
  3  WHERE hiredate BETWEEN '01-JAN-81' AND '31-MAY-82';

     EMPNO ENAME           SAL HIREDATE
---------- -------- ---------- ---------------
      7499 ALLEN          1600 20-FEB-81
      7521 WARD           1250 22-FEB-81
      7566 JONES          2975 02-APR-81
      7654 MARTIN         1250 28-SEP-81
      7698 BLAKE          2850 01-MAY-81
      7782 CLARK          2450 09-JUN-81
      7839 KING           5000 17-NOV-81
      7844 TURNER         1500 08-SEP-81
      7900 JAMES           950 03-DEC-81
      7902 FORD           3000 03-DEC-81
      7934 MILLER         1300 23-JAN-82

備註:可以在 用not betbeen ... and ...之間,用來判斷數字型數據、字符串或者日期型數據沒有在下限和上限之間。

    7、like模糊匹配,兩個通配符%,_

%:“%”代表零個或者多個字符

_:"_"代表一個且只能是一個字符

SQL> SELECT empno,ename,sal,job
  2  FROM emp
  3  WHERE job LIKE 'S_L_S%';

     EMPNO ENAME             SAL JOB
---------- ---------- ---------- ---------
      7499 ALLEN            1600 SALESMAN
      7521 WARD             1250 SALESMAN
      7654 MARTIN           1250 SALESMAN
      7844 TURNER           1500 SALESMAN

SQL> SELECT empno,ename,sal,hiredate
  2  FROM emp
  3  WHERE hiredate LIKE '%81';

     EMPNO ENAME             SAL HIREDATE
---------- ---------- ---------- ------------
      7499 ALLEN            1600 20-FEB-81
      7521 WARD             1250 22-FEB-81
      7566 JONES            2975 02-APR-81
      7654 MARTIN           1250 28-SEP-81
      7698 BLAKE            2850 01-MAY-81
      7782 CLARK            2450 09-JUN-81
      7839 KING             5000 17-NOV-81
      7844 TURNER           1500 08-SEP-81
      7900 JAMES             950 03-DEC-81
      7902 FORD             3000 03-DEC-81

    8、使用轉義字符

先新建一個臨時表

SQL> CREATE table dept_temp
  2  AS
  3  SELECT *
  4  FROM dept;
插入一條數據:

SQL> INSERT INTO ddept_temp
  2  VALUES(88,'IT_RESEARCH','BEIJING');
轉移查詢:

SQL> SELECT *
  2  FROM dept_temp
  3  WHERE dname LIKE 'IT\_%' escape '\';

    DEPTNO DNAME          LOC
---------- -------------- -------------
        88 IT_RESEARCH    BEIJING
備註:定義'\'爲轉義符,即'_'字符不是通配符,而是它本來的含義。可以定義其它字符爲轉義字符。

SQL> SELECT *
  2  FROM dept_temp
  3  WHERE dname LIKE 'IT~_%' escape '~';

    DEPTNO DNAME          LOC
---------- -------------- -------------
        88 IT_RESEARCH    BEIJING
























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