以管理员的身份登录
//创建 表空间
//要创建的文件不能先存在 但文件所需要的路径一定要先存在,即文件夹一定要先建立起来。
create tablespace my_data
logging
datafile 'F:\myOracTableSpa\my_data.dbf'
size 5m
autoextend on
next 5m maxsize 30m
extent management local;
//创建 临时表空间
//要创建的文件不能先存在, 但文件所需要的路径一定要先存在,即文件夹一定要先建立起来。
create temporary tablespace my_temp
tempfile 'F:\myOracTableSpa\my_temp.dbf'
size 5m
autoextend on
next 5m maxsize 30m
extent management local;
//创建用户
create user weiguo identified by liweiguo
default tablespace my_data
temporary tablespace my_temp;
//创建用户权限
grant dba,connect to weiguo;
以 weiguo/liweiguo 登录weiguoDb数据库,进行一般的数据库操作。
//解释说明
1, AUTOEXTEND表明是否自动扩展. OFF | ON 表示自动扩展是否被关闭.NEXT 表示数据文件满了以后,扩展的大小.
2, Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。
3, ORACLE可以创建的表空间有三种类型:
(1)TEMPORARY: 临时表空间,用于临时数据的存放;
创建临时表空间的语法如下:
CREATE TEMPORARY TABLESPACE "myTempSpa"......
(2)UNDO : 还原表空间. 用于存入重做日志文件.
创建还原表空间的语法如下:
CREATE UNDO TABLESPACE "myUndoSpa"......
(3)用户表空间: 最重要,也是用于存放用户数据表空间
可以直接写成: CREATE TABLESPACE "myTableSpa"......
4 , LOGGING 有 NOLOGGING 和 LOGGING 两个选项,
NOLOGGING: 创建表空间时,不创建重做日志.
LOGGING 和NOLOGGING正好相反, 就是在创建表空间时生成重做日志.
用 NOLOGGING时,好处在于创建时不用生成日志,这样表空间的创建较快,但是没能日志,数据丢失后,不能恢复,但是一般我们在创建表空间时,是没有数 据的,按通常的做法,是建完表空间,并导入数据后,是要对数据做备份的,所以通常不需要表空间的创建日志,因此,在创建表空间时,选 择 NOLOGGING,以加快表空间的创建速度.
5, EXTENT MANAGEMENT LOCAL 存储区管理方法
在Oracle 8i以前,可以有两种选择,一种是在字典中管理(DICTIONARY),另一种是本地管理(LOCAL ),从9I开始,只能是本地管理方式.因为LOCAL 管理方式有很多优点.
在字典中管理(DICTIONARY): 将数据文件中的每一个存储单元做为一条记录,所以在做DM操作时,就会产生大量的对这个管理表的Delete和 Update操作.做大量数据管理时,将会产生很多的DM操作,严得的影响性能,同时,长时间对表数据的操作,会产生很多的磁盘碎片,这就是为什么要做磁 盘整理的原因.
本地管理(LOCAL): 用二进制的方式管理磁盘,有很高的效率,同进能最大限度的使用磁盘. 同时能够自动跟踪记录临近空闲空间的情况,避免进行空闲区的合并操作。
2.2 创建,修改,删除表结构
//创建一个表结构
create table NEWTABLE
(
ID NUMBER not null,
NAME VARCHAR2(20),
AGE VARCHAR2(20) default 23 not null,
BIRTHDAY DATE
)
//修改一个表的结构的语法
alter table tablename add (column datatype [default value][null/not null],….);
alter table tablename modify (column datatype [default value][null/not null],….);
alter table tablename drop (column);
//添加一个列的信息
alter table test1 add ( name varchar2(30) default '卫国' not null);
//修改一个列的信息
alter table test1 modify (name varchar2(16) default '你好');
//删除一个列
alter table test1 drop column name;
// 删除表结构
删除test1表如下:drop table test1;
2.3 创建,修改,删除表数据
// 插入数据操作
INSERT INTO 表名(列名列表) VALUES(值列表);
insert into newTable(id,name)values (11,'卫国');
//修改数据操作
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
update newTable set age=13 where salary='1234';
update newTable set age=14,city='武汉' where salary='1234';
//删除数据操作
delete from newtable where salary='111' ;
delete 删除数据 最小单位是以一条记录为单位的。就是一个查询删除的过程,不用 * 符号。
//解释说明
truncate,delete,drop
1, truncate table 命令将快速删除数据表中的任何记录,但保留数据表结构。这种快速删除和delete from 数据表的删除全部数据表记录不相同,delete 命令删除的数据将存储在系统回滚段中,需要的时候,数据能够回滚恢复,而truncate 命令删除的数据是不能够恢复的。 truncate 操作 同没有where 条件的delete 操作十分相似。
2,truncate 不触发任何delete 触发器,当表被truncate 后,这个表和索引所占用的空间会恢复到初始大小,而 delete 操作不会减少表或索引所占用的空间。
3,drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态。