建立及管理表格

在 Oracle 資料庫中,表格是資料儲存體的基本單位。表格保存所有使用者可存取的資料。每個表格都包含代表個別資料記錄的資料列。資料列是由代表記錄欄位的資料欄所構成。

注意:若要執行本文件中的教學課程,您必須以 SQL Developer 的使用者 HR 身分連線到 Oracle Database。

另請參閱:

關於 SQL 資料類型

建立表格後,您必須指定每個欄的 SQL 資料類型,以決定欄可包含的值。

例如,類型為 DATE 的資料欄可包含值 '01-MAY-05',但不能包含數值 2 或字元值 'shoe'。SQL 資料類型分為兩個種類:內建與使用者定義。(PL/SQL 提供額外的資料類型 - 請參閱關於 PL/SQL 資料類型 )。)

另請參閱:

建立表格

若要建立表格,請使用 SQL Developer 工具「建立表格」或 DDL 敘述句 CREATE TABLE。

本節顯示如何使用這兩種方式來建立這些表格,這些表格包含員工評估的相關資料:

這些表格會顯示在本文件的許多教學課程和範例中。

教學課程:使用建立表格工具建立表格

本教學課程顯示如何使用 SQL Developer 工具「建立表格」來建立 PERFORMANCE_PARTS 表格。

使用「建立表格」工具建立 PERFORMANCE_PARTS 表格:

  1. 在「連線」框架中,展開 hr_conn

  2. 在綱要物件類型清單中,在表格上按一下滑鼠右鍵。

  3. 在選項清單中,按一下新表格

    便會開啟「建立表格」視窗,內含新表格的預設值,此表格僅有一個資料列。

  4. 若為「綱要」,請接受預設值 HR。

  5. 若為「名稱」,請輸入 PERFORMANCE_PARTS

  6. 在預設資料列中:

    • 若為主索引鍵 (主索引鍵),請接受預設選項,取消選取。

    • 在「資料欄名稱」中輸入 PERFORMANCE_ID

    • 對於「類型」,請接受預設值 VARCHAR2。

    • 若為「大小」,請輸入 2

    • 若為「非空值」,請接受預設選項,取消選取。

  7. 按一下新增資料欄

  8. 在「資料欄名稱」中輸入 NAME

  9. 對於「類型」,請接受預設值 VARCHAR2。

  10. 若為「大小」,請輸入 80

  11. 按一下新增資料欄

  12. 在「資料欄名稱」中輸入 WEIGHT

  13. 對於「類型」,請從功能表中選取 NUMBER

  14. 然後按一下確定

    表格 PERFORMANCE_PARTS 會建立。其名稱會顯示在「連線」框架的「表格」底下。

    若要查看建立此表格的 CREATE TABLE 敘述句,請選取 PERFORMANCE_PARTS,然後按一下 SQL 頁籤。

另請參閱:Oracle SQL Developer User's Guide,瞭解有關使用 SQL Developer 建立表格的詳細資訊

使用 CREATE TABLE 敘述句建立表格

本節顯示如何使用 CREATE TABLE 陳述式來建立 EVALUATIONS 與 SCORES 表格。

範例 4-1 中的 CREATE TABLE 敘述句會建立 EVALUATIONS 表格。

範例 4-2 中的 CREATE TABLE 敘述句會建立 SCORES 表格。

在 SQL Developer 的「連線」框架中,如果您展開「表格」,就可以看到 EVALUATIONS 和 SCORES 表格。

範例 4-1 使用 CREATE TABLE 建立 EVALUATIONS 表

CREATE TABLE EVALUATIONS (
  EVALUATION_ID    NUMBER(8,0),
  EMPLOYEE_ID      NUMBER(6,0),
  EVALUATION_DATE  DATE,
  JOB_ID           VARCHAR2(10),
  MANAGER_ID       NUMBER(6,0),
  DEPARTMENT_ID    NUMBER(4,0),
  TOTAL_SCORE      NUMBER(3,0)
);

結果:

Table created.

範例 4-2 使用 CREATE TABLE 建立 SCORES 表格

CREATE TABLE SCORES (
  EVALUATION_ID   NUMBER(8,0),
  PERFORMANCE_ID  VARCHAR2(2),
  SCORE           NUMBER(1,0)
);

結果:

