Oracle Create Table
在本教程中,您将学习如何使用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 );
在上面这个语法中,
(1)在CREATE TABLE子句中,指定新表所属的表名和模式名称。
(2)在圆括号内列出所有列。 如果一个表有多个列,则需要用逗号分隔每个列的定义。列定义包括列名,后跟它的数据类型,例如NUMBER,VARCHAR2和列约束,如NOT NULL,主键,约束检查等。
(3)如果适用,例如:主键,外键,约束检查,则为表添加约束。
请注意用户权限问题,必须具有CREATE TABLE系统特权才能在模式中创建新表,并使用CREATE ANY TABLE系统特权在其他用户的模式中创建新表。除此之外,新表的所有者必须具有包含新表或UNLIMITED TABLESPACE系统特权的表空间的配额。
Oracle CREATE TABLE示例
以下示例显示如何在ot模式中创建一个名称为persons的新表:
-- oracle 12c写法 CREATE TABLE 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_id,first_name和last_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列指定为主键列,用于标识个人表中的唯一行。