oracle数据库-创建表空间

创建表空间

create tablespace tb_space
DATAFILE 'D:\xxx.DBF'
size 100M
AUTOEXTEND ON
PERMANENT

创建用户

create user testUser
IDENTIFIED BY 123456
default tablespace tb_space

授予用户权限

grant connect,resource to testUser;

登陆testUser

sqlplus testUser/123456

创建表

create table testTable(
    id number(15) not null,
    accountName varchar2(30) null,
    tname varchar2(50) null,
    money number(8,1) null,
    cztime Date default sysdate null,
    czr varchar2(20) not null,
    fjm char(3) null,
    --增加主键
    CONSTRAINT pk_id primary key(id)
);

在该表中,如果id需要设置为自增列,由于oracle没有自增列的设置,只有通过序列和触发器实现,代码如下:

--创建序列
create SEQUENCE seq_test_table increment by 1 start with 1 minvalue 1 maxvalue 9999999999 nocache order;
--创建触发器
create or replace trigger trigger_test_table
before insert
on testTable
for each row
begin
    select seq_test_table .nextval into:new.id from sys.dual;
end;

创建表还可以用查询一个表来创建新表,此方法也可以用于备份某个表

--将会创建new_table并复制testTable中的所有数据
create table new_table as select * from testTable;
--如果不复制数据,仅仅拷贝表结构
create table new_table as select * from testTable where 1=2;
--可以使用NOLOGGING选项来禁用重做日志,这样在插入一条新数据时候不会重做日志信息
create table new_table as select * from testTable NOLOGGING;
--使用以上方法创建的表不会复制testTable中约束条件以及默认值

表创建完成,可以对表进行修改,例如删除列,增加列,修改列属性等操作

--新增列
alter table testTable add newColum varchar2(20) not null;
--修改列
alter table testTable modify newColum varchar2(30) null;
/*删除列,有两种方法
1.直接删除
2.使用unused标记,在数据库空闲时使用
alter table table_name drop unused columns;
*/
alter table testTable drop newColum;
--如果存在相关约束则使用CASCADE CONSTRAINTS删除约束才能成功删除列
alter table testTable drop newColum CASCADE CONSTRAINTS;

重命名表可以使用RENAME或ALTER TABLE

--使用rename
rename testTable to new_testTable;
--使用alter table
alter table testTable rename to new_testTable;

为列添加约束可以在建表时候添加,也可以在表创建成功后添加

--建表时候
create table tb(
id number(9,0) not null,
sex char(1) not null,
CONSTRAINT pk_id primayr key(id) validate,
CONSTRAINT check_sex CHECK(sex in('1','0')) validate
);
--在建表后添加约束
alter table tb add CONSTRAINT pk_id primayr key(id);
--删除约束
alter table tb drop CONSTRAINT check_sex;
--修改约束名称
alter table tb rename CONSTRAINT check_sex to new_check_sex;

你可能感兴趣的:(数据库,oracle,数据库,oracle)