ORACLE的基本DDL操作

1.       创建表空间

create tablespace name

     datafile 'e:\oracle\project.dbf'

     size 32M

     autoextend on

     next 5M maxsize 2048M

datafile为表空间路径,可以随便设置

name为需要填的名字

注:一个ORACLE数据库能够有一个或多个表空间

2.       创建用户

create user username identified by password default tablespace  name;

name为刚刚创建的表空间名

username填自己需要的用户名

password填自己需要的密码,口令不能太简单

3.       分配权限

grant connect,resource,dba to username;

4.       创建表

CREATE TABLE TEST.STUDENT (

         ID              NUMBER(18) PRIMARY KEY not null,

         NAME       VARCHAR2(40)

)          

TABLESPACE DATA01

  PCTFREE 10

  INITRANS 1

  MAXTRANS 255

  STORAGE

  (

    INITIAL 64K

    NEXT 1M

    MINEXTENTS 1

    MAXEXTENTS UNLIMITED

  );

 

其中TEST是模式名STUDENT 是表名DATA01是表空间名称。

PCTFREE:用于指定BLOCK中必需保留的最小空间的比例。

INITRANS参数确定为事务处理项预分配多少数据块头部的空间。当您预计有许多并发事务处理要涉及某个块时,可为相关的事务处理项预分配更多的空间,以避免动态分配该空间的开销。

MAXTRANS参数限制并行使用某个数据块的事务处理的数量。当您预计有许多事务处理将并行访问某个小表时,则当创建表时,应设置该表的事务处理项预分配更多的块空间,较高的MAXTRANS 参数值允许许多事务处理并行访问该表

 

5.       创建序列

CREATE SEQUENCE SEQ_STUDENT

MINVALUE 1

MAXVALUE 999999999999999999999999999

START WITH 1

INCREMENT BY 1

CACHE 20;

6.       创建索引

create index IDX_STUDENT_ID on TEST.STUDENT (ID)

  tablespace DATA01

  pctfree 10

  initrans 2

  maxtrans 255

  storage

  (

    initial 64K

    next 1M

    minextents 1

    maxextents unlimited

  );

7.       创建注释

  comment on column TEST.STUDENT.ID is 'ID';

8.       增加字段

ALTER TABLE 表名 ADD 字段名    字段类型;

 

添加字段时在数据量大的情况下如果有默认值,可能需要另外的操作。

ALTER TABLE student ADD sex   number(1) default 0;

设置sex默认为0,如果数据量较大,比如有1千万条数据,当新增个字段时,如果设置默认值,那么ORACLE会先修改之前的一千万条数据的这个字段的默认值。显然修改一千万条记录是需要一些时间的,这段时间内不能对该表做修改或删除的操作。所以为了减少锁表时间可以这样来做:

ALTER TABLE STUDENT ADD sex NUMBER(1);

 

--避免大量更新时锁全表,所以默认值这样设置。

 

DECLARE

       row_num NUMBER := 0;

BEGIN

       FOR c_test IN (SELECT ROWID rid FROM STUDENT  t ) LOOP

             UPDATE STUDENT  t SET t. sex  = 0 WHERE ROWID = c_test.rid;

             row_num := row_num + 1;

             IF MOD(row_num,1000) =0 THEN

                  COMMIT;

             END IF;

        END LOOP;

        COMMIT;

END;

 

Alter TABLE STUDENT  MODIFY sex DEFAULT 0 ;

9.       修改字段(字段名,类型,约束)

字段名修改

alter table tablename rename column oldname to newname

字段类型修改

alter table tablename modify columnname datetype;

字段约束修改

alter table tablename add constraint 约束名 约束类型 (约束列);

一般的约束如下:

alter table '表名'

add

--主键

constraint PK_字段/*此为命名规范要求*/ primary key(字段),

 

--唯一约束

constraint UK_字段 unique key(字段),

 

--默认约束

constrint DF_字段 default('默认值') for/**/ 字段,

 

--检查约束

constraint CK_字段 check(约束。如:len(字段)>1),

 

--主外键关系

constraint FK_主表_从表 foreign(外键字段) references 主表(主表主键字段)

 

 

10.   删除字段

ALTER TABLE  表名 DROP COLUMN 列名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值