oracle心得1--oracle簡介@基本sql語句@條件查詢@排序資料理論與案例
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
相關文章
- SQL SERVER 條件語句的查詢SQLServer
- AWK if(條件)語句與迴圈簡介
- SQL查詢語句 (Oracle)SQLOracle
- 深入理解mongodb查詢條件語句MongoDB
- 使用sql語句查詢平均值,使用sql語句查詢資料總條數, not in 篩選語句的使用SQL
- ORACLE 資料庫 查詢語句與DML語句Oracle資料庫
- SQL Server-簡單查詢語句SQLServer
- 一條SQL語句查詢塊分解及查詢轉換SQL
- SQL多條件查詢SQL
- oracle、my sql、sql隨機查詢語句OracleSQL隨機
- PL/SQL 條件控制語句SQL
- Oracle基本SQL語句OracleSQL
- 查詢阻塞與被阻塞SQL語句SQL
- SQL查詢語句精華使用簡要(轉)SQL
- sql 查詢條件問題SQL
- oracle查詢語句大全oracle基本命令大全一Oracle
- oracle date資料的條件查詢Oracle
- SQL server 查詢語句SQLServer
- sql查詢語句流程SQL
- SQL mother查詢語句SQL
- Python 入門 :基本條件語句Python
- oracle中的條件語句Oracle
- 一條 SQL 查詢語句是如何執行的?SQL
- 查詢Oracle正在執行的SQL語句OracleSQL
- Linq查詢之多個排序條件排序
- 簡單查詢、插入、更新、刪除SQL語句SQL
- 查詢作為條件的SQLSQL
- PLSQL Language Referenc-PL/SQL控制語句-條件選擇語句-簡單CASESQL
- SGA區查詢的基本語句
- 條件語句
- 一句簡單的SQL查詢語句的背後...SQL
- oracle查詢語句大全Oracle
- SQL Server阻塞查詢語句SQLServer
- SQL查詢語句使用 (轉)SQL
- sql 查詢經典語句SQL
- Oracle經典sql語句總結@sql-plus重點函式串講與sql語句案例@中文排序詳講).docOracleSQL函式排序
- Oracle中SQL語句執行效率的查詢與解決 (3)OracleSQL
- Oracle中SQL語句執行效率的查詢與解決 (2)OracleSQL