Oracle學習之路(一):oracle簡介+基本sql語句+條件查詢+排序資料理論與案例

來源:互聯網
上載者:User

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.