oracle基本操作

简单介绍oracle数据库的常用操作命令

 

 //删除表空间JSPHOME

drop tablespace JSPHOME including contents and datafiles;

 

//创建表空间JSPHOME :

create tablespace JSPHOME

logging

datafile 'C:/oracle/product/10.2.0/oradata/orcl/JSPHOME.dbf'

size 32m

autoextend on

next 32m maxsize 2048m

extent management local;

 

//删除用户oracle:

DROP USER oracle CASCADE

 

//创建用户并指定表空间

create user oracle identified by pass

default tablespace JSPHOME ;

 

//授于oracle 用户dba,resource的权限

grant dba,resource to oracle;

 

//新建表TEST_PERSON,主键为code

ALTER TABLE TZZY.TEST_PERSON
 DROP PRIMARY KEY CASCADE;

DROP TABLE TZZY.TEST_PERSON CASCADE CONSTRAINTS;

CREATE TABLE TZZY.TEST_PERSON
(
  CODE  VARCHAR2(20 BYTE),
  NAME  VARCHAR2(20 BYTE),
  AGE   INTEGER,
  DEPT  VARCHAR2(20 BYTE)
)
TABLESPACE TZZY
PCTUSED    0
PCTFREE    10
INITRANS   1
MAXTRANS   255
STORAGE    (
            INITIAL          64K
            MINEXTENTS       1
            MAXEXTENTS       UNLIMITED
            PCTINCREASE      0
            BUFFER_POOL      DEFAULT
           )
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING;


CREATE UNIQUE INDEX TZZY.TEST_PERSON_PK ON TZZY.TEST_PERSON
(CODE)
LOGGING
TABLESPACE TZZY
PCTFREE    10
INITRANS   2
MAXTRANS   255
STORAGE    (
            INITIAL          64K
            MINEXTENTS       1
            MAXEXTENTS       UNLIMITED
            PCTINCREASE      0
            BUFFER_POOL      DEFAULT
           )
NOPARALLEL;


ALTER TABLE TZZY.TEST_PERSON ADD (
  CONSTRAINT TEST_PERSON_PK
 PRIMARY KEY
 (CODE)
    USING INDEX
    TABLESPACE TZZY
    PCTFREE    10
    INITRANS   2
    MAXTRANS   255
    STORAGE    (
                INITIAL          64K
                MINEXTENTS       1
                MAXEXTENTS       UNLIMITED
                PCTINCREASE      0
               ));

 

//新建表TEST_INFO,主键id自增,通过序列生成器和触发器来实现id自增

ALTER TABLE TZZY.TEST_INFO
 DROP PRIMARY KEY CASCADE;

DROP TABLE TZZY.TEST_INFO CASCADE CONSTRAINTS;

CREATE TABLE TZZY.TEST_INFO
(
  ID        INTEGER                             NOT NULL,
  INFOTIME  DATE,
  INFODESC  VARCHAR2(200 BYTE),
  PERSONID  VARCHAR2(20 BYTE)
)
TABLESPACE TZZY
PCTUSED    0
PCTFREE    10
INITRANS   1
MAXTRANS   255
STORAGE    (
            INITIAL          64K
            MINEXTENTS       1
            MAXEXTENTS       UNLIMITED
            PCTINCREASE      0
            BUFFER_POOL      DEFAULT
           )
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING;


CREATE UNIQUE INDEX TZZY.TEST_INFO_PK ON TZZY.TEST_INFO
(ID)
LOGGING
TABLESPACE TZZY
PCTFREE    10
INITRANS   2
MAXTRANS   255
STORAGE    (
            INITIAL          64K
            MINEXTENTS       1
            MAXEXTENTS       UNLIMITED
            PCTINCREASE      0
            BUFFER_POOL      DEFAULT
           )
NOPARALLEL;

 

//触发器TZZY.TEST_INFO_T 用来操作序列器TZZY.TEST_INFO_S实现id自增
CREATE OR REPLACE TRIGGER TZZY.TEST_INFO_T
BEFORE INSERT ON TZZY.TEST_INFO FOR EACH ROW
BEGIN
SELECT TZZY.TEST_INFO_S.NEXTVAL INTO :NEW.ID FROM DUAL;
END;
/


ALTER TABLE TZZY.TEST_INFO ADD (
  CONSTRAINT TEST_INFO_PK
 PRIMARY KEY
 (ID)
    USING INDEX
    TABLESPACE TZZY
    PCTFREE    10
    INITRANS   2
    MAXTRANS   255
    STORAGE    (
                INITIAL          64K
                MINEXTENTS       1
                MAXEXTENTS       UNLIMITED
                PCTINCREASE      0
               ));

 

 

//新增外键用来关联TEST_PERSON

ALTER TABLE TZZY.TEST_INFO ADD (
  CONSTRAINT FK_PERSON
 FOREIGN KEY (PERSONID)
 REFERENCES TZZY.TEST_PERSON
    ON DELETE CASCADE);

 

 

//新建序列器TZZY.TEST_INFO_S

DROP SEQUENCE TZZY.TEST_INFO_S;

CREATE SEQUENCE TZZY.TEST_INFO_S
  START WITH 1
  MAXVALUE 999999999999999999
  MINVALUE 1
  NOCYCLE
  CACHE 20
  NOORDER;

 

//新建触发器TEST_PERSON_CLEAR_T,当主表TEST_PERSON删除时,与其关联的子表TEST_INFO 都将被删除

DROP TRIGGER TZZY.TEST_PERSON_CLEAR_T;
CREATE OR REPLACE TRIGGER TZZY.TEST_PERSON_CLEAR_T
AFTER DELETE ON TEST_PERSON
FOR EACH ROW
DECLARE PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
   delete from TEST_INFO where PERSONID=:OLD.CODE;
   COMMIT;
END ;
/

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值