Oracle创建表

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语句来创建新表。