oracle常用指令(自整理)

Oracle数据库登录 :sqlplus system/123456 as sysdba;

sqlplus sys/123456@ip地址:1521/orcl as sysdba

   

切换用户:conn dsjjg/123456 as sysdba;

创建用户:create user dsjjg identified by 123456;

修改密码:alter user dsjjg identified by 1234567;

删除用户:drop user  dsjjg;

删除用户及对象: drop user dsjjg cascade;

授权角色权限 :  grant  connect resource dba to dsjjg;

只授予登录权限: grant create session to wzwz

 

  1. grant connect,resource to demo;  
  2. grant create any sequence to demo;  
  3. grant create any table to demo;  
  4. grant delete any table to demo;  
  5. grant insert any table to demo;  
  6. grant select any table to demo;  
  7. grant unlimited tablespace to demo;  
  8. grant execute any procedure to demo;  
  9. grant update any table to demo;  
  10. grant create any view to demo;  

 

 

撤销权限 :  revoke  connect resource dba to dsjjg;

 

启动监听:lsnrctl start

查看监听:lsnrctl status

停止监听:lsnrctl stop

数据导出:

  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=(system,sys)

 

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

  exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2)

 

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

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

 

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

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

 

  数据导入

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

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

 

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

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

 

  2 d:\daochu.dmp中的表table1 导入

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

 

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

 

  注意:

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

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

 

附录一:

 给用户增加导入数据权限的操作

 第一,启动sql*puls

 第二,以system/manager登陆

 第三,create user 用户名 IDENTIFIED BY 密码 (如果已经创建过用户,这步可以省略)

 第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,

   DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,

      DBA,CONNECT,RESOURCE,CREATE SESSION  TO 用户名字 

 第五, 运行-cmd-进入dmp文件所在的目录

      imp userid=system/manager full=y file=*.dmp

      或者 imp userid=system/manager full=y file=filename.dmp

 

索引的创建

如果某表的某个字段有主键约束和唯一性约束,则Oracle 则会自动在相应的约束列上建议唯一索引。数据库索引主要进行提高访问速度。

索引的创建原则:

 1、索引应该经常建在Where 子句经常用到的列上。如果某个大表经常使用某个字段进行查询,并且检索行数小于总表行数的5%。则应该考虑。

 2、对于两表连接的字段,应该建立索引。如果经常在某表的一个字段进行Order By 则也经过进行索引。

 3、不应该在小表上建设索引。

优缺点:
 1、索引主要进行提高数据的查询速度。 当进行DML时,会更新索引。因此索引越多,则DML越慢,其需要维护索引。 因此在创建索引及DML需要权衡。

创建索引:
 单一索引:Create Index <Index-Name> On <Table_Name>(Column_Name);

 复合索引: Create Index i_deptno_job on emp(deptno,job); —>在emp表的deptno、job列建立索引。

  select * from emp where deptno=66 and job='sals' ->走索引。

  select * from emp where deptno=66 OR job='sals' ->将进行全表扫描。不走索引

  select * from emp where deptno=66 ->走索引。

  select * from emp where job='sals' ->进行全表扫描、不走索引。

  如果在where 子句中有OR 操作符或单独引用Job 列(索引列的后面列) 则将不会走索引,将会进行全表扫描。

 

 

猜你喜欢

转载自blog.csdn.net/qq_37823979/article/details/82982677