Table created.

另請參閱:Oracle Database SQL Language Reference,瞭解 CREATE TABLE 敘述句的相關資訊

確定表格的資料完整性

若要確保表格中的資料符合應用程式模型的商業規則,您可以使用限制條件、應用程式邏輯或兩者。

秘訣:在可能的時候,使用限制而非應用程式邏輯。Oracle 資料庫檢查所有資料是否遵照限制條件的速度要比應用程式邏輯快得多。

另請參閱:

關於限制

限制條件:限制資料欄可以擁有的值。嘗試將資料變更成違反限制條件時,將會導致錯誤並倒回變更。嘗試在已填入表格中新增限制條件時,如果現有資料違反限制條件,這將會導致錯誤。

可以啟用並停用限制條件。依照預設,它在建立時的狀態為啟用。

下列為可用的限制型態:

另請參閱:

教學課程:新增限制條件至現有表格

本教學課程示範如何使用 SQL Developer 工具和 ALTER TABLE 敘述句新增限制條件至現有的表格。

若要將限制條件新增至現有表格,請使用 SQL Developer 工具或 DDL 敘述句 ALTER TABLE。此主題顯示如何使用這兩種方法,將限制新增至建立表格中建立的表格。

此教學課程擁有多個程序。第一個程序使用「編輯表格」工具,將「非空值」限制條件新增至 PERFORMANCE_PARTS 表格的 NAMES 資料欄。剩餘程序顯示如何使用其他工具來新增限制條件;不過,您可以使用「編輯表格」工具來新增相同的限制條件。

注意:

在教學課程的任何步驟之後,您可以完成下列步驟來檢視表格所具備的限制條件:

  1. 在「連線」框架中,選取表格的名稱。

  2. 在右側框架中,按一下限制條件頁籤。

如需檢視表格屬性與資料的詳細資訊,請參閱「教學課程:使用 SQL Developer 檢視 EMPLOYEES 表格屬性與資料」。

使用「編輯表格」工具新增「非空值」限制條件的步驟:

  1. 在「連線」框架中,展開 hr_conn

  2. 在綱要物件類型的清單中,展開表格

  3. 在表格清單中,以滑鼠右鍵按一下 PERFORMANCE_PARTS

  4. 在選項清單中,按一下編輯

  5. 在「編輯表格」視窗中,按一下資料欄 NAME

  6. 選取非空值特性。

  7. 然後按一下確定

    「非空值」限制會新增至 PERFORMANCE_PARTS 表格的 NAME 資料欄。

下列程序使用 ALTER TABLE 陳述式,將「非空值」限制條件新增至 PERFORMANCE_PARTS 表格的 WEIGHT 資料欄。

使用 ALTER TABLE 敘述句新增「非空值」限制條件的步驟:

  1. 如果有頁籤為 hr_conn 的窗格,請選取該窗格。否則,請按一下 SQL 工作表圖示,如在 SQL Developer 中執行查詢所示。

  2. 在「工作表」窗格中輸入此陳述式:

     ALTER TABLE PERFORMANCE_PARTS
     MODIFY WEIGHT NOT NULL;
    
  3. 按一下執行陳述式圖示。

    此陳述式會執行,將「非空值」限制條件新增至 PERFORMANCE_PARTS 表格的 WEIGHT 資料欄。

下列程序使用「新增唯一」工具,將「唯一」限制條件新增至 SCORES 表格。

使用「新增唯一」工具新增唯一限制條件的步驟:

  1. 在「連線」框架中,展開 hr_conn

  2. 在綱要物件類型的清單中,展開表格

  3. 在表格清單中,以滑鼠右鍵按一下 SCORES

  4. 在選項清單中,選取限制條件

  5. 在選項清單中,按一下新增唯一項目

  6. 在「新增唯一項目」視窗中:

    1. 在「限制條件名稱」輸入 SCORES_EVAL_PERF_UNIQUE

    2. 對於「資料欄 1」,從功能表中選取 EVALUATION_ID

    3. 若為資料欄 2,請從功能表選取 PERFORMANCE_ID

    4. 按一下套用

  7. 在「確認」視窗中,按一下確定

    名稱為 SCORES_EVAL_PERF_UNIQUE 的唯一限制會新增至 SCORES 表格。

