Oracle基本操作

Oralce基本操作说明

一、 创建表空间

SYS用户在CMD下以DBA身份登陆:

在CMD中打sqlplus /nolog

然后再conn / as sysdba

注意点:

1.如果在PL/SQL 等工具里打开的话,直接修改下面的代码中[斜体加粗部分]执行

2.确保路径存在,比如【D:\oracle\oradata\Oracle9i\】也就是你要保存文件的路径存在

/*分为四步 */

/*第1步:创建临时表空间  */

create temporary tablespace user_temp  

tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf' 

size 50m  

autoextend on  

next 50m maxsize 20480m  

extent management local;  

 

/*第2步:创建数据表空间  */

create tablespace test_data  

logging  

datafile 'D:\oracle\oradata\Oracle9i\user_data.dbf' 

size 50m  

autoextend on  

next 50m maxsize 20480m  

extent management local;  

 

/*第3步:创建用户并指定表空间  */

create user username identified by password  

default tablespace user_data  

temporary tablespace user_temp;  

 

/*第4步:给用户授予权限  */

grant connect,resource,dba to username;  

二、 表对象操作

1、创建表格是带主键索引

create table accounts(

id number primary key,

balance number

);

2、有命名主键名

create table accounts(

id number,

balance number,

constraint accounts_pk primary key(id)

);

3、删除主键约束

alter table accounts drop constraint sys_c003063;

4、向表中添加主键约束

alter table accounts add constraint pk_accounts primary key(id);

5、索引的创建

完整语法如下:

CREATE (UNIQUE|BITMAP) INDEX [用户名.]索引名 ON [用户名.]表名 (列名 [ ASC | DESC], [列名 [ ASC | DESC]]...)

[ TABLESPACE 表空间名 ]

[ PCTFREE 正整型数 ]

[ INITRANS 正整型数 ]

[ MAXTRANS 正整型数 ]

[ 存储子句 ]

[ LOGGING | NOLOGGING ]

[ NOSORT ]

例子:

create unique index my_index on MyTest_Table(id asc, name desc);

alter table MyTest_Table

add constraint uk_index

unique(id,name);

6、创建check约束

create table test1234(
id number primary key,
phone varchar2(12) constraint chk_test1234 check(regexp_like(phone,'^029[0-9]{8}')));

3、创建外键

alter table barwork

add constraint fk_barwork

foreign key(record_no)references catalog(record_no);

4、创建自增主键

需要定义一个自定义序列

create sequence emp_sequence

increment by 1 –每次加几个

start with 1 –从1开始计数

nocycle  --一直累加,不循环

nocache  --不建缓冲区

创建一个触发器

create trigger my_trigger before

insert on example for each row when(new.id is null)

begin

select emp_sequence.nextval into: new.id from dual;

end;

一般的做法是直接是insert语句中操作,而不是创建触发器,创建触发器不容易维护。

insert into example(id,name)values(emp_sequence.nextval,’test’);

三、 数据导入导处操作

A)、数据导出:

 

  1、 将数据库TEST完全导出,用户名system 密码manager 导出到D\daochu.dmp

 

  exp system/manager@TEST file=d\daochu.dmp full=y

 

  2、 将数据库中system用户与sys用户的表导出

 

  exp system/manager@TEST file=d\daochu.dmp owner=systemsys

 

  3、 将数据库中的表table1 table2导出

 

  exp system/manager@TEST file=d\daochu.dmp tables=table1table2

 

  4、 将数据库中的表table1中的字段filed1"00"打头的数据导出

 

  exp system/manager@TEST file=d\daochu.dmp tables=table1) query=\" where filed1 like '00%'\"

 

  上面是常用的导出,对于压缩我不太在意,用winzipdmp文件可以很好的压缩。

 

  不过在上面命令后面 加上 compress=y  就可以了

B)、数据的导入

 

   1、将D\daochu.dmp 中的数据导入 TEST数据库中。

 

  imp system/manager@TEST  file=d\daochu.dmp

 

  上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。

 

  在后面加上 ignore=y 就可以了。

 

  d\daochu.dmp中的表table1 导入

 

  imp system/manager@TEST  file=d\daochu.dmp  tables=table1

 

  基本上上面的导入导出够用了。不少情况我是将表彻底删除,然后导入。

 

  注意:

 

  你要有足够的权限,权限不够它会提示你。

 

  数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。

四、 备份脚本

exp scott/tiger@libdata file=c:\scott%date:~4,10%.dmp

set path=C:\Program Files\WinRAR

cd %path%

C:\Program Files\WinRAR\rar.exe a Data%date:~4,10%.rar *%date:~4,10%.dmp

del *%date:~4,10%.dmp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值