日期:2014-05-16  浏览次数:20460 次

个人oracle初学笔记
//修改会话格式;
alter session set nls_date_format='yyyy-mm-dd';

//用系统管理员,查看当前数据库有几个用户连接:

SQL> select username,sid,serial# from v$session;

//如果要停某个连接用

SQL> alter system kill session sid,serial#;


//启动或停止监听;
lsnrctl start/stop;

//启动或停止实例;
net start/stop oracleserviceORA10G;

//约束字段输入内容
alter table stu modify sex char(2)check(sex in ('男',‘女’));

------------------------------------------------------------------------------------
//删除表中的一个字段;
alter table stu drop column XX;

//修改表中的一个字段
alter table [表名]  rename column 旧的字段名 to 新的字段名;
alter table [表名]  modify column not null、、、;
//修改表所属表空间
alter table table_name move tablespace tablespace_name;
-------------------------------------------------------------------------------------

//用户加锁就是不让被加锁的用户连接数据库;
alter user test account lock;

//约束(constraint)
   主键约束 --  每个表要有主键,唯一的标识一行数据  primary key;
   非空约束     not null;
   唯一性约束   unique;
   外键约束     references 外键表的字段;
   检查约束     check(字段 in/between and);

//在加约束的同时给约束取名:
alter table student add constrait 约束名 check(sex in('男','女'))

//删除约束:
alter table student drop constraint 约束名;

//撤销对象权限
revoke select on stu from ll;

//创建用户并分配表空间;
create user mven identified by OracleUserMven
default tablespace mven
temporary tablespace mven_temp;

//删除用户;
drop user army cascade

//查看一个用户有哪些权限;
select * from dba_tab_privs/dba_role_privs where grantee=upper('ll');

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 用户名字   ----------------------------------------用户可以赋于他什么权限;



//decode用法
select a.studentid,studentname,subjectname,decode(sign(mark-60),1,'及格',-1,'不及格',0,'刚好') from 表;

//删除表时。应该注意的要点;
drop table books;的指令会将表放到回收站里用 。
flashback table "BIN$1Oiy3qm/QJubov1BwBUOgw==$0" to before drop;//就能恢复原来被你删除的表。
删除表:
drop table books purge;是绕过回收站,彻底删除
建议你先
purge recyclebin;
清除当前用户的回收站,不会影响其他用户的回收站

//创建序列(sequence)-----------------------------------------------------------第三天里有讲;
create sequence seq1 with start(初始值) 0 increment(步长) by 1 maxvalue 100 minvalue 0 cycle(到100后回到1开始);

用法:select seq1.nextval,studentid from student;

//删除序列;
drop sequence seq1;

//同义词
  create synonym mtest for mk.test; //为表建立的
                       //可以为任何对象建立同义词
  select * from mtest; //相当于select * from mk.test;

//查数据库中所有的用户;
select user#,name,password from user$;

------------------------------------------------------------------------------------
//数据导出:
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 将数据库中的表inner_notify、notify_staff_relat导出
   exp aichannel/aichannel@TESTDB2 file= d:\data\newsmgnt.dmp tables=(inner_notify,notify_staff_relat)

4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
  exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"

上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。
也可以在上面命令后面 加上 compress=y 来实现。

--------------------------------------------------------------------------