--author: luobin --data: 2012-05-05 1 orace 工具.开始--》程序--》oracle orachome90--》 application development--》sql* plus || sql* plus workSheet 2. ctl+r sqlplus || sqlplusw 1.2 oracel 企业图形管理器 开始 --》程序 --oracle--》oracle orachome90 --》enterprise manager console 1.3 是PL/Sql 2.show user; 3-- spool d:\ a.sql // 创建一个 a.sql 的文件 select * from emp; spool off; // 写入上面查询出来的结果 -- 4 create user dd identified by m123 5 connect meili/meili@ORACLEusers 6 disc disconnect 7 exit 8.查看所有的用户 select * from dba_users; select * from all_users; select * from user_users; 9 passw 修改自己的密码 10 @ d:\meili.sql 或则 start d:\meili.sql 11 edit d:\meili.sql; 12 修改别人的密码 要权限 是 dba 或者 alter user 这个权限 alter User fd identified by 新密码 password 用户名 然后输入新密码 13 select * from bi_mlk_alarm where prtusername ='&name'; 弹出一个输入值框 14 drop user 用户名 【cascade】 如果删除的用户创建了表 那就要用 cascade 删除级联的表 15 数据库中 有 140多种权限 16 权限分为 两种 一种 系统权限(用户对数据库中的相关权限 例如 create session) 二种 对象权限 ( 用户对其他用户的数据对象的访问操作权限) 17 数据对象 (表,视图 ,存储过程,序列,同义词,索引,游标,触发器 ,函数,包,类型) 18 connect 是一个角色 有7个权限 19 角色有分为两种 一种 自定义角色 一种是 预定角色 20 oracel的精华部分就是 权限和角色 21 erp 越复杂 企业就喜欢用oracle 22 create session 才是 用户登录的权限 只有 授予 connect 角色才能登录 23 connect resource dba 24 对象权限 select,insert update ,delete ,all(前四种) create Index, create view 25 看表结构 desc 表名称 26 赋对象权限 grant select on bi_mlk_alarm to luobing 然后查询的时候 采用 select * from meili.bi_mlk_luobing (meili:是一个方案) grant udpate on emp to luobing 如果添加 修改 查询删除 可以 用 grant all on bi_mlk_alarm to luobing 27 收回 权限 revoke select on emp from xiaoming 28 对权限的维护 --对像权限 给luobing select的权限后还希望 他有权限将这个权限 可以分享给别人 grant select on emp to luobing with grant option --如果是系统权限 grant connect to luobing with admin option 29 如果Scott 把luobing 把对emp表查询权限收回了 那么之前 luobing 分享给xiaoming的权限还存吗吗 ? grant select on emp to luobing with grant option; conn luobin/m123@ORACLE; grant select on emp to xiaoming; conn scott/tiger@ORACLE revoke select on emp from luobing conn xiaoming/m123@ORACLE; select * from scott.emp; //表和视图不存在 总结 oracle 而不采用株连活动来撤销系统权限 总结 oracle 采用株连活动来撤销对象权限 30 采用 profile(口令限制)管理用户口令 案例 指定该用户登录时最多可以输入3次密码的次数,否则锁定时间为 2天 步骤 创建 profile文件 create profile lock_account limit failed_login_attempts 3 password_lock_time 2; ----------固定 ----规则名称 -----------------------固定 -------------固定 --至少一天 不能是小数 然后应用 到luobing上面 set alter user luobing profile lock_account; 输入错误后 就被锁定了 然后解锁 alter user luobing account unlock; 需要dba 解锁 31 采用终止口令来 让用户定期来定期来修改密码 create profile myprofile limit password_life_time 10 password_grace_time 2; alter user luobing profile myprofile; 32 口令历史 如果希望用户在修改密码是不能使用以前以前使用过的密码,可以使用口令历史 create profile password_history limit password_life_time 10 password_grace_time 2 password_reuse_time 10 举例 密码 123 在修改的时候 不能重用 10天可以再用了 33 删除 规则 drop profile password_history [cascade] 级联的也会删除(如果已经分配给用户了) 33.5 查看规则的详情 select profile from dba_users where username='YOURUSER'; select * from dba_profiles where profile='low_limits'; 34 表的创建 名称 1字母开头 除 al保留 A_z 0-9 $ # 35 字符类型 char(2000) 定长 最大 2000 “小号”前4个 后又6个空格 身份证 就用 char 查询速 度极快 浪费空间,效率快 varchar(4000) 可变长 节省空间,效率低 clob(chatacter large object) 大对象 4G 36 数字类型 可以表示 小数和整数 number 范围是 10的 -38次方 number(5,2) 表示改数有5个有效数字 ,2位小数 999.99—— -999.99 number(5) 99999—— -99999 37 日期类型 date 包括 年月日和时分秒 timestamp 这是oracle9i对data数据类型的扩展 38 图片类型 声音 电影 4G 二进制 blob (我们一般是把图片和声音放在文件夹下在数据库中保存路径,如果安全性要高,就可以考虑保存的到数据库中) 40 建表 create table student(); 41 添加字段 alter table student add (classID number(2)); 42 修改字段类型 alter table student modify (xm varchar2(30)) 43 删除一个字段 (不能有数据 只能在) alter table students drop column sal; 44 修改表名 rename students to student; 45 删除表 drop table student; 46 添加数据 insert into student values('A001',); 47 oracle中默认的日期是 dd-MON-YY 48 修改日期的默认格式 alter session set nls_date_format='yyyy-mm-dd'; alter session set nls_date_format='dd-MON-yy'; 49 插入部门字段 insert into student(xh,xm,sex) values("","",""); 50 插入空值 insert into students(xh,xm,sex,birthday) values(5,"sdf","女",null); 51 查询空值 select * from students where birthday is null; select * from students where birthday is not null; 52 oracle 对于汉字,如果数据库字符编码为 GBK 占用2个字节,如果是UTF-8则占用3个字节。 53 设置一个字段为null update students set birthday=null where xh=1; 54 采用 delete 删除数据后 可以采用 rollback;回滚; 要立刻回滚中间不能有操作 否则 要用 回滚点 55 采用 savepoint aa;期间 不要用 commit 和exit 否则 保存点会释放 55.5 回滚到保存点 rollback to savepoint aa; (可以创建多个保存点) 56 有经验 的oracle管理员 一上来就 保存一个保存点 savepoint; 表示保存之前的工作; 57 oracle 可以有多个保存点 savepoint 58 删除表数据 可以用 delete 删除所有的记录,表结构还在,写日志,可以回复,速度慢 59 使用 truncate table student ;删除表中所有的记录,表结构还在,不写日志,无法恢复记录,速度快 60 采用 set timing on; 来打开计时器, 显示 每次操作的时间 61 insert into users (userid,username,userpss) select * from users; 将一个表中的数据复制给自己 必须 users表先存在 62 set timing off; 关闭 63 select * 和 select column 对于大量的数据 会有很明显的效果 64 取消重复行 distinct 65 oracle 区分 字符串中的大小写 66 在oracle中使用算术运算 + - * / select deptno,job,sal*13 from emp where ename='SMITH'; 67 给字段别名 采用 "" select ename,sal*13 "年工资" from emp; 必须用 “” 不能用 '' 68 在 oracle中 进行运算字段如果为null 怎个表达式的值就为null 此时用 nvl 69 避免上面null 参加运行 采用 nvl(comm,0)*13 如果comm 为空就用0替换,否则为自身 select ename,(sal+nvl(comm,0))*13 "年工资" from emp; 70 oracle 中查询 时间 只能用 默认的格式 dd-MON-yyy; select ename,hiredate from emp where hiredate>'1-1月-1982'; 71 查询的时候 多个条件用 and 72 like 查询 %:表示0个或者多个任意字符 _ :表示单个任意字符 73 查询首字母 为 S的员工 select * from emp where ename like 'S%'; 74 查询第三个字符为大写O 的员工 select * from emp where ename like '__O%'; 75采用 in 比 or 的效率高 in 是批量处理 76 查询 工资高于 500 或者 岗位为 MANAGEER 的雇员,同时还要姓名首写字母大写的J select * from emp where ename like 'J%' and (job='MANAGER' or sal>500); 77 部门号 升序 ,工资降序 select * from emp order by deptno asc,sal desc; 78 清屏 clear; 79 使用 列的别名 排序 查询每个人的年工资并降序 重点 注意 有“” 和没有“” 的区别有的时候 采用别名排序无效 错误:select ename,(sal+nvl(comm,0))*13 "年薪" from emp order by '年薪' desc; 正确:select ename,(sal+nvl(comm,0))*13 ff from emp order by ff desc; 查询每个部门的平均工资并降序 selct avg(sal) "avgSal" from emp group by deptno order by 'avgSal' desc; 80 使用别名的时候 如果是汉字 就要用 “” 如果是 英文 可以不用“” as 可有可无 81 数据的分组 max,min,avg,sum(求和),count(记录行数) 注意和 列的别名一起使用 别名不要用“” 82 查询最高工资和最低工资 select max(sal),min(sal) from emp; 83 查询 每个部门,每中岗位上的平均工资,和最高工资 select max(sal),avg(sal),deptno from emp group by deptno,job order by deptno; 83.5 多个分组后的 排序 如果不是分组中的列,采用“别名”排序没有效果,此时可以采用 ”原始列“来排序 排序无效:select deptno,job,max(sal),avg(sal) “avgSal” from emp group by deptno,job order by 'avgSal' desc; 排序有效: select deptno,job,max(sal),avg(sal) from emp group by deptno,job order by avg(sal) desc; 或者 不要使用 “” select deptno,job,max(sal),avg(sal) ss from emp group by deptno,job order by ss desc; 83.8 非多个分组后的排序 可以采用“别名”排序 84 显示平均工资低于2000的部门 select deptno,avg(sal) from emp group by deptno having avg(sal)>2000; 85 笛卡尔集 多表连接 where 的条件个数为 (n-1) 否则 会有笛卡尔集 就是 * * *; 86 采用between and 进行查询 员工工资的等级查询 (between and 不只是两个值之间的范围 可以一张含有 两个范围字段和其他多个附加字段的表) select e.ename,e.sal,g.grade from emp e,salgrade g where e.sal between g.losal and g.hisal; 87 采用多变连接查询 是排序 select e.ename,d.dname,e.sal from emp e,dept d where e.deptno=d.deptno order by d.deptno 88 自连接,就是在同一个表中连接查询; 查询每个员工的上级 select worker.empno,worker.ename,boss.ename from emp worker,emp boss where worker.mgr=boss.empno; 89 单行单列子查询:指返回单行单列数据的子查询语句;查询和smith同一部门的所有给员工 select * from emp e where e.deptno=(select deptno from emp where ename='SMITH'); 90 多行单列子查询:指放回多行单列数据的子查询 :查询 工作岗位在 10号部门的工作岗位的类型中的员工信息 select * from emp e where e.job in (select distinct job from emp where deptno=10); 90 采用all 多行子查询, 查询工资比30部门所有工资高的人 采用all 的时候 想想可以不可以用 max 代替 select * from emp e where e.sal >all(select sal from emp where deptno=30); select * from emp e where e.sal >(select max(sal) from emp where deptno=30); --效率高 91 采用 any 多行子查询, 查询工资比30部门任意工资高的人 采用 any的时候 想想可不可以 用 min代替 select * from emp e where e.sal >any(select sal from emp where deptno=30); select * from emp e where e.sal >(select min(sal) from emp where deptno=30); --效率高 92 单行多列子查询:查询和SMITH部门和岗位相同的的人 --重点 select * from emp e where (e.deptno,e.job)=(select deptno,job from emp where ename='SMITH'); 92.5 多行多列 的子查询 select * from emp e where (e.deptno,e.job) in(select deptno,job from emp ); 93 查询工资大于该个部门的平均工资的员工 select e.empno,e.ename,e.deptno,ee.mysal from emp e,(select deptno,avg(sal) mysal from emp group by deptno) ee where e.deptno=ee.deptno and e.sal>ee.mysal 83.5 查询工资大于每个部门平均工资的员工 select * from emp where sal>(select max(avg(sal)) from emp group by deptno) 94 在from 子句中使用子查询,这个子查询会作为一个视图来对待,因此也叫内嵌视图,在使用的时候必须给别名 (上面的ee" 就是) 95 给列取别名的时候 可以选用 as 给表取别名的时候 不要用“as” 95.5 如果在查询的时候 给列的别名 有 as “” 这样,在后面的查询中不好参与 条件的控制,此时不要“”就可以了 列名不要是 中文 (错误)select * from emp e,(select deptno,avg(sal) "mySal" from emp group by deptno) ee where ee.deptno=e.deptno and e.sal> 'mySal' (正确) select * from emp e,(select deptno,avg(sal) mySal from emp group by deptno) ee where ee.deptno=e.deptno and e.sal> mySal; 96 Oracle的分页查询 有三种 速度 分类 2 第一种是用 rownum分页 (不能用表别名点出来) 3 层 1 第二种是 采用rowid 4层 3 第三种是 采用分析函数来实现 1. rownum (如果有查询条件 或者 修改查询的列) 1不做,2控小行并改名,3控大行 select * from (select row_.*,rownum rn from (select empno,ename,sal from emp where sal>800 order by sal ) row_ where rownum<11) where rn>5; 1.5 rownum (如果没有有查询条件). select * from (select e.empno,e.ename,e.sal,rownum rn from emp e where rownum<11) where rn>5; 2.rowid (如果查询里面有 排序了,在最外面也要排序) select * from emp where rowid in (select rid from (select rownum rn,rid from (select rowid rid,sal from emp where sal>800 order by sal) where rownum<11) where rn>5) order by sal; select * from emp where rowid in (select rid from (select rownum rn,rid from (select rid from emp where sal>800 order by sal desc) rownum<11) where rn>5) order by sal; 3.采用分析函数 select * from (select e.*,row_number() over(order by sal) rk from emp e where e.sal>800) where rk<11 and rk>5 97 Oracle 规定 rownum只能用一次 98 where 条件后面不能用sum,max,min,avg 函数 having 后面可以用 order by 后面可以用 99 如果采用 rowid 分页查询 除了采用 group by 分组后 查不出来 rowid (但是可以查询出rownum 所以如果有 group by 分页 可以采用rownum分页 )其他的都可以 select distinct(job) job,rowid from emp 100 利用查询的结果来创建一张新表 (用于对想要操作的表中的数,又怕损坏表中的接口和数据安全) (重点) create table emp (id,ename,sal) as select empno,ename,sal from emp; 101 合并查询 (合并两个的select语句查询的结果) union:(取得两个结果的并集,会去掉重复的行) union all:(取得两个结果的并集,不会去掉重复的行) intersect:(取交集) minus: 取差集 () a) union :select ename,sal,job from emp where sal>2500 union select ename,sal,job from emp where job='MANAGER' b)union all select ename,sal,job from emp where sal>2500 union all select ename,sal,job from emp where job='MANAGER' c)intersect: select ename,sal,job from emp where sal>2500 intersect select ename,sal,job from emp where job='MANAGER' 102 采用 union 和union 和intersect和minus 远比 and ,in 的效率高 103 自己创建数据库 使用 Oracle 中自带的工具 Database Configuration Assistant (DBCA):数据库配置助手 104 java 连接oracle 在Myeclipse8.6里面的案例 105 使用to_date(); 进行日期格式数据的插入 默认的是MON insert into emp values(9996,'小红2','MANAGER',7782,to_date('1988/11/11','yyyy/mm/dd'),79.9,55.33,10); select * from bi_message where createtime=to_date('2012-8-22 18:17:57','yyyy-mm-dd hh24:mi:ss'); 106 如果一次要插入多行数据, 就可以采用一个 insert into 和一个select 语句来查询实现 这样可以进行行迁移和 1.如果 要插入的表不存在 可以采用 100 的方法 2.如果表存在了 可以采用下面的方法 create table emp3 (myId number(4), ename varchar2(50), myDeptno number(5)); insert into emp select empno,ename,deptno,sal from scott.emp; 107 采用子查询 更新数据 1.笨方法 update emp set job=(select job from emp where enmae='SMITH'),sal=(select sal from emp wehre ename='SMITH'),comm=(select comm from emp where ename='SMITH') where ename='SCOTT'; 2.好方法 update emp set (job,sal,comm)=(select job,sal,comm from emp where='SMITH') where ename=‘SCOTT’; 108 Oracle 中的事物 (是用于保存数据的相关性和完整性) 当oralce 执行事物的时候 会在表上建一个锁,表示此时只能有一个线程去访问这个条记录 防止其他用户修改表的结构和数据 109 如果在事物中有保存点 不能手动commit 和采用exit 否则 之前创建的保存点都会释放 110 Statement sm=ct.createStatement(); ct.commit(); ct.rollback(); 111 只读事务被创建后,之后的所有DML操作都不会被查询出来 采用 set transaction read only; 112 字符函数 lower 小写 upper 大写 length 长度 在where后可以用 substr(ename,1,3) 从第一个开始 截取三个 oralce中字符索引从1开始 SMITH --》SMI replace: select replace(ename,'A','我是老鼠') from emp 113 将名字变成 首字母大写,其余小写 select upper(substr(ename,1,1))||lower(substr(ename,2,length(ename)-1)) ename from emp select initcap(ename) from scott.emp 114 其语法为: Instr(string, substring, position, occurrence) 其中 string:代表源字符串; substring:代表想聪源字符串中查找的子串; position:代表查找的开始位置,该参数可选的,默认为 1; occurrence:代表想从源字符中查找出第几次出现的子串,该参数也是可选的,默认为1; 如果 position 的值为负数,那么代表从右往左进行查找。 返回值为:查找到的字符串的位置。 select ename,instr(ename,'T',1,2) from emp3 select TO_CHAR(SYSDATE,'DAY') from dual select TO_CHAR(SYSDATE,'D') from dual select to_char(sysdate,'day','NLS_DATE_LANGUAGE=AMERICAN') day from dual; 115 数学函数 round(n,[m]):将n四舍五入保留m位小数 select sal,round(sal,1) from emp2; trunc(n,[m]): 截取数字 select comm,trunc(comm,1) from emp2;select comm,trunc(comm,-1) from emp2; mod(m,n):取模 select mod(10,2)-->0 from dual,select mod(10,3) from dual --1 floor(n): 返回小于或者等于n的最大整数 select floor(comm),comm from emp ceil(n): 返回大于活等于n的最小整数 select ceil(comm),comm from emp sqrt(n) n的平方根 sign(n) 若n=0,则返回0,否则,n>0,则返回1,n<0,则返回-1 initcap(char) 把每个字符串的第一个字符换成大写 abs(n) 取n的绝对值 116 去掉余数 可以用 trun 和 floor 是一样 的 selelct trunc(sal/30),ename from emp ==> select floor(sal/30) from emp 117 abs 取绝对值 select abs(-13) from dual == 13 118 acos(n):返回数字的反余弦值 asin(n):反正弦值 atan(n):反正切 cos(n): 余弦值 exp(n):返回e的n次幂 log(m,n):返回对数 power(m,n):返回m的n次幂 119 日期函数 sysdate:返回系统的时间 add_months(d,n); 当前日期d后推n个月 last_day(d):返回指定日期所在月份的最后一天 //查询8个月前入职的员工 select * from emp where sysdate>add_months(hiredate,8); //查询服务年限满10年的员工 select * from emp where sysdate>=add_months(hiredate,12*10); //查询 入职天数 select floor(sysdate-hiredate) "入职天数",ename from emp; select tranc(sysdate-hiredate) "入职天数",ename from emp; //查询 入职日期为各个月的倒数第3天 select * from emp where hiredate=last_day(hiredate)-2; 120 转换函数 orace中隐形转换, ‘10’-->10 to_char(); yy yyyy mm dd hh12 8点-----》08 hh24 8点-----》20 mi ss ---> 9:显示数字忽略前面的0 0:显示数据,如位数不足用0不齐 .:指定位置显示 小数点 ,:指定位置显示逗号 ¥:人民币 $:美元 L:本地货币符号 C:在数字前面加国际货币符号 G:在指定位置显示组分隔符 D:在指定位置显示小数点号 121 查询是1980年入职的员工 select * from emp where to_char(hiredate,'yyyy')='1980'; select * from emp where to_char(hiredate,'mm')=12; 122 系统函数 sys_context terminal:当前回话客户所对应的终端的标识符 language: 语言 db_name:当前数据库名称 nls_date_format:当前回话所对应的日期格式 session_user:当前会中所对应的的数据库用户名 current_schema:当前会话客户所对应的默认方案名 host:返回数据库所对应的 select sys_context('userenv','db_name') from dual; -------------------》 数据库管理员 DBA 职责 1.安装和升级 oracle 数据库 2.建库建表建空间 视图,索引。。。。 3.指定和并实施 备份和恢复计划 4.数据库权限管理,调优,故障排除 5.对高级的dba,要求能参加项目开发,会编写sql语句 ,存储过程,触发器,规则,约束,包 124 管理数据库的用户主要是 sys 董事长> 和system 总经理 sys:拥有oracle的基表和视图,拥有 dba 数据库管理, sysdba系统管理员,sysoper 系统操作员 的角色和权限 system:存储次一级的数据如oracle的特性和工具的管理信息,和 dba,sysdba 角色权限 区别 1.存储的数据重要性不一样 2.权限不一样 sys 必须 利用 as sysdba 或者 as sysoper 不能用normal(标准)方式登录 125 sysdba 能够创建数据库 > sysoper不能创建数据库 >dba (前面的权限高) 126 system 默认登录角色是 dba (conn system/208833.x;) 如果用 conn system/208833.x as sysdba 登录结果和 sys 登录一样 127 sysdba 和 sysoper的权限区别 sysdba sysoper 能够 Startup/Shutdown 启动/关闭数据库 y y alter database open/mount/backup y y 改变字符集 y n 采用 create/drop database(创建/删除数据库) y n create spfile y y alter database archivelog(归档日志) y y alter database recover(完全和部分恢复数据库) y 只能完全恢复,不能执行部分恢复 拥有 restricted session(会话限制)权限 y y 可以让用户作为sys 用户连接 y 可以进行一些基本的操不能查看用户的数据 登录之后 sys public 128 管理员 还有,管理初始化参数 show parameter; 有 200多参数 有参数可以配置的 129 数据库表的 逻辑备份 物理备份 和 恢复 逻辑备份:采用 export工具将数据库对象的结构和数据导出到文件的过程。 逻辑恢复:值数据库对象被误操作而损坏后使用工具import利用备份文件将数据对象导 入到数据库的过程, 物理备份:即可在数据open 的状态下进行也可以在关闭数据库后进行,但是逻辑备份 和恢复只能在open的状态下进行 130 导出 分为三种 导出表,导出方案,导出数据库 导出使用 exp 命令 这命令 的选项有 userid:用于指定执行导出操作的用户名,口令,连接字符串 tables:用于指定执行导出操作的表 owner:用于指定执行导出操作的方案 full=y; 用于指定导出操作的数据库 inctype: 用于指定导出操作的增量类型 rows: 用于指定导出操作是否需要导出表中的数据 file: 用于指定导出的文件名 direct=y : 直接导出方式速度快 如果将表导出到磁盘:就是导出表 如果将一个用户所有的东西 ,表 ,数据,视图... 导出到磁盘: 叫导出方案(一个用户的所有都导出了) 如果将多个方案 导出到一个磁盘: 就加导出整个数据库 131 导出自己的表 exp userid=scott/tiger@oracl tables=(emp,emp2) file=d:\e1.emp 在导入和导出的时候,要到oracle目录的主目录下面的bin目录下去导 132 如果用户要导出其他方案的表,需要dba的权限或者 exp_full_database 的权限 比如 system 就可以导出scott的表 exp userid=sysytem/manager@orcl tables=(scott.emp) file=d:\sysytem_scott_emp.dmp 133 只导表的结构 不要表的数据 就是只要表的定义 rows=n exp userid=sysytem/manager@orcl tables=(scott.emp) file=d:\sysytem_scott_emp.dmp rows=n 134 如果导出的表的数据量比较大 采用 直接导出方式 exp userid=scott/tiger@oracl tables=(emp) file=d:\scott_emp.dmp direct=y 135 导出方案 指导出一个方案中的所有 视图,表 exp userid=scott/tiger@orcl owner=scott file=d:\kk.dmp 136 导出其他方案,需要dba 权限,或者是 exp_full_database 权限 例如system用户可以 导出任何方案 137 导出数据库:是指利用export导出所有的数据库中的对象和数据,要有改用户具有dba和 exp_full_database 权限 exp userid=system/manager@oracl full=y inctype=complete file=d:\orcl.dmp 138 导入也分为三种 导入表,导入方案 ,导入数据库 userid:用于指定执行导出操作的用户名,口令,连接字符串 tables:用于指定执行导出操作的表 formuser:用于指定原用户 touser:用于指定目标用户 file:用于指定导入的文件名 inctype: 用于指定执行导入操作的增量类型 rows: 用于指定导出操作是否需要导入表中的数据 direct=y : 直接导出方式速度快 ignore:如果表存在,则只导入数据 139 导入自己的表 imp userid=scott/tiger@orcl tables=(emp) file=d:\my_emp.dmp 140 导入其他用户的表, imp userid=system/manager@orcl tables=(emp) file=d:\my_emp.dmp 141 导入表到其他用户,要求有 dba权限或者 imp_full_database 权限 imp useri=system/manager@orcl tables=(emp) file=d:\my_emp.dmp touser=scott 142 导入表结构 不导入数据 imp userid=scott/tiger@orcl tables=(emp) file=d:\my_emp.dmp rows=n 143 导入数据 如果对象已经存在 imp userid=scott/tiger@orcl tables=(emp) file=d:\my_emp.dmp ignore=y 144 导入自己的方案 imp userid=scott/tiger@orcl file=d:\xx.dmp 145 导入其他方案 要求用户具有dba的权限 imp userid=system/manager@orcl file=d:\xx.dmp fromuser=system touser=scott 146 导入数据库 imp userid=system/manager full=y file=d:\xxx.dmp 147 数据字典 (存放在sys方案里面) 是oracle数据库中重要的组成部,提供了数据库的一些系统信息。 它是只读表(数据字典基表)和视图(数据字典视图)的集合,数据库字典的所有者为sys用户。用户只能在数据库字典上执行查询的操作,而其他的维护和修改都是由系统自动完成的 148 数据字典基表存储数据库的基本信息, 149 数据字典视图是基于数据字典基表建立的视图,普通用户可以通过查询系统数据字典视 图获取系统信息, 数据字典视图主要包括user_xxx,all_xxx,dba_xxx 三种类型 150 动态性能视图记载了例程启动后的相关信息