【Oracle】创建表

07-10 1030阅读

目录

方法一:CREATE TABLE 语法

【Oracle】创建表

创建表示例1:创建stuinfo(学生信息表)

创建表示例2:添加stuinfo(学生信息表)约束

方法二:CREATE TABLE AS 语法

创建表示例3:

创建表示例4:实现对select查询的结果进行快速备份

创建表示例5:复制另一个表的选定列

创建表示例6:从多个表复制选定的列

方法一:CREATE TABLE 语法

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

首先,在CREATE TABLE子句中,指定新表所属的表名和模式名称。

其次,在圆括号内列出所有列。如果一个表有多个列,则需要用逗号分隔每个列的定义。列定义包括列名,后跟它的数据类型,例如NUMBER,VARCHAR2和列约束,如NOT NULL,主键,约束检查等。

注意:请注意用户权限问题,必须具有CREATE TABLE系统特权才能在模式中创建新表,并使用CREATE ANY TABLE系统特权在其他用户的模式中创建新表。除此之外,新表的所有者必须具有包含新表或UNLIMITED TABLESPACE系统特权的表空间的配额。

在我们之前创建的JT_CS用户下创建表,一定要有CREATE TABLE权限,不然无法创建数据表。

创建表示例1:创建stuinfo(学生信息表)

 --实例建表stuinfo
 create table JT_CS.stuinfo
 (
   stuid      varchar2(11) not null,--学号:'S'+班号(7位数)+学生序号(3位数)(不能为空)SC200101001
   stuname    varchar2(50) not null,--学生姓名(不能为空)
   sex        char(1) not null,--性别(不能为空)1(男)、2(女)
   age        number(2) not null,--年龄(不能为空)
   classno    varchar2(7) not null,--班号:'C'+年级(4位数)+班级序号(2位数)(不能为空)C200101
   stuaddress varchar2(100) default '地址未录入',--地址 (不填或为空时默认填入‘地址未录入‘)
   grade      char(4) not null,--年级(不能为空)
   enroldate  date,--入学时间
   idnumber   varchar2(18) default '身份证未采集' not null--身份证(不能为空)
 )
 -- Add comments to the table
 --comment on table 是给表名进行注释
 comment on table JT_CS.stuinfo
   is '学生信息表';
 -- Add comments to the columns
 --comment on column 是给表字段进行注释。
 comment on column JT_CS.stuinfo.stuid
   is '学号';
 comment on column JT_CS.stuinfo.stuname
   is '学生姓名';
 comment on column JT_CS.stuinfo.sex
   is '学生性别';
 comment on column JT_CS.stuinfo.age
   is '学生年龄';
 comment on column JT_CS.stuinfo.classno
   is '学生班级号';
 comment on column JT_CS.stuinfo.stuaddress
   is '学生住址';
 comment on column JT_CS.stuinfo.grade
   is '年级';
 comment on column JT_CS.stuinfo.enroldate
   is '入学时间';
 comment on column JT_CS.stuinfo.idnumber
   is '身份证号';

通过上面Crate Table命令创建了stuinfo学生信息表后,还可以继续给表添加相应的约束来保证表数据的准确性。比如:学生的年龄不能存在大龄的岁数,可能是错误数据、性别不能填入不是1(男)、2(女)之外的数据等。

创建表示例2:添加stuinfo(学生信息表)约束

--添加约束
--把stuid当做主键,主键字段的数据必须是唯一性的(学号是唯一的)
alter table JT_CS.STUINFO
  add constraint pk_stuinfo_stuid primary key (STUID);
-- --给字段年龄age添加约束,学生的年龄只能0-60岁之内的
alter table JT_CS.STUINFO
  add constraint ch_stuinfo_age
  check (age>0 and age='2000' and grade

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]