Oracle创建表

一、新表不存在

1、基本语法
create table 表名称
(
id  varchar2(50) primary key ,
name char(200) not null,
phone number(11) unique,
class carchar(10),
foreign key (name)
)
tablespace USERS ----表放在USERS表空间
pctfree 10 ----保留10%空间给更新该块数据使用
initrans 1 -----初始化事物槽的个数
maxtrans 255 ----最大事务槽的个数
storage ----存储参数
(
initial 64K ---区段一次扩展64k
next 1M
minextents 1 ---最小区段数
maxextents unlimited --最大区段无限制
);
2、删除表之前备份数据(创建备份表)
 creact table  新表名称 as select 字段1,字段2 from  旧表名称
 create table    新表名称   as  select * from  旧表名称 where 1=2;   ---复制结构,不要数据
3、添加列  alter table 表名称 add (name  varchar2(100),code varchar(20));
   删除列 alter table  表名称 drop (name,code)
4、表重命名 rename table 新表名称 to 旧表名称;  

varcha2 —-0-4000,可变长度
char() —-0-2000,固定长度,用空格在数据的右边补到固定长度
number(6,2) —6位整数、2位小数
number(2) –2位整数
clob —txt文本
blob —图片、视频、声音等转换过来的二进制对象
date —sysdate

5、其他注意

1、添加主键约束(将stuNo作为主键)

alter table stuInfo

add constraint PK_stuNo primary key (stuNo)

2、添加外键约束 (主表stuInfo和从表stuMarks建立关系,关联字段stuNo)
alter table stuInfo
add constraint FK_stuNo foreign key(stuNo) references stuinfo(stuNo)

3、添加唯一约束(身份证号唯一)
alter table stuInfo
add constraint UQ_stuID unique(stuID)

4、添加默认约束(如果地址不填 默认为“地址不详”)
alter table stuInfo
add constraint DF_stuAddress default (‘地址不详’) for stuAddress

5、添加检查约束 (对年龄加以限定 15-40岁之间)
alter table stuInfo
add constraint CK_stuAge check (stuAge between 15 and 40)

6、添加表注释:学生信息表

comment on table STUINFO

is '学生信息表';

7、添加列名称:学号

comment on column STUINFO.stuid
is '学号';
comment on column STUINFO.stuname
is '学生姓名';

新表存在

—1、两个表存在字段一样,复制数据

insert into 新表 select * from 旧表;

—2、新表只有旧表的部分字段,复制部分字段数据

insert into 新表 (field1,field2,…..) select field1,field2,field3 from 旧表;

—3、全部数据与结构

select * into 新表 from 旧表;

—4、结构

select * into 新表 from 旧表 where 1=2;

以上只复制数据和结构,不能复制约束/索引等信息

如果where条件满足时,查询结果有数据,即复制表数据

如果 where 条件不成立时,查询结果为空,只复制表结构,没有任务数据

如果新表与旧表字段不一致,要说明取旧表的哪些字段,赋予新表

【附录】、完成建表语句

-- Create table
create table TEST_TESTING_TEST
(
  ID                     VARCHAR2(50) not null,
  TESTING_SITE_NAME      VARCHAR2(60),
  TESTING_SITE_CODE      VARCHAR2(50),
  TESTING_SITE_TYPE_NAME VARCHAR2(50),
  TESTING_SITE_TYPE_CODE VARCHAR2(50),
  TESTING_SITE_ADDRESS   VARCHAR2(200),
  TESTING_REGION_CODE    VARCHAR2(20),
  TESTING_REGION_NAME    VARCHAR2(100),
  CONTACT_NAME           VARCHAR2(50),
  CONTACT_PHONE          VARCHAR2(30),
  TESTING_DEVICE_NUM     INTEGER,
  TESTING_WORKER_NUM     INTEGER,
  TESTING_DAY_MAX        INTEGER,
  LONGITUDE              VARCHAR2(16),
  LATITUDE               VARCHAR2(16),
  CREATE_DATETIME        VARCHAR2(50) not null,
  CITY_CODE              VARCHAR2(50),
  CITY_NAME              VARCHAR2(50),
  ETL_DATETIME           VARCHAR2(50) not null,
  UPDATE_DATETIME        TIMESTAMP(6) default sysdate,
  DELETE_FLAG            VARCHAR2(2)
)
tablespace TS_IA_QYHSJC_DATA
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64
    next 8
    minextents 1
    maxextents unlimited
  );
-- Add comments to the table
comment on table TEST_TESTING_TEST
  is '核酸检测点信息';
-- Add comments to the columns
comment on column TEST_TESTING_TEST.ID
  is '唯一标识';
comment on column TEST_TESTING_TEST.TESTING_SITE_NAME
  is '检测点名称';
comment on column TEST_TESTING_TEST.TESTING_SITE_CODE
  is '检测点编码';
comment on column TEST_TESTING_TEST.TESTING_SITE_TYPE_NAME
  is '检测点类型名称';
comment on column TEST_TESTING_TEST.TESTING_SITE_TYPE_CODE
  is '检测点类型代码';
comment on column TEST_TESTING_TEST.TESTING_SITE_ADDRESS
  is '检测点详细地址';
comment on column TEST_TESTING_TEST.TESTING_REGION_CODE
  is '检测点区划编码';
comment on column TEST_TESTING_TEST.TESTING_REGION_NAME
  is '检测点区划名称';
comment on column TEST_TESTING_TEST.CONTACT_NAME
  is '检测点联系人';
comment on column TEST_TESTING_TEST.CONTACT_PHONE
  is '检测点联系电话';
comment on column TEST_TESTING_TEST.TESTING_DEVICE_NUM
  is '检测设备数量';
comment on column TEST_TESTING_TEST.TESTING_WORKER_NUM
  is '检测点工作人员数量';
comment on column TEST_TESTING_TEST.TESTING_DAY_MAX
  is '单日最大检测量';
comment on column TEST_TESTING_TEST.LONGITUDE
  is '检测点经度信息';
comment on column TEST_TESTING_TEST.LATITUDE
  is '检测点纬度信息';
comment on column TEST_TESTING_TEST.CREATE_DATETIME
  is '创建时间';
comment on column TEST_TESTING_TEST.CITY_CODE
  is '数据推送行政区划代码';
comment on column TEST_TESTING_TEST.CITY_NAME
  is '数据推送行政区划名称';
comment on column TEST_TESTING_TEST.ETL_DATETIME
  is '数据推送时间';
comment on column TEST_TESTING_TEST.UPDATE_DATETIME
  is '更新时间';
comment on column TEST_TESTING_TEST.DELETE_FLAG
  is '删除标志';
-- Create/Recreate primary, unique and foreign key constraints
alter table TEST_TESTING_TEST
  add primary key (ID)
  using index
  tablespace TS_IA_QYHSJC_DATA
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );
alter table TEST_TESTING_TEST
  add constraint UNIQUE_ID_CITY_CODE unique (ID, CITY_CODE)
  using index
  tablespace TS_IA_QYHSJC_DATA
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );
THE END
点赞0赞赏 分享
抢沙发
头像
提交
头像

昵称

取消
昵称表情

    暂无评论内容