暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle创建表空间和表

知识共鸣 2019-03-20
788

创建表空间和表

ORACLE物理上是由磁盘上的以下几种文件:数据文件和控制文件和LOGFILE/logfile构成的

oracle中的表就是一张存储数据的表。表空间是逻辑上的划分。方便管理的。

数据表空间 (Tablespace) 

存放数据总是需要空间, Oracle把一个数据库按功能划分若干空间来保存数据。当然数据存放在磁盘最终是以文件形式,所以一盘一个数据表空间包含一个以上的物理文件

数据表在仓库,我们可能有多间房子,每个房子又有多个货架,每架又有多层。 我们在数据库中存放数据,最终是数据表的单元来存储与管理的。

数据文件以上几个概念都是逻辑上的, 而数据文件则是物理上的。就是说,数据文件是真正“看得着的东西”,它在磁盘上以一个真实的文件体现

1、创建表空间

格式:create  tablespace  表空间名 datafile  "数据文件名"  size  表空间大小[如:20m]

例子:create  tablespace  data_test  datafile  "D:01.dbf"  size  20m;

2.建好tablespace,就可以建用户了,并指定用户默认的表空间

格式:create  user  用户名  identified  by  密码  default  tablespace 表空间名;

例子:create  user  test  identified  by  test123  default  tablespace  sp001;

3.授权给新用户

格式:grant  connect , resource,dba to test; //test用户分配connect,resource,dba角色

格式:grant  create session  to  test; //允许用户登录数据库权限

格式:grant  create table  test; //允许用户创建表权限

格式:grant  unlimited tablespace  test; //允许用户在其他表空间随意建表

4.创建数据库表(student,course,score表)

 

5.创建约束则使用如下命令:

格式:alter  table  表名  add  constraint  约束名  约束内容。


oracle建表、建主键、外键基本语法

创建表格语法:  

 

增加主键

alter table 表名 add constraint 主键名 primary key (字段名1);

增加外键

alter table 表名 add constraint 外键名 foreign key (本表字段名)  references 关联表 (关联表字段名);

在建立表格时就指定主键

 

主键和外键一起建立: 

 

有哪些约束条件

创建表时可以给字段加上约束条件 例如非空 NOT NULL ,不允许重复 UNIQUE ,关键字 PRIMARY KEY ,按条件检查 CHECK (条件), 外键 REFERENCES 表名(字段名)

创建表的例子:

 

添加约束:

1. primary key  

格式:alter table 表名 add constraint 约束名 primary key(字段名);

2. foreign key  

格式:alter table 表名 add constraint 约束名 foreign key(字段名) references dept(字段名);  

3. check  

格式:alter table 表名 add constraint 约束名 check (sex in ("F","M"));  

4. not null  

格式:alter table 表名 modify 字段名constraint 约束名 not null;  

5. unique  

格式:alter table 表名 add constraint 约束名 unique(字段名);  

6. default  

格式:alter table 表名 modify 字段名char(2) default "M";

查看表约束信息

格式:select * from user_constraints where table_name="表名";

修改表:

1.重命名

格式:rename  原表名  to  新表名;  

2.清除表中所有数据

格式:truncate  table 表名

格式:delete from 表名;

格式:delete * from 表名;

3.删除表  

格式:drop table 表名;

修改

1.添加列

格式: alter  table  表名  add  字段名 字段类型(长度);  

2.删除列

格式:alter  table  表名  drop  column  字段名

3.修改列 

格式:alter  table  表名  modify  字段名 字段类型(长度);   

格式:alter  table  表名  modify  hiredate  default  sysdate+1; //修改默认值

4.禁用约束

格式:alter  table  表名  disable constraint  约束名;  

5.启用约束

格式:alter  table  表名  enable constraint  约束名;  

6.向列添加注释

格式:comment  on  column  表名.字段名  is  "注释";  

 

创建表空间分为四步:

第一步:创建临时表空间

create temporary tablespace 临时表空间名 tempfile "文件名路径" size 50m autoextend on next 50m maxsize 20480m extent management local;

第二步:创建数据表空间  

create tablespace 表空间名 logging datafile "文件名路径"size 50m autoextend on next 50m maxsize 20480m extent management local;

第三步:创建用户并指定表空间

create user 用户名 identified by 密码 default  tablespace  表空间名 temporary tablespace 临时表空间名;

第四步:给用户授予权限

grant  connect , resource to 用户名;

//以后以该用户登录,创建的任何数据库对象都属于user_temp user_data表空间,

这就不用在每创建一个对象给其指定表空间了

撤权: revoke  权限...  from  用户名;

删除用户命令drop  user 用户名 cascade;

建立表空间: create tablespace  表空间名 datafile "文件名路径" size  500m  uniform  size 128k;  //指定区尺寸为128k,如不指定,区尺寸默认为64k;

删除空的表空间,但是不包含物理文件
drop tablespace  表空间名称;
删除非空表空间,但是不包含物理文件
drop tablespace 表空间名称 including contents;
删除空表空间,包含物理文件
drop tablespace tablespace_name including datafiles;
删除非空表空间,包含物理文件
drop tablespace tablespace_name including contents and datafiles;
如果其他表空间中的表有外键等约束关联到了本表空间中的表的字段,就要加上cascade constraints

drop tablespace 表空间名称 including contents and datafiles cascade constraints;

建立UNDO表空间 create undo tablespace  表空间名 datafile "文件名路径" size  500m ; #注意:在OPEN状态下某些时刻只能用一个UNDO表空间,如果要用新建的表空间,必须切换到该表空间: alter system set undo_tablespace=表空间名;

建立临时表空间:create temporary tablespace 临时表空间名 tempfile"文件路径名" size 50m

 

改变表空间状态

1.使表空间脱机

alter  tablespace 表空间名  offline;

如果是意外删除了数据文件,则必须带有recover选项

alter  tablespace  表空间名 offline  for  recover;

2.使表空间联机

alter  tablespace 表空间名 online;

3.使数据文件脱机

alter  database  datafile  3  offline;

4.使数据文件联机

alter  database  datafile  3  online;

5.使表空间只读

alter  tablespace  表空间名  read  only;

6.使表空间可读写

alter  tablespace 表空间名 read  write;


扩展表空间

首先查看表空间的名字和所属文件

select  tablespace_name,file_id,file_name,round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name;

1.增加数据文件

alter  tablespace  表空间名 add datafile "文件名路径" size 1000m;


2.手动增加数据文件尺寸

alter database datafile "文件名路径" resize  4000m;

3.设定数据文件自动扩展

alter  database datafile "文件名路径" autoextend on next 100m maxsize 10000m;

以上就是个人整理出来的Oracle创建表空间和表,供大家参考和学习。

文章转载自知识共鸣,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论