Oracle基础知识点(五)——表空间

表空间(Oracle独有)

表空间概述:
**表空间:**表存在的空间,一个表空间是指向具体的数据文件。创建表空间的目的:主要是为了提高数据库的管理性能。
**表空间属性:**一个数据库可以包含多个表空间,一个表空间只能属于一个数据库;一个表空间包含多个数据文件,一个数据文件只能属于一个表空间;表空间可以划分成更细的逻辑存储单元。

从逻辑的角度来看,一个数据库(database)下面可以分多个表空间(tablespace);一个表空间下面又可以分多个段(segment);一个数据表要占一个段(segment),一个索引也要占一个段(segment)。一个段(segment)由多个区间(extent)组成,一个区间又由一组连续的数据块(data block)组成。这连续的数据块是在逻辑上是连续的,有可能在物理磁盘上是分散的。


那么从物理的角度上看,一个表空间由多个数据文件组成,数据文件是实实在在存在咋的磁盘上的文件,这些文件是由Oracle数据库操作系统的block组成的。

**Segment(段):**段时指占用数据文件空间的通称,或数据库对象使用的空间的集合;段可以有表段、索引段、回滚段、临时段和高速缓存段等。
**Extent(区间):**分配给对象(如表)的任何连续块叫区间;区间也叫扩展,因为当它用完已经分配的区间后,再有新的记录插入就必须再分配新的区间(即扩展一些块);一旦区间分配给某个对象(表、索引及簇),则该区间就不能再分配给其它的对象。

创建表空间

  • 创建表空间必须使用system用户创建,语法如下:
create tablespace ts_yk(表空间名)
	datafile 'E:\YK.DBF'  // 指定指向的数据文件路径
	size 10m     // 表空间大小为10M
	autoextend on next 2m   // 自动扩展,每次扩展2M
	maxsize  unlimited;     // 最大扩展量没有限制
  • 创建用户时要指定默认的表空间:
 	创建用户指定默认表空间:
 	create user zhangsan identified by 123 default tablespace ts_yk;
 	修改用户默认表空间:
 	alter user zhangsan default tablespace ts_xx;
  • 查看系统表空间:
		查看表空间:
			select * from v$tablespace
 	查看用户默认表空间:
 		select username,dafault_tablespace  from dba_users where username='SCOTT';
 	注意:这里的用户名SCOTT必须是大写。

表结构的操作

1. 创建表:

		语法:
			create table 表的名称(字段名称1 数据类型, 字段名称2 数据类型 );
		
		举例:创建学生表,字段和类型如下所示:
		字段				字段类型	        说明
		id					  整型		    	number
		name 			     字符型		 	   varchar2
		sex 				 字符型			    char(2)
		birthday		     日期型			     date
		score			     小数型			   number(3,1)
		resume(简历)  	    大文本型	         clob
		
		代码:
			create table student(
				id number,
				name varchar2(64),
				sex	char(2),
				brithday date,
				score number(3,1),
				resume clob
			);

2. 修改表
使用alter table 语句添加、修改或删除列的语法

1)添加列基本语法:
	语法:
	alter table TABLENAME add(columnname datatype);
	alter table 表名 add(列名(字段名) 列类型(字段类型));
	例如:给学生表添加班级编号
		alter table student add(class_id number);

2)修改列基本语法:
	语法:
		alter table TABLENAME modify(columnname datatype);
		alter table 表名 modify(字段名  字段类型);
 	例如:学生姓名变成varchar2(30)
 		alter table student modify(name varchar2(30));

3. 删除列:

  • 删除多列语法
	语法:
		alter table TABLENAME drop column COLUMNNAME;
		alter table 表名 drop column 列名;
	例如:删除学生表的score字段
		alter table student drop column score;
		alter table student drop(score);

4. 修改表的名称:

	语法:
		rename OldTableName to NEWTableName;
		rename 表名 to 新表名;
	例如:把学生表名student修改成stu
		SQL>rename student to stu;

5. 修改列名

	语法:
		alter table 表名 rename column 旧列名 to 新列名;
	例如:把学生表中的resume修改成intro
		SQL>alter table stu rename column resume to intro;

6. 查看表结构基本语法:

语法:
	desc TABLENAME;
	desc 表名;

7. Oracle表的管理–添加数据

	语法:使用insert语句向表中插入数据
		insert into table[(column[,column...])] values(value[,value...]);
		insert into 表名[(列名1[,列名2...])] value(值[, 值2...]);
		插入全部数据:
		insert into 表名 values(值[, 值2...]);

	注意事项:
		1. 插入的数据应与字段的数据类型相同。
		2. 数据的大小应在列的规定范围内。
			例如:不能将一个长度为80的字符串加入到长度为40的列中。
		3. 在values中列出的数据位置必须与被加入的列的排列位置相对应。
		4. 字符和日期型数据应包含在单引号中。
		5. 插入空值,不指定或insert into table values(null);
		6. 给表的所有列添加数据时,可以不带列名直接添加values值。

例如:向student添加数据
insert into student(id,name,sex,brithday,fellowship,resume) values(1,'张三', '男', '11-11月-20', 23.34, 'hello');

insert into students values(2, '李四', '男', '12-11月-2020', 67.34, 'hello2');
展开阅读全文
©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值