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_CLERK ST_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
?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