下列程序使用「新增主索引鍵」工具,將「主索引鍵」限制條件新增至 PERFORMANCE_PARTS 表格的 PERFORMANCE_ID 資料欄。

使用「新增主索引鍵」工具新增主索引鍵限制條件的步驟:

  1. 在「連線」框架中,展開 hr_conn

  2. 在綱要物件類型的清單中,展開表格

  3. 在表格清單中,以滑鼠右鍵按一下 PERFORMANCE_PARTS

  4. 在選項清單中,選取限制條件

  5. 在選項清單中,按一下新增主索引鍵

  6. 在「新增主索引鍵」視窗中:

    1. 在「主索引鍵名稱」中輸入 PERF_PERF_ID_PK

    2. 若為資料欄 1,請從功能表中選取 PERFORMANCE_ID

    3. 按一下套用

  7. 在「確認」視窗中,按一下確定

    名為 PERF_PERF_ID_PK 的主索引鍵限制新增至 PERFORMANCE_PARTS 表格的 PERFORMANCE_ID 資料欄。

下列程序使用 ALTER TABLE 陳述式,將「主索引鍵」限制條件新增至 EVALUATIONS 表格的 EVALUATION_ID 資料欄。

使用 ALTER TABLE 敘述句新增「主索引鍵」限制條件的步驟:

  1. 如果有頁籤為 hr_conn 的窗格,請選取該窗格。否則,請按一下 SQL 工作表圖示,如在 SQL Developer 中執行查詢所示。

  2. 在「工作表」窗格中輸入此陳述式:

     ALTER TABLE EVALUATIONS
     ADD CONSTRAINT EVAL_EVAL_ID_PK PRIMARY KEY (EVALUATION_ID);
    
  3. 按一下執行陳述式圖示。

    陳述式會執行,將「主索引鍵」限制條件新增至 EVALUATIONS 表格的 EVALUATION_ID 資料欄。

下列程序使用「新增外來鍵」工具,將兩個外來鍵限制條件新增至 SCORES 表格。

使用「新增外來鍵」工具新增兩個外來鍵限制條件的步驟:

  1. 在「連線」框架中,展開 hr_conn

  2. 在綱要物件類型的清單中,展開表格

  3. 在表格清單中,以滑鼠右鍵按一下 SCORES

  4. 在選項清單中,選取限制條件

  5. 在選項清單中,按一下新增外來索引鍵

  6. 在新增外來索引鍵視窗中:

    1. 在「限制條件名稱」輸入 SCORES_EVAL_FK

    2. 若為「資料欄名稱」,請從功能表中選取 EVALUATION_ID

    3. 對於「參照表格名稱」,請從功能表中選取 EVALUATIONS

    4. 若為「參照資料欄」,請從功能表中選取 EVALUATION_ID

    5. 按一下套用

  7. 在「確認」視窗中,按一下確定

    名為 SCORES_EVAL_FK 的外來鍵限制新增至 SCORES 表格的 EVALUTION_ID 資料欄,參考 EVALUATIONS 表格的 EVALUTION_ID 資料欄。

    下列步驟會將其他外來索引鍵限制條件新增至 SCORES 表格。

  8. 在表格清單中,以滑鼠右鍵按一下 SCORES

  9. 在表格清單中,選取限制條件

  10. 在選項清單中,按一下新增外來索引鍵

    「新增外來索引鍵」視窗便會開啟。

  11. 在新增外來索引鍵視窗中:

    1. 在「限制條件名稱」輸入 SCORES_PERF_FK

    2. 若為「資料欄名稱」,請從功能表中選取 PERFORMANCE_ID

    3. 若為「參照表格名稱」,請從功能表中選取 PERFORMANCE_PARTS

    4. 若為「參照資料欄」,請從功能表中選取 PERFORMANCE_ID

    5. 按一下套用

  12. 在「確認」視窗中,按一下確定

    名為 SCORES_PERF_FK 的外來鍵限制會新增至 SCORES 表格的 EVALUTION_ID 資料欄,參考 EVALUATIONS 表格的 EVALUTION_ID 資料欄。

下列程序使用 ALTER TABLE 陳述式,將「外來索引鍵」限制條件新增至 EVALUATIONS 表格的 EMPLOYEE_ID 資料欄,並參考 EMPLOYEES 表格的 EMPLOYEE_ID 資料欄。

