1. Oracle 簡介
Oracle是殷墟出土的甲骨文(oracle bone inscriptions)的英文翻譯的第一個單詞。Oracle公司是全球最大的資訊管理軟體及服務供應商,成立於1977年,總部位於美國加州 Redwood shore;Oracle公司因其複雜的關聯式資料庫產品而聞名。Oracle的關聯式資料庫是世界第一個支援SQL語言的資料庫
2. Oracle 資料庫和 Oracle 執行個體
Oracle 伺服器由兩大部分組成, Oracle 資料庫和 Oracle 執行個體。
Oracle 資料庫: 位於硬碟上實際存放資料的檔案, 這些檔案組織在一起, 成為一個邏輯整體, 即為 Oracle 資料庫. 因此在 Oracle 看來,
“資料庫” 是指硬碟上檔案的邏輯集合, 必須要與記憶體裡執行個體合作, 才能對外提供資料管理服務.
Oracle 執行個體: 位於實體記憶體裡的資料結構. 它由一個共用的記憶體池和多個後台進程所組成, 共用的記憶體池可以被所有進程訪問. 使用者如果要存取資料庫(也就是硬碟上的檔案)
裡的資料, 必須通過執行個體才能實現, 不能直接讀取硬碟上的檔案.
區別: 執行個體可以操作資料庫; 在任何時刻一個執行個體只能與一個資料庫關聯; 大多數情況下, 一個資料庫上只有一個執行個體對其進行操作.
3. 注意
SQL 語言大小寫不敏感;但where或having條件引號中的單詞大小寫敏感;SQL 可以寫在一行或者多行;關鍵字不能被縮寫也不能分行;各子句一般要分行寫。;使用縮排提高語句的可讀性。
乘除的優先順序高於加減;同一優先順序運算子從左向右執行。括弧內的運算先執行; 括弧決定一切!
空值是無效的,未指定的,未知的或不可預知的值;空值不是空格或者0
4. 案例知識點分析
列的別名:
重新命名一個列,便於計算。緊跟列名,也可以在列名和別名之間加入關鍵字‘AS’,別名使用雙引號,以便在別名中包含空格或特殊的字元並區分大小寫。
串連符:
把列與列,列與字元串連在一起。用 ‘||’表示。可以用來‘合成’列。
例子:
select deptno||dname from dept;
DEPTNO||DNAME
------------------------------------------------------
10ACCOUNTING
20RESEARCH
30SALES
40OPERATIONS
字串和日期:
字串可以是 SELECT 列表中的一個字元,數字,日期。日期和字元只能在單引號中出現。每當返回一行時,字串被輸出一次。字元和日期要包含在單引號中。
字元大小寫敏感,日期格式敏感。預設的日期格式是 DD-MON-RR。
行的去重複:
預設情況下,查詢會返回全部行,包括重複行。在 SELECT 子句中使用關鍵字 ‘DISTINCT’ 重複資料刪除行。
例子:select distinct(job) from emp;
5. SQL 和 SQL*Plus
使用SQL*Plus可以:
描述表結構;編輯 SQL 陳述式;執行 SQL語句。 將 SQL 儲存在檔案中並將SQL語句執行結果儲存在檔案中。在儲存的檔案中執行語句。將文字檔裝入 SQL*Plus編輯視窗。
6其它比較運算
使用 LIKE 運算選擇類似的值;
選擇條件可以包含字元或數字:% 代表零個或多個字元(任意個字元);_ 代表一個字元;‘%’和‘-’可以同時使用;可以使用 ESCAPE 標識符 選擇‘%’和 ‘_’ 符號;迴避特殊符號的:使用轉義符。例如:將[%]轉為[\%]、[_]轉為[\_],然後再加上[ESCAPE ‘\’] 即可;使用 IS (NOT) NULL 判斷空值。
例子:
select * from emp where sal between 1000 and 2000; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ----- -------------- ----- ------ ------ 7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30 7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30 7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30 7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30 7876 ADAMS CLERK 7788 23-5月 -87 1100 20 7934 MILLER CLERK 7782 23-1月 -82 1300 10 select * from emp where sal in(1250,1600);EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ----- -------------- ----- ------ ------ 7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30 7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30 7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30 select * from emp where comm is null; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ----- -------------- ----- ------ ------ 7369 SMITH CLERK 7902 17-12月-80 800 20 7566 JONES MANAGER 7839 02-4月 -81 2975 20 7698 BLAKE MANAGER 7839 01-5月 -81 2850 30 select * from emp where comm is not null; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ----- -------------- ----- ------ ------ 7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30 7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30 select * from emp where ename like 'A%';EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ----- -------------- ----- ------ ------ 7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30 7876 ADAMS CLERK 7788 23-5月 -87 1100 20 select * from emp where ename like '_L%';EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ----- -------------- ----- ------ ------ 7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30 7698 BLAKE MANAGER 7839 01-5月 -81 2850 30 7782 CLARK MANAGER 7839 09-6月 -81 2450 10 select job_id from jobs where job_id like 'ST\_%' escape '\';JOB_ID----------ST_CLERKST_MAN
7. 優先順序
可以使用括弧改變優先順序順序
8. ORDER BY子句
使用 ORDER BY 子句排序
ASC(ascend): 升序
DESC(descend): 降序
ORDER BY 子句在SELECT語句的結尾。
可以使用不在SELECT 列表中的列排序
例子:
select empno,d.deptno,ename,dname,sal from emp e,dept d where e.deptno=d.deptno order by sal asc,d.deptno desc; EMPNO DEPTNO ENAME DNAME SAL ---------- ------ ---------- -------------- ----- 7369 20 SMITH RESEARCH 800 7900 30 JAMES SALES 950 7876 20 ADAMS RESEARCH 1100 7521 30 WARD SALES 1250 7654 30 MARTIN SALES 1250 7934 10 MILLER ACCOUNTING 1300 7844 30 TURNER SALES 1500 7499 30 ALLEN SALES 1600 7782 10 CLARK ACCOUNTING 2450 7698 30 BLAKE SALES 2850 7566 20 JONES RESEARCH 2975 EMPNO DEPTNO ENAME DNAME SAL ---------- ------ ---------- -------------- ----- 7788 20 SCOTT RESEARCH 3000 7902 20 FORD RESEARCH 3000 7839 10 KING ACCOUNTING 5000
轉載自http://blog.csdn.net/tianyazaiheruan/article/details/8759805