zoukankan      html  css  js  c++  java
  • Oracle学习总结

    之前一直使用的是Sqlserver数据库,因项目需要,要附加Oracle版本。Oracle和Sqlserver的使用上有一定的区别,今天写一篇关于

    用Oracle的总结。

    一.主键自增的实现过程

      1.创建表

    create table Purpose(
        Id NUMBER(8) primary key NOT NULL,
        Title varchar(50) NOT NULL,
        Content varchar(500) NOT NULL,
        PicUrl varchar(50) NOT NULL,
        CompanyId NUMBER(8) NOT NULL,
        constraint FK__Purpose__Company foreign key (CompanyId) references Company(Id)  --设置关联的外键
    )

      2.创建序列

        CREATE SEQUENCE Purpose_seq  
         INCREMENT BY 1 -- 每次增加1个
         START WITH 1 --从1开始计数
         NOMAXVALUE -- 不设置最大值
         NOCYCLE --直累加,不循环
         NOCACHE --不建立缓冲区
             

      3.创建触发器,当执行添加操作的时候执行

    CREATE OR REPLACE TRIGGER Purpose_TRG
      BEFORE INSERT ON Purpose
      FOR EACH ROW -- WHEN (new.ID is null) 设置主键存在时,不触发触发器
    BEGIN
      SELECT Purpose_seq.NEXTVAL INTO :NEW.ID FROM DUAL;
    END;

    二.常规操作总结

      1.重命名表

    rename Purpose to Company;

      2.重命名列

    alter table Purpose rename column FullName to Name;

      3.添加主键约束

    alter table Purpose add constraint pk_Purpose_Id primary key(Id);

      4.添加外键约束

    alter table Purpose add constraint fk_Purpose_Type foreign key(TypeId) references Type(Id);

      5.添加检查约束

    alter table Purpose add constraint ck_Purpose_info check (Id in (1,2));

      6.添加列

    alter table Purpose add Name varchar(15);

      7.删除列

    alter table Purpose drop column Name;  

      8.修改列

    alter table Purpose modify Name varchar2(50);

     三.插入数据

      1.一次插入一条

    insert into CARTYPE(NAME) VALUES('跑车');

      2.一次插入多条

    insert all into CARTYPE(NAME) values('跑车')
     into CARTYPE(NAME) values('SUV')
     into CARTYPE(NAME) values('豪华车')
     into CARTYPE(NAME) values('中高级车')
    into CARTYPE(NAME) values('其他类别')
    select 1 from dual;

       

  • 相关阅读:
    luogu P4779 【模板】单源最短路径(标准版)| dijkstra
    luogu P1160 队列安排 | 链式前向星
    luogu P1996 约瑟夫问题 | 链表
    luogu P3386 【模板】二分图匹配 | 匈牙利算法
    luogu P3366 【模板】最小生成树 | kruskal
    luogu P3378 【模板】堆
    luogu P3372 【模板】线段树 1
    luogu P1776 宝物筛选_NOI导刊2010提高(02) | 多重背包(二进制拆分)
    luogu P1616 疯狂的采药 | 完全背包
    luogu P1588 丢失的牛 | 宽搜
  • 原文地址:https://www.cnblogs.com/HTLucky/p/11934895.html
Copyright © 2011-2022 走看看