使用 ALTER TABLE 敘述句新增外來索引鍵限制條件的步驟:

  1. 如果有頁籤為 hr_conn 的窗格,請選取該窗格。否則,請按一下 SQL 工作表圖示,如在 SQL Developer 中執行查詢所示。

  2. 在「工作表」窗格中輸入此陳述式:

     ALTER TABLE EVALUATIONS
     ADD CONSTRAINT EVAL_EMP_ID_FK FOREIGN KEY (EMPLOYEE_ID)
     REFERENCES EMPLOYEES (EMPLOYEE_ID);
    
  3. 按一下執行陳述式圖示。

    此陳述式會執行,將「外來索引鍵」限制條件新增至 EVALUATIONS 表格的 EMPLOYEE_ID 資料欄,並參考 EMPLOYEES 表格的 EMPLOYEE_ID 資料欄。

下列程序使用「新增檢查」工具,將「檢查」限制條件新增至 SCORES 表格。

使用「新增檢查」工具新增「檢查」限制條件的步驟:

  1. 在「連線」框架中,展開 hr_conn

  2. 在綱要物件類型的清單中,展開表格

  3. 在表格清單中,以滑鼠右鍵按一下 SCORES

  4. 在選項清單中,選取限制條件

  5. 在選項清單中,按一下新增檢查

  6. 在「新增檢查」視窗中:

    1. 在「限制條件名稱」輸入 SCORE_VALID

    2. 若為「檢查條件」,請輸入 score >= 0 and score <+ 9

    3. 對於「狀態」,接受預設值 ENABLE

    4. 按一下套用

  7. 在「確認」視窗中,按一下確定

    將名為 SCORE_VALID 的檢查限制新增至 SCORES 表格。

另請參閱:

教學課程:使用插入資料列工具新增資料列至表格

本教學課程說明如何使用「插入列」工具,在 PERFORMANCE_PARTS 表中新增六個植入的列。

使用「插入列」工具將列新增至 PERFORMANCE_PARTS 表的步驟:

  1. 在「連接」框架中,展開 hr_conn。

  2. 在綱要物件類型的清單中,展開表格

  3. 在表格清單中,選取 PERFORMANCE_PARTS

  4. 在右側框架中,按一下頁籤資料

    「資料」窗格出現,顯示 PERFORMANCE_PARTS 表格欄的名稱,而且沒有資料列。

  5. 在「資料」窗格中,按一下插入列圖示。

    新資料列便會出現,其中含有空白資料欄。列號周圍的綠色框線表示尚未確認插入。

  6. 按一下欄標題 PERFORMANCE_ID 底下的儲存格。

  7. 輸入 PERFORMANCE_ID 的值:WM

  8. 請按 Tab 鍵或按一下欄標題 NAME 下的儲存格。

  9. 輸入 NAME 的值:Workload Management

  10. 請按 Tab 鍵,或按一下欄標題 WEIGHT 下的儲存格。

  11. 輸入 WEIGHT 的值:0.2

  12. Enter 鍵。

  13. 使用這些值重複步驟  512,以新增且填入第二列:

    • 若為 PERFORMANCE_ID,請輸入 BR

    • 若為 NAME,請輸入 Building Relationships

    • 對於 WEIGHT,請輸入 0.2

  14. 使用下列值重複步驟 512 ,以新增並填入第三列:

    • 若為 PERFORMANCE_ID,請輸入 CF

    • 若為 NAME,請輸入 Customer Focus

    • 對於 WEIGHT,請輸入 0.2

  15. 使用下列值重複步驟 512 ,以新增並填入第四個資料列:

    • 若為 PERFORMANCE_ID,請輸入 CM

    • 若為 NAME,請輸入 Communication

    • 對於 WEIGHT,請輸入 0.2

  16. 使用下列值重複步驟 512 ,以新增並填入第五列:

    • 若為 PERFORMANCE_ID,請輸入 TW

    • 若為 NAME,請輸入 Teamwork

    • 對於 WEIGHT,請輸入 0.2

  17. 使用下列值重複步驟 512 ,以新增並填入第六列:

    • 若為 PERFORMANCE_ID,請輸入 RO

    • 若為 NAME,請輸入 Results Orientation

    • 對於 WEIGHT,請輸入 0.2

  18. 按一下確認變更圖示。

    列號周圍的綠色邊框會消失。

    「資料」窗格下的標籤為「訊息 - 日誌」。

  19. 檢查訊息 - 日誌窗格中的訊息 Commit Successful

  20. 在「資料面板」中,檢查新列。

