OCP培訓課程:sql簡單介紹
最新學訊:近期OCP認證正在報名中,因考試人員較多請盡快報名獲取最近考試時間,報名費用請聯(lián)系在線老師,甲骨文官方認證,報名從速!
我要咨詢ocp培訓課程:sql簡單介紹 主要是介紹Oracle的一些功能和關系數據庫的原理,重點說一下這門課程例子中需要用得到表以及使用sqlplus和pl/sql developer連接到數據庫。
1、關系數據庫的術語
參考下面這個圖,介紹關系數據庫的術語

第一個標簽表示一行,也叫一條記錄。
第二個標簽表示一列,也叫表的字段或者屬性,同時這一列也是這個表的主鍵,主鍵的值用于唯一標識表中的某一條記錄,主鍵可由多列組成,但是一個表里面只能有一個主鍵。可以看到上圖中,使用不重復的人員編號來唯一標識某一個人。
第三個標簽表示一個數字列。
第四個標簽表示一個外鍵列,外鍵用于表和表的關聯(lián),比如人員表和部門表,我們要從人員表里面取出人員姓名、部門編號及對應的部門名字,但人員表里面只有部門編號,要去查部門名字就要從部門表里面去查,部門表里面有部門編號和部門名字,這個時候部門表的部門編號和人員表的部門編號形成一種主外鍵,人員表的部門編號就是一個外鍵,而部門表的部門編號是一個主鍵。
第五個標簽表示一個域值(field),就是行和列交叉的地方,只能有一個值。
第六個標簽表示這個值為空(null)。
2、課程中用到的表
047這門課程例子用到的表主要是HR模式下的表,位于example表空間,包括以下幾張表:
(1)人員表(employees),是公司人員的基本信息,共107條記錄,包含的字段如下:
SQL> desc employees;
Name
---------------------------
EMPLOYEE_ID 人員編號(主鍵)
FIRST_NAME 姓
LAST_NAME 名
EMAIL 郵箱
PHONE_NUMBER 電話
HIRE_DATE 入職時間
JOB_ID 職位編號(外鍵,參考職位表jobs的主鍵)
SALARY 薪水
COMMISSION_PCT 提成比例
MANAGER_ID 部門主管編號(外鍵,參考人員表自己的主鍵)
DEPARTMENT_ID 部門編號(外鍵,參考部門表departments的主鍵)
(2)部門表(departments),是公司部門的基本信息,共27條記錄,包含的字段如下:
SQL> desc departments;
Name
-----------------------------
DEPARTMENT_ID 部門編號(主鍵)
DEPARTMENT_NAME 部門名字
MANAGER_ID 部門主管編號(外鍵,參考人員表employees的主鍵)
LOCATION_ID 位置編號(外鍵,參考位置表locations的主鍵)
(3)職位表(jobs),是公司職位的基本信息,共19條記錄,包含的字段如下:
SQL> desc jobs;
Name
-----------------------------
JOB_ID 職位編號(主鍵)
JOB_TITLE 職位名稱
MIN_SALARY 最低薪水
MAX_SALARY 最高薪水
(4)職位歷史表(job_history),是員工職位歷史信息,共10條記錄,包含的字段如下:
SQL> desc job_history
Name
------------------------------
EMPLOYEE_ID 人員編號(復合主鍵,外鍵,參考人員表employees的主鍵)
START_DATE 開始日期(復合主鍵)
END_DATE 結束日期
JOB_ID 職位編號(外鍵,參考職位表jobs的主鍵)
DEPARTMENT_ID 部門編號(外鍵,參考部門表departments的主鍵)
(5)位置表(locations),是部門所在的位置信息,共23條記錄,包含的字段如下:
SQL> desc locations
Name
-------------------------------
LOCATION_ID 位置編號(主鍵)
STREET_ADDRESS 街道地址
POSTAL_CODE 郵編
CITY 城市名字
STATE_PROVINCE 省份
COUNTRY_ID 國家編號(外鍵,參考國家表countries的主鍵)
(6)國家表(countries),是部門位置所在的國家信息,共25條記錄,包含的字段如下:
SQL> desc countries
Name
--------------------------------
COUNTRY_ID 國家編號(主鍵)
COUNTRY_NAME 國家名稱
REGION_ID 地區(qū)編號(外鍵,參考地區(qū)表regions的主鍵)
(7)地區(qū)表(regions),是國家所在的地區(qū)信息,共4條記錄,包含的字段如下:
SQL> desc regions
Name
---------------------------------
REGION_ID 地區(qū)編號(主鍵)
REGION_NAME 地區(qū)名稱
3、sqlplus
Oracle的sqlplus是與oracle進行交互的客戶端工具,借助sqlplus可以查看、修改數據庫記錄。在sqlplus中,可以運行sqlplus命令與sql語句。
(1)SQLPLUS命令分類:

(2)登錄SQLPLUS:
(3)描述表結構:
desc[ribe] tablename
tablename:可以是表,視圖或者同義詞
(4)格式化輸出:
使用set linesize設置sqlplus輸出的最大行寬
SQL> set linesize 100
設置輸出的最大行寬為100
使用col(column)修改字段顯示的長度
SQL> col name for a20
將name字段顯示的長度設置為20
(5)SQLPLUS的編輯命令:


