zoukankan      html  css  js  c++  java
  • ORACLE 创建sql

    1.新建表

    -- Create table
    create table TC_BUDGETMOVEINFO_FILE
    (
      ta_01 VARCHAR2(50 BYTE) not null,
      ta_02 VARCHAR2(50 BYTE) not null,
      ta_03 VARCHAR2(50 BYTE) not null,
      ta_04 VARCHAR2(50 BYTE) not null,
      ta_05 VARCHAR2(50 BYTE) not null,
      ta_06 VARCHAR2(50 BYTE),
      ta_07 VARCHAR2(50 BYTE),
      ta_08 VARCHAR2(50 BYTE),
      ta_09 VARCHAR2(50 BYTE),
      ta_10 VARCHAR2(50 BYTE),
      ta_11 VARCHAR2(50 BYTE),
      ta_12 VARCHAR2(400 BYTE),
      ta_13 VARCHAR2(50 BYTE),
      ta_14 VARCHAR2(50 BYTE),
      ta_15 VARCHAR2(100 BYTE),
      ta_16 VARCHAR2(50 BYTE),
      ta_17 VARCHAR2(100 BYTE),
      ta_18 VARCHAR2(50 BYTE),
      ta_19 VARCHAR2(100 BYTE),
      ta_20 VARCHAR2(100 BYTE),
      ta_21 VARCHAR2(100 BYTE),
      ta_22 VARCHAR2(100 BYTE),
      ta_23 VARCHAR2(100 BYTE),
      ta_24 VARCHAR2(100 BYTE),
      ta_25 VARCHAR2(100 BYTE),
      ta_26 VARCHAR2(100 BYTE),
      ta_27 VARCHAR2(100 BYTE),
      ta_28 VARCHAR2(100 BYTE),
      ta_29 VARCHAR2(100 BYTE),
      ta_30 VARCHAR2(100 BYTE),
      ta_31 VARCHAR2(100 BYTE),
      ta_32 VARCHAR2(100 BYTE),
      ta_33 VARCHAR2(100 BYTE),
      ta_34 VARCHAR2(100 BYTE),
      ta_35 VARCHAR2(100 BYTE),
      ta_36 VARCHAR2(100 BYTE),
      ta_37 VARCHAR2(100 BYTE),
      ta_38 VARCHAR2(100 BYTE),
      ta_39 VARCHAR2(100 BYTE),
      ta_40 VARCHAR2(100 BYTE),
      ta_41 VARCHAR2(100 BYTE)
    )
    tablespace DBS1
      pctfree 10
      initrans 1
      maxtrans 255;
    

      二.给对应的列,列注解

    comment on column TC_BUDGETMOVEINFO_FILE.ta_01   is '项次';
    
    对应的正则表达式为:根据表结构来存储数据正则匹配
    (ta_dd)(  )(S.+) comment on column TC_BUDGETMOVEINFO_FILE.$1  is '$3';

    三.给表添加主键

    alter table TC_BUDGETMOVEINFO_FILE --表名
      add constraint TC_BUDGETmove_PK primary key (TA_01, TA_02, TA_03, TA_04) --对应的主键名称
      using index --(注意上面这块,主键名称是这个用户下面是唯一的,请注意,例如TC_BUDGETmove_PK唯一)
      tablespace DBS1
      pctfree 10
      initrans 2
      maxtrans 255
      storage
      (
        initial 64K
        next 1M
        minextents 1
        maxextents unlimited
      );

    四.表的授权

    grant select, insert, update, delete, references, alter, index on TC_BUDGETMOVEINFO_FILE to PUBLIC;

    五.修改表的字段

      

    5.1 修改表的字段大小

    alter table 表名 modify 字段名 varchar(100);

    5.2 修改表的字段类

    --这里需要注意分两种情况
    ---1.修改表的该字段,列值为空
        alter table 表名 modify (字段名 nvarchar2(20));--可以Number,Date
        (注意这块char 和varchar2 即使有数据也可以相互转化)
    ---2.修改表的该字段,列值不为空
        字段有数据,则改为varchar2(40)执行时会弹出:“ORA-01439:要更改数据类型,则要修改的列必须为空”,这时     要用下面方法来解决这个问题:
        1.修改原有列名
        alter table 表名 rename column name to name_tmp; --原列名改为原列名+tmp,name为表中的一个属性
        2.新增列名
        alter table 表名 add name varchar2(40);
        3.更新数据
        update 表名 set name=trim(name_tmp);
        4.删除临时字段
        alter table 表名 drop column name_tmp;

    总结:

    1. 创建表,需要根据格式,要有规范

    2. 当字段没有数据或者要修改的新类型和原类型兼容时,可以直接modify修改。

    3. 当字段有数据并用要修改的新类型和原类型不兼容时,要间接新建字段来转移

    CREATE  TABLE  SEOrder(
              FInterId  INT NOT  NULL ,
              FBillNo  VARCHAR(50)  NOT  NULL,
            KKK  VARCHAR(50),
              FBillerID  INT  DEFAULT(0),
              FDepart  INT  NOT  NULL
     ) 
    alter table SEOrder add constraint SEOrder_PK primary key (FInterId);
    ALTER  TABLE  SEOrder ADD  FDate  VARCHAR(50)
    ALTER  TABLE  SEOrder    DROP  COLUMN  KKK;
    ALTER  TABLE  SEOrder  MODIFY    (FDate  DATE );
  • 相关阅读:
    美团配送系统架构演进实践
    系统学习NLP(二十一)--SWEM
    转:大众点评信息流基于文本生成的创意优化实践
    从Encoder到Decoder实现Seq2Seq模型
    从YOLOv1到YOLOv3,目标检测的进化之路
    23岁融了一千万,被创新工场投资,创业就是解决问题。专访丨陈海沙
    通俗理解word2vec
    关于眼下分词的想法
    Angular 2的12个经典面试问题汇总(文末附带Angular測试)
    ubuntu14.04-64位机配置android开发环境,ADT,sdk,eclipsea
  • 原文地址:https://www.cnblogs.com/chenzhelove/p/13479679.html
Copyright © 2011-2022 走看看