另請參閱:關於 INSERT 陳述式

教學課程:在資料窗格中變更表格中資料

本教學課程說明如何變更「資料」窗格中 PERFORMANCE_PARTS 表格的三個 WEIGHT 值。

PERFORMANCE_PARTS 表格已填入「教學課程:使用插入資料列工具新增資料列至表格」。

使用「資料」窗格變更 PERFORMANCE_PARTS 表格中資料的步驟:

  1. 在「連線」框架中,展開 hr_conn

  2. 在綱要物件類型的清單中,展開表格

  3. 在表格清單中,選取 PERFORMANCE_PARTS

  4. 在右側框架中,按一下頁籤資料

  5. 在「資料窗格」中,於 NAME 為「工作負載管理」的資料列:

    1. 按一下 WEIGHT 值。

    2. 輸入值 0.3

    3. Enter 鍵。

      列號左邊會出現星號,表示尚未確認變更。

  6. NAME 為「建立關係」的列中:

    1. 按一下 WEIGHT 值。

    2. 輸入值 0.15

    3. Enter 鍵。

      列號左邊會出現星號,表示尚未確認變更。

  7. NAME 為「客戶焦點」的資料列中:

    1. 按一下 WEIGHT 值。

    2. 輸入值 0.15

    3. Enter 鍵。

      列號左邊會出現星號,表示尚未確認變更。

  8. 按一下確認變更圖示。

    資料列編號左邊的星號會消失。

  9. 在「資料」窗格下,檢查訊息 Commit Successful 的「訊息 - 日誌」窗格。

  10. 在「資料窗格」中,檢查新資料。

另請參閱:關於 UPDATE 陳述式

教學課程:使用刪除選取的資料列工具刪除表格的資料列

本教學課程顯示如何使用「刪除選取的資料列」工具,從 PERFORMANCE_PARTS 表格刪除資料列。

PERFORMANCE_PARTS 表格已填入「教學課程:使用插入資料列工具新增資料列至表格」。

使用「刪除選取的資料列」工具從 PERFORMANCE_PARTS 刪除資料列的步驟:

  1. 在「連線」框架中,展開 hr_conn

  2. 在綱要物件類型的清單中,展開表格

  3. 在表格清單中,選取 PERFORMANCE_PARTS

  4. 在右側框架中,按一下頁籤資料

  5. 在「資料」窗格中,按一下 NAME 為「結果方向」的列。

  6. 按一下刪除選取的資料列圖示。

    資料列編號周圍會出現紅色框線,表示尚未確認刪除。

  7. 按一下確認變更圖示。

    資料列已刪除。

  8. 在「資料」窗格下,檢查訊息 Commit Successful 的「訊息 - 日誌」窗格。

注意:如果您刪除表格的每個資料列,則空白表格仍會存在。若要刪除表格,請參閱刪除表格

另請參閱:關於 DELETE 陳述式

管理索引

您可以在表格的一或多個資料欄上建立索引,以加速該表格的 SQL 敘述句執行。適當地使用時,索引是減少磁碟輸入 / 輸出 (I/O) 的主要方法。

當您在表格上定義主索引鍵時:

例如,在「教學課程:新增限制至現有表格」中,您新增了主索引鍵限制條件至 EVALUATIONS 表格的 EVALUATION_ID 資料欄。因此,如果您在「SQL Developer 連線」框架中選取 EVALUATIONS 表格並按一下「索引」頁籤,則「索引」窗格會在 EVALUATION_ID 資料欄顯示「唯一」索引。

另請參閱:

有關索引的詳細資訊:

教學課程:使用建立索引工具新增索引

本教學課程顯示如何使用「建立索引」工具,將索引新增至 EVALUATIONS 表格。

已在範例 4-1 中建立 EVALUATIONS 表格。

若要建立索引,請使用 SQL Developer 的「建立索引」工具或 DDL 敘述句 CREATE INDEX。相等的 DDL 敘述句為:

