Oracle建立表


在本教學中,您將學習如何使用Oracle CREATE TABLE語句在Oracle資料庫中建立一個新錶。

Oracle CREATE TABLE語句簡介

要在Oracle資料庫中建立一個新錶,可以使用CREATE TABLE語句。下面說明了CREATE TABLE語句的基本語法:

CREATE TABLE schema_name.table_name (
    column_1 data_type column_constraint,
    column_2 data_type column_constraint,
    ...
    table_constraint
 );

在上面這個語法中,

  • 首先,在CREATE TABLE子句中,指定新表所屬的表名和模式名稱。
  • 其次,在圓括號內列出所有列。 如果一個表有多個列,則需要用逗號分隔每個列的定義。列定義包括列名,後跟它的資料型別,例如NUMBERVARCHAR2和列約束,如NOT NULL,主鍵,約束檢查等。
  • 第三,如果適用,例如:主鍵,外來鍵,約束檢查,則為表新增約束。

請注意使用者許可權問題,必須具有CREATE TABLE系統特權才能在模式中建立新表,並使用CREATE ANY TABLE系統特權在其他使用者的模式中建立新表。除此之外,新錶的所有者必須具有包含新表或UNLIMITED TABLESPACE系統特權的表空間的配額。

Oracle CREATE TABLE範例

以下範例顯示如何在ot模式中建立一個名稱為persons的新表:

-- oracle 12c寫法
CREATE TABLE ot.persons(
    person_id NUMBER GENERATED BY DEFAULT AS IDENTITY,
    first_name VARCHAR2(50) NOT NULL,
    last_name VARCHAR2(50) NOT NULL,
    PRIMARY KEY(person_id)
);

在這個例子中,persons表有三列:person_idfirst_namelast_name

person_id是標識表中唯一行的標識列。 person_id列的資料型別是NUMBER。 子句GENERATED BY DEFAULT AS IDENTITY指示 Oracle生成一個新的整數,並在列中插入新行時將其用於列。

first_name列的資料型別為VARCHAR2,最大長度為50。這意味著不能在first_name列中插入長度大於50的字元。 另外,NOT NULL列約束防止first_name列具有NULL值。

last_name列具有與first_name列相同的特徵。

PRIMARY KEY子句將person_id列指定為主鍵列,用於標識個人表中的唯一行。

在本教學中,您已學習如何使用Oracle CREATE TABLE語句來建立新表。