SQL> select department_id
2 from departments where department_id=100;
DEPARTMENT_ID
-------------
100
使用list列出剛才執(zhí)行過的命令
SQL> list
1 select department_id
2* from departments where department_id=100
使用1(數字1)列出剛才執(zhí)行語句的第一行
SQL> 1
1* select department_id
使用a(append),在剛才這一行語句的最后增加后面的內容
SQL> a ,department_name
1* select department_id,department_name
SQL> list
1 select department_id,department_name
2* from departments where department_id=100
使用r(run)運行修改后的內容
SQL> r
1 select department_id,department_name
2* from departments where department_id=100
DEPARTMENT_ID DEPARTMENT_NAME
------------- ------------------------------
100 Finance
使用l(list)列出剛才執(zhí)行過的命令
SQL> l
1 select department_id,department_name
2* from departments where department_id=100
使用1(數字1)列出剛才執(zhí)行語句的第一行
SQL> 1
1* select department_id,department_name
使用c(change)進行替換
SQL> c/department_name/manager_id
1* select department_id,manager_id
使用l(list)列出剛才執(zhí)行過的命令
SQL> l
1 select department_id,manager_id
2* from departments where department_id=100
使用r(run)運行替換后的內容
SQL> r
1 select department_id,manager_id
2* from departments where department_id=100
DEPARTMENT_ID MANAGER_ID
------------- ----------
100 108
(6)SQLPULS文件命令:

SQL> l
1 select department_id,manager_id
2* from departments where department_id=100
使用save保存剛才執(zhí)行的語句到sql腳本文件
SQL> save my_query
Created file my_query.sql
使用start執(zhí)行sql腳本文件
SQL> start my_query
DEPARTMENT_ID MANAGER_ID
------------- ----------
100 108
(7)SERVEROUTPUT命令:
控制在sqlplus里面是否顯示存儲過程或者PL/SQL塊的輸出

(8)SPOOL命令:
將查詢結果保存到文件


SQL> spool sql.txt
SQL> select * from departments where department_id=10;
DEPARTMENT_ID DEPARTMENT_NAME MANAGER_ID LOCATION_ID
------------- ------------------------------ ---------- -----------
10 Administration 200 1700
SQL> spool off
[oracle@oracletest ~]$ cat sql.txt
SQL> select * from departments where department_id=10;
DEPARTMENT_ID DEPARTMENT_NAME MANAGER_ID LOCATION_ID
------------- ------------------------------ ---------- -----------
10 Administration 200 1700
SQL> spool off
(9)AUTOTRACE命令:
成功執(zhí)行select及DML語句后產生的報告,包括執(zhí)行計劃及統(tǒng)計信息

SQL> set autotrace on
SQL> select * from hr.departments where department_id=10;
DEPARTMENT_ID DEPARTMENT_NAME MANAGER_ID LOCATION_ID
------------- ------------------------------ ---------- -----------
10 Administration 200 1700
Execution Plan
----------------------------------------------------------
Plan hash value: 4024094692
-------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 21 | 1 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| DEPARTMENTS | 1 | 21 | 1 (0)| 00:00:01 |
|* 2 | INDEX UNIQUE SCAN | DEPT_ID_PK | 1 | | 0 (0)| 00:00:01 |
-------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("DEPARTMENT_ID"=10)
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
2 consistent gets
0 physical reads
0 redo size
642 bytes sent via SQL*Net to client
508 bytes received via SQL*Net from client
1 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
4、PL/SQL Developer
(1)連接到數據庫

其中:
Username為用戶,Password為密碼,Database后需要輸入數據庫服務器所在的IP地址,端口及服務名,或者輸入服務命名,Connect as后面選擇連接身份。
(2)創(chuàng)建聯(lián)機文檔
選擇“Help”“Oracle HTML Manuals”

點擊“Setup”

點擊“Download”,進入聯(lián)機文檔下載頁面

注冊Oracle用戶,點擊“Oracle 11.2 Library”下載

下載完成后,選擇所在路徑,點擊“Build”

完成后,就可以看到聯(lián)機文檔里面的書了,選上就可以進行搜索了,也可以直接雙擊查看PDF版本的。

5、SQL
SQL(Structured Query Language)是一門 ANSI 的標準計算機語言,用來訪問和操作數據庫系統(tǒng)。

我們用到的SQL語句包含4個類型:
第一個是DML語句,數據操縱語言,上圖把查詢也放到這兒來了,查詢不屬于DML語句,DML包括增刪改,merge是增刪改的和。
第二個是DDL語句,對數據結構進行修改的語言,數據定義語言,包含創(chuàng)建,修改,刪除,重命名,截斷,以及加注釋。
第三個是DCL語句,授權和取消授權。
第四個是事務控制,用于保證數據的完整性,提交,回滾,回到保存點。
實際工作中,就是通過SQLPLUS或者PL/SQL Developer連接到數據庫,使用SQL語句查詢及操縱數據。
- 陳衛(wèi)星-老師CUUG金牌講師
- 陳老師 CUUG金牌講師 精通Oracle管理、備份恢復、性能優(yōu)化 11年Ora...[詳細了解老師]