CREATE INDEX EVAL_JOB_IX
ON EVALUATIONS (JOB_ID ASC) NOPARALLEL;

使用「建立索引」工具,將索引新增至 EVALUATIONS 表格的步驟:

  1. 在「連線」框架中,展開 hr_conn

  2. 在綱要物件類型的清單中,展開表格

  3. 在表格清單中,以滑鼠右鍵按一下 EVALUATIONS

  4. 在選項清單中,選取索引

  5. 在選項清單中,選取建立索引

  6. 在「建立索引 (Create Index)」視窗:

    1. 對於「綱要」,接受預設的 HR。

    2. 若為「名稱」,請輸入 EVAL_JOB_IX

    3. 如果「定義」窗格未顯示,請選取頁籤定義

    4. 在「定義」窗格的「索引類型」中,從功能表中選取唯一

    5. 按一下新增表示式圖示。

      系統會顯示訂單 < 未指定 > 的運算式 EMPLOYEE_ID。

    6. 透過 EMPLOYEE_ID,輸入 JOB_ID

    7. 若為「順序」,請從功能表中選取 ASC (遞增)。

    8. 然後按一下確定

      現在 EVALUATIONS 表格在欄位 JOB_ID 中具有名為 EVAL_JOB_IX 的索引。

另請參閱:Oracle Database SQL Language Reference,瞭解 CREATE INDEXstatement 的相關資訊

教學課程:使用編輯索引工具變更索引

本教學課程顯示如何使用「編輯索引」工具,反轉索引 EVAL_JOB_IX 的排序順序。

若要變更索引,請使用 SQL Developer 工具「編輯索引」或 DDL 敘述句 DROP INDEX 和 CREATE INDEX。

相等的 DDL 敘述句為:

DROP INDEX EVAL_JOB_ID;

CREATE INDEX EVAL_JOB_IX
ON EVALUATIONS (JOB_ID DESC) NOPARALLEL;

使用「編輯索引」工具,反轉索引 EVAL_JOB_IX 排序順序的步驟:

  1. 在「連線」框架中,展開 hr_conn

  2. 在綱要物件類型的清單中,展開索引

  3. 在索引清單中,以滑鼠右鍵按一下 EVAL_JOB_IX

  4. 在選項清單中,按一下編輯

  5. 在「編輯索引」視窗,將「順序」變更為 DESC

  6. 然後按一下確定

  7. 在「確認取代」視窗中,按一下

另請參閱:Oracle Database SQL Language Reference,瞭解有關 ALTER INDEX 敘述句的資訊

教學課程:刪除索引

本教學課程顯示如何使用「連線」框架和「刪除」工具來刪除索引 EVAL_JOB_IX。

若要刪除索引,請使用「SQL Developer 連線」框架與「刪除」工具或 DDL 敘述句 DROP INDEX。相等的 DDL 敘述句為:

DROP INDEX EVAL_JOB_ID;

刪除 EVAL_JOB_IX 索引:

  1. 在「連線」框架中,展開 hr_conn

  2. 在綱要物件類型的清單中,展開索引

  3. 在索引清單中,以滑鼠右鍵按一下 EVAL_JOB_IX

  4. 在選項清單中,按一下刪除

  5. 在「刪除」視窗中,按一下套用

  6. 在「確認」視窗中,按一下確定

另請參閱:Oracle Database SQL Language Reference,瞭解 DROP INDEX 敘述句的相關資訊

刪除表格

若要刪除表格,請使用「SQL Developer 連線」框架與「刪除」工具,或 DDL 陳述式 DROP TABLE。

注意:請勿刪除在建立表格中建立的任何表格,因為您之後需要這些表格來進行教學課程。如果您想要練習刪除表格,請建立簡單表格然後刪除它們。

使用「刪除」工具刪除表格的步驟:

  1. 在「連線」框架中,展開 hr_conn

  2. 在綱要物件類型的清單中,展開表格

  3. 在表格清單中,用滑鼠右鍵按一下要捨棄的表格名稱。

  4. 在選項清單中,選取表格

  5. 在選項清單中,按一下刪除

  6. 在「刪除」視窗中,按一下套用

  7. 在「確認」視窗中,按一下確定

另請參閱:Oracle Database SQL Language Reference,瞭解 DROP TABLE 敘述句的相關資訊