在scott用户下面。
默认的scott用户是被锁定的,先解锁就能登陆上了。
使用下面的语句解锁scott:
alter user scott account unlock;
解锁之后可能会要求你修改密码:
alter user scott identified by tiger;
再登陆:
sqlplus scott/tiger
就能登陆了。
登陆后 select from tab;
就能看到emp表了。
补充一下:
在windows下面你是看不到emp表的文件的,oracle的数据都是存在在数据文件中的,不是一个表提个文件的,而这个数据库文件直接是不可以编辑的。
--
以上,希望对你有所帮助。
我考虑原因是我之前的删除的老的表空间时,还有残留,导致现在的问题发生,我之前删除旧表空间是用ORACLE客户端直接删除的。我从服务器上emp将数据库备份下来,现在想导入本地机器上,所以我把以前的老数据库和用户删除了,重新添加用户和表空间,随之导入备份的数据库,可导完后发现,所有的表前面都加了个用户,以至于我想用的话,还用在表前面加上:用户表名才能用。
1
select bdname,max(sal) from emp a,dept b where adeptno=bdeptno group by bdname2
select ename,hiredate,decode(mod(to_char(hiredate,'yyyy'),12),4,'鼠',5,'牛',6,'虎',7,'兔',8,'龙',9,'蛇',10,'马',11,'羊',0,'猴',1,'鸡',2,'狗',3,'猪') from emp
Oracle10g以前数据导入导出提供有imp/exp命令,10g以后提供了新的导入导出命令expdp/impdp。虽然exp/imp已经很好用了,但是唯一的确定是速度太慢,如果1张表的数据有个百千万的,常常导入导出就长时间停在这个表这,但是从Oracle 10g开始提供了称为数据泵新的工具expdp/impdp,它为Oracle数据提供高速并行及大数据的迁移。唯一的区别是:imp/exp可以在客户端调用,但是expdp/impdp只能在服务端,并且生成的备份文件只能存在服务器里面。文笔水平有限,不多罗嗦开始写具体的例子,以备以后之用。
实现目的:把WANGLIPO用户下的所有对象导入到新建用户EXPDPTEST用户。
步骤:
1:创建EXPDPTEST用户。因为还不习惯命令 *** 作直接在客户端上进行创建;2:创建逻辑目录,最好以SYSYTEM等管理员创建。由于该命令不会在 *** 作系统上创建真正的目录,所以要直接手动创建一个同名的目录,同时确保该目录可读写 *** 作。命令:create directory dump_test as '/u01/oracle10g';(select from dba_directories;可以查看已存在的所有目录)3:给EXPDPTEST用户赋予在指定目录的 *** 作权限。最好以SYSTEM等管理员赋予。命令:grant read, write on directory dump_test to expdptest4:按用户导出,命令如下:
expdp wanglipo/111111@orcl schemas=wanglipo dumpfile=expdpdmp DIRECTORY=dump_test;导出结束后会生成数据文件和日志文件
5:开始导入同样按用户导入命令如下:
impdp expdptest/111111@orcl DIRECTORY=dump_test DUMPFILE=expdpdmp REMAP_SCHEMA=wanglipo:expdptest;6: 至此导入结束
附录一些资料:
一、创建逻辑目录,该命令不会在 *** 作系统创建真正的目录,最好以system等管理员创建。
create directory dpdata1 as 'd:\test\dump';二、查看管理理员目录(同时查看 *** 作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错)select from dba_directories;
三、给scott用户赋予在指定目录的 *** 作权限,最好以system等管理员赋予。
grant read,write on directory dpdata1 to scott;四、导出数据
1)按用户导
expdp scott/tiger@orcl schemas=scott dumpfile=expdpdmp DIRECTORY=dpdata1;2)并行进程parallel
expdp scott/tiger@orcl directory=dpdata1 dumpfile=scott3dmp parallel=40 job_name=scott33)按表名导
expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdpdmp DIRECTORY=dpdata1;4)按查询条件导
expdp scott/tiger@orcl directory=dpdata1 dumpfile=expdpdmp Tables=emp query='WHERE deptno=20';5)按表空间导
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespacedmp TABLESPACES=temp,example;6)导整个数据库
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=fulldmp FULL=y;五、还原数据
1)导到指定用户下
impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdpdmp SCHEMAS=scott;2)改变表的owner
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdpdmp TABLES=scottdept REMAP_SCHEMA=scott:system;3)导入表空间
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespacedmp TABLESPACES=example;4)导入数据库
impdb system/manager DIRECTORY=dump_dir DUMPFILE=fulldmp FULL=y;5)追加数据
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdpdmp SCHEMAS=system TABLE_EXISTS_ACTION=append;----------------------------Expdp/Impdp的相关参数----------------------------EXPDP命令行选项
1 ATTACH
该选项用于在客户会话与已存在导出作用之间建立关联语法如下ATTACH=[schema_name]job_name
Schema_name用于指定方案名,job_name用于指定导出作业名注意,如果使用ATTACH选项,在命令行除了连接字符串和ATTACH选项外,不能指定任何其他选项,示例如下:
Expdp scott/tiger ATTACH=scottexport_job2 CONTENT
该选项用于指定要导出的内容默认值为ALL
CONTENT={ALL | DATA_ONLY | METADATA_ONLY}
当设置CONTENT为ALL 时,将导出对象定义及其所有数据为DATA_ONLY时,只导出对象数据,为METADATA_ONLY时,只导出对象定义Expdp scott/tiger DIRECTORY=dump DUMPFILE=adumpCONTENT=METADATA_ONLY
3 DIRECTORY
指定转储文件和日志文件所在的目录
DIRECTORY=directory_object
Directory_object用于指定目录对象名称需要注意,目录对象是使用CREATE DIRECTORY语句建立的对象,而不是OS 目录Expdp scott/tiger DIRECTORY=dump DUMPFILE=adump建立目录:
CREATE DIRECTORY dump as ‘d:dump’;
查询创建了那些子目录:
SELECT FROM dba_directories;
4 DUMPFILE
用于指定转储文件的名称,默认名称为expdatdmpDUMPFILE=[directory_object:]file_name [,…]
Directory_object用于指定目录对象名,file_name用于指定转储文件名需要注意,如果不指定directory_object,导出工具会自动使用DIRECTORY选项指定的目录对象Expdp scott/tiger DIRECTORY=dump1 DUMPFILE=dump2:admp5 ESTIMATE
指定估算被导出表所占用磁盘空间分方法默认值是BLOCKSEXTIMATE={BLOCKS | STATISTICS}
设置为BLOCKS时,oracle会按照目标对象所占用的数据块个数乘以数据块尺寸估算对象占用的空间,设置为STATISTICS时,根据最近统计值估算对象占用空间Expdp scott/tiger TABLES=emp ESTIMATE=STATISTICSDIRECTORY=dump DUMPFILE=adump
6 EXTIMATE_ONLY
指定是否只估算导出作业所占用的磁盘空间,默认值为NEXTIMATE_ONLY={Y | N}
设置为Y时,导出作用只估算对象所占用的磁盘空间,而不会执行导出作业,为N时,不仅估算对象所占用的磁盘空间,还会执行导出 *** 作
Expdp scott/tiger ESTIMATE_ONLY=y NOLOGFILE=y7 EXCLUDE
该选项用于指定执行 *** 作时释放要排除对象类型或相关对象EXCLUDE=object_type[:name_clause] [,…]
Object_type用于指定要排除的对象类型,name_clause用于指定要排除的具体对象EXCLUDE和INCLUDE不能同时使用Expdp scott/tiger DIRECTORY=dump DUMPFILE=adup EXCLUDE=VIEW8 FILESIZE
指定导出文件的最大尺寸,默认为0,(表示文件尺寸没有限制)9 FLASHBACK_SCN
指定导出特定SCN时刻的表数据
FLASHBACK_SCN=scn_value
Scn_value用于标识SCN值FLASHBACK_SCN和FLASHBACK_TIME不能同时使用Expdp scott/tiger DIRECTORY=dump DUMPFILE=admpFLASHBACK_SCN=358523
10 FLASHBACK_TIME
指定导出特定时间点的表数据
FLASHBACK_TIME=”TO_TIMESTAMP(time_value)”
Expdp scott/tiger DIRECTORY=dump DUMPFILE=admp FLASHBACK_TIME=“TO_TIMESTAMP(’25-08-2004 14:35:00’,’DD-MM-YYYY HH24:MI:SS’)”
11 FULL
指定数据库模式导出,默认为N
FULL={Y | N}
为Y时,标识执行数据库导出
12 HELP
指定是否显示EXPDP命令行选项的帮助信息,默认为N当设置为Y时,会显示导出选项的帮助信息
Expdp help=y
13 INCLUDE
指定导出时要包含的对象类型及相关对象
INCLUDE = object_type[:name_clause] [,… ]
14 JOB_NAME
指定要导出作用的名称,默认为SYS_XXX
JOB_NAME=jobname_string
15 LOGFILE
指定导出日志文件文件的名称,默认名称为exportlogLOGFILE=[directory_object:]file_name
Directory_object用于指定目录对象名称,file_name用于指定导出日志文件名如果不指定directory_object导出作用会自动使用DIRECTORY的相应选项值
Expdp scott/tiger DIRECTORY=dump DUMPFILE=admp logfile=alog16 NETWORK_LINK
指定数据库链名,如果要将远程数据库对象导出到本地例程的转储文件中,必须设置该选项
17 NOLOGFILE
该选项用于指定禁止生成导出日志文件,默认值为N
18 PARALLEL
指定执行导出 *** 作的并行进程个数,默认值为1
19 PARFILE
指定导出参数文件的名称
PARFILE=[directory_path] file_name
20 QUERY
用于指定过滤导出数据的where条件
QUERY=[schema] [table_name:] query_clauseSchema 用于指定方案名,table_name用于指定表名,query_clause用于指定条件限制子句QUERY选项不能与 CONNECT=METADATA_ONLY,EXTIMATE_ONLY,TRANSPORT_TABLESPACES等选项同时使用
Expdp scott/tiger directory=dump dumpfiel=admpTables=emp query=’WHERE deptno=20’
21 SCHEMAS
该方案用于指定执行方案模式导出,默认为当前用户方案
22 STATUS
指定显示导出作用进程的详细状态,默认值为0
23 TABLES
指定表模式导出
TABLES=[schema_name]table_name[:partition_name][,…]
Schema_name用于指定方案名,table_name用于指定导出的表名,partition_name用于指定要导出的分区名
24 TABLESPACES
指定要导出表空间列表
25 TRANSPORT_FULL_CHECK
该选项用于指定被搬移表空间和未搬移表空间关联关系的检查方式,默认为N
当设置为Y时,导出作用会检查表空间直接的完整关联关系,如果表空间所在表空间或其索引所在的表空间只有一个表空间被搬移,将显示错误信息当设置为N时, 导出作用只检查单端依赖,如果搬移索引所在表空间,但未搬移表所在表空间,将显示出错信息,如果搬移表所在表空间,未搬移索引所在表空间,则不会显示错误信息
26 TRANSPORT_TABLESPACES
指定执行表空间模式导出
27 VERSION
指定被导出对象的数据库版本,默认值为COMPATIBLE
VERSION={COMPATIBLE | LATEST | version_string}
为COMPATIBLE时,会根据初始化参数COMPATIBLE生成对象元数据;为LATEST时,会根据数据库的实际版本生成对象元数据version_string用于指定数据库版本字符串调用EXPDP使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录因此,使用EXPDP工具时,必须首先建立DIRECTORY对象并且需要为数据库用户授予使用DIRECTORY对象权限
-------------------------------------应用-------------------------------------Data Pump 反映了整个导出/导入过程的完全革新。不使用常见的 SQL 命令,而是应用专用 API(direct path api etc) 来以更快得多的速度加载和卸载数据。
1Data Pump 导出 expdp
例子:
sql>create directory dpdata1 as '/u02/dpdata1';sql>grant read, write on directory dpdata1 to ananda;$expdp ananda/abc123 tables=CASES directory=DPDATA1 dumpfile=expCASESdmp job_name=CASES_EXPORT$expdp ananda/abc123 tables=CASES directory=DPDATA1dumpfile=expCASES_%Udmp parallel=4 job_name=Cases_Exportinclude/exclude 例子:
include=table:"in('DB','TS')"
或者include=table:"like '%E%'"
或者include=function,package,procedure,table:"='EMP'"或者exclude=SEQUENCE,TABLE:"IN ('EMP','DEPT')"2Data Pump 导入 expdp
1)从expdp中获取数据源 expdmp
2)复制某个数据库中的一个schema到另一个数据库中。
3) 在同一个数据库中把一个schema中所有的对象复制到另一个schema中。
例子:
1)impdp 的数据源是expdp 导出来的DMP文件
impdp ananda/abc123 directory=dpdata1 dumpfile=expCASESdmp job_name=cases_import2)复制某个数据库中的一个schema到另一个数据库中。
--1newwork_link为目标数据库建立的database_link,(用户test 需要grant exp_full_database to TEST; )create public database link TOLINK
connect to TEST identified by oracle
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10020199)(PORT = 1521)))
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)';
--2impdp在目标数据库服务器上执行 只能低版本向高版本impimpdp network_link=TOLINK schemas=test remap_schema=test:link23) 在同一个数据库中把一个schema中所有的对象复制到另一个schema中。
--1创建连接自己的database link:
create public database link system_self connect to system identified by "system" using 'orcl';数据库链接已创建。
--2复制hr schema到test schema:
impdp system/system network_link=system_self schemas=hr remap_schema=hr:test
--注释
--select |字段名1,字段名2 from 表名;
--1)
--查询|检索|获取 所有员工的所有信息
--查询的数据: 员工的所有信息
--数据的来源:员工表 emp
--条件:
select from emp;
--2)
--查询所有的员工名字
select ename from emp;
--3)
--查询所有的员工编号和员工名称,员工上级的编号
--查询的数据: empno,ename,mgr
--数据的来源:员工表 emp
select empno,ename,mgr from emp;
--4)
--查询所有部门部门编号
select deptno from dept;
--5)
--查询出所有员工所在的部门的部门编号
select distinct deptno from emp;
--对查询数据进行去重(非字段去重) distinct
--6)
--查询出所有存在员工的部门的部门编号,以及员工名称
select deptno,ename from emp;
select distinct sal,deptno from emp;
--7)
--查询表达式,结果是表达式的值,显示的字段名就是表达式,计算值
select 1+1 from emp;
select 'a' from emp;
--8)
--给字段取别名 select 字段1 (as) 别名1,字段2 别名2 from 表名 别名; 表的别名不能加as
--查询所有员工的名称(别名为:名字),员工编号(编号)
--别名默认变大写,别名中的内容原封不动出现 ""->中的内容原封不动出现
select 123+456 "get sum" from emp;
select empno as 员工编号,ename "员工 姓名" from emp;
--9)
--字符串 '' 原封不动显示""
select distinct '哈哈' 笑 from emp e;
--10)
--字符串拼接 java中使用+ 这里使用||
--查询 ab--cd 表达式
select distinct 'ab-'||'-cd' from emp;
--查询所有的员工名字,给他们来一个前缀SXT
select 'sxt-'||ename from emp;
--11)
--伪列 : 不存在的列就是伪列 比如:表达式,字符串
--12)
--虚表: 在oracle中不存在的表,也可以说是这个表中没有任何数据,没有任何字段 --oracle中的虚表:dual
--虚表的作用:可以不使用distinct就可以去重的效果,因为里面没有数据,不会出现多行
select from dual;
select distinct 123456 from emp;
select 123456 from dual;
select sysdate from dual;
--比如查询当前时间
--13)
--给每一个员工在原来的基础上+100块钱奖金
--null 空
--null与数字运算,结果还为null
--null与字符串运算,结果原串
--nvl(参数1,参数2) 处理null使用 如果参数1为null,最终结果参数2,如果参数1不为null,最终的结果就是参数1
select comm 原奖金,comm||'100' 新奖金 from emp;
select comm 原奖金,nvl(comm,0)+100 新奖金 from emp
--一节结尾小练习
--查询所有员工的名字, 工种, 年薪(不带奖金)
select ename,job,sal12 年薪 from emp;
--查询所有员工的名字,工种,年薪(带12月奖金的)
select ename,job,(sal+nvl(comm,0))12 年薪 from emp;
--查询所有员工的名字, 工种, 年薪(带一次奖金的)
select ename,job,sal12+nvl(comm,0) 年薪 from emp;
--select |表达式|字符串|伪列|字段1 别名1,字段2 as 别名2 from 表名 别名|结果集 where 行过滤条件;
--执行流程: from-->where-->select确定结果集
-- 查询20部门的员工信息
--数据:
--来源: emp
--条件: deptno=20
select from emp where deptno=20;
-- > < >= <= = != <>
-- 查询工资大于1000的员工的姓名 工作岗位 工资 所属部门编号
--数据: ename,job,sal,deptno
--来源: emp
--条件: sal>1000
select ename,job,sal,deptno from emp where sal=1000;
-- 查询不在20部门工作的员工信息
select from emp where deptno != 20;
select from emp where deptno <> 20;
--where 中不能使用字段的别名
-- 查询员工的年薪大于20000的 员工名称、岗位 年薪
select ename 姓名,job 岗位,(sal+nvl(comm,0))12 sum from emp where ((sal+nvl(comm,0))12)>20000;
select ename 姓名,job 岗位,(sal+nvl(comm,0))12 sum from emp;
select 岗位, sum
from (select ename 姓名, job 岗位, (sal + nvl(comm, 0)) 12 sum from emp)
where sum > 20000;
-- 查询 any(任意一个) some(任意一个) all(所有)
select from emp where deptno = any(10,20);
select from emp where deptno = some(10,20);
--大于最小的
select from emp where sal> any(1500,2000); --薪资>1500的就可以
--大于最大的
select from emp where sal> all(1500,2000); --薪资>2000的就可以
-- 查询 工种不为’SALESMAN’的员工信息 (注意 内容区分大小写)
select from emp where not job ='SALESMAN';
--or或 and并且|都 not取反
-- -检索 工资 1600, 3000员工名称 岗位 工资
select ename,job,sal from emp where sal=1600 or sal=3000;
select ename,job,sal from emp where not (sal=1600 or sal=3000);
-- 工资在2000到3000之间的员工信息
select from emp where sal>2000 and sal<3000;
--between 小范围值 and 大范围的值 两者之间 <= >=
select from emp where sal between 1600 and 3000;
---查询 岗位 为 CLERK 且部门编号为 20的员工名称 部门编号,工资
select ename ,deptno ,sal from emp where job='CLERK' and deptno=20;
-- 查询 岗位 为 CLERK 或部门编号为 20的员工名称 部门编号,工资
select ename ,deptno ,sal,job from emp where job='CLERK' or deptno=20;
--查询 岗位 不是 CLERK 员工名称 部门编号,工资
select ename ,deptno ,sal,job from emp where job!='CLERK';
select ename ,deptno ,sal,job from emp where not job='CLERK';
select ename ,deptno ,sal,job from emp where job<>'CLERK';
-- 查询 岗位 不为 CLERK 并且部门编号不为 20的员工名称 部门编号,工资
select ename ,deptno ,sal,job from emp where job!='CLERK' and deptno!=20;
select ename ,deptno ,sal,job from emp where not (job='CLERK' or deptno=20);
--存在佣奖金的员工名称
select ename,comm from emp where not comm is null;
select ename,comm from emp where comm is not null;
--不存在奖金的员工名称
select ename,comm from emp where comm is null;
--集合
--Union,并集(去重) 对两个结果集进行并集 *** 作,不包括重复行同时进行默认规则的排序;
--Union All,全集(不去重) 对两个结果集进行并集 *** 作,包括重复行,不进行排序 ;
--Intersect,交集(找出重复) 对两个结果集进行交集 *** 作,不包括重复行,同时进行默认规则的排序;
--Minus,差集( 减去重复 ) 对两个结果集进行差 *** 作,不包括重复行,同时进行默认规则的排序
--查询工资大于1500 或 含有佣金的人员姓名
select ename,sal,comm from emp where sal>1500 or comm is not null;
select ename,sal,comm from emp where sal>1500;
select ename,sal,comm from emp where comm is not null;
--并集
select ename,sal,comm from emp where sal>1500
Union
select ename,sal,comm from emp where comm is not null;
select ename,sal,comm from emp where sal>1500
Union all
select ename,sal,comm from emp where comm is not null;
--查询显示不存在雇员的所有部门号。
--求出所有的部门号
select deptno from dept;
--有员工的部门号
select distinct deptno from emp;
select deptno from dept
Minus
select distinct deptno from emp;
-- 查询显示存在雇员的所有部门号。
select deptno from dept
Intersect
select distinct deptno from emp;
--模糊匹配 like %任意任意字符 _一个任意字符 一起使用
--查询员工姓名中包含字符A的员工信息
select from emp where ename like '%A%';
--完全匹配
select from emp where ename like 'SMITH';
--查询员工姓名以'A'结尾的员工信息
select from emp where ename like 'A%';
--查询员工姓名中第二个字母为A的员工信息
select from emp where ename like '_A%';
insert into emp(empno,ename,sal) values(1000,'t_%test',8989);
insert into emp(empno,ename,sal) values(1200,'t_tes%t',8000);
--escape('单个字符')指定转义符
--查询员工姓名中包含字符%的员工信息
select from emp where ename like '%B%%' escape('B');
--当执行插入数据,删除数据,修改的时候,默认开启事务
--可提交 commit
--可回滚 rollback
--多个人中任意一个值就可以
select from emp where sal=1600 or sal=3000 or sal=1500;
select from emp where sal in(1500,1600,3000);
--select 字段 from 结果集 where 行过滤条件 order by 排序字段 desc降序|asc升序(默认);
--执行流程: from--> where-->select-->排序
select empno,ename,sal from emp order by sal desc,empno asc;
--按照奖金升序排序,如果存在null值,所有的奖金null值的数据最先显示
select empno,ename,sal,comm from emp where deptno in (10,30) order by comm asc nulls first;
在命令行输入 Expdp –help 会得到帮助信息
一、常用导入方式(导出方式相似)
Impdp 用户名/密码@服务名 directory=dump_dir dumpfile=文件名 nologfile=true content=data_only tables=表名,表名
注:
dump_dir 为变量,以数据库用户定义
例:sql>create or replace directory dump_dir as ‘路径’ ///路径为服务器上的实际路径
文件名:是指导入数据的源备份文件
Content:是指导入全部、还是数据,可选值有 all,data_only 默认为all
Tables:列出表名列表,可使用通配符 %
Nologfile:是指是否记录日志文件(默认为false记录)
如果从一个用户数据对象导入到另外一个用户,则使用如下参数
REMAP_SCHEMA=source_schema:target_schema
目标用户如果在数据库中不存在,如果连接用户有足够权限,数据库会自动创建用户
二、还可实现数据库间数据导入
Impdp 用户名/密码@服务名 directory=dump_dir network_link=数据库链接 nologfile=true content=data_only tables=表名,表名
用户名/密码为目标数据库的用户与密码
数据库链接:为在目标数据建立的源数据库的数据库链接
以上就是关于刚刚学习数据库,用 的Oracle,请问那个emp表格在哪里啊全部的内容,包括:刚刚学习数据库,用 的Oracle,请问那个emp表格在哪里啊、导入数据库时表名前面有都有用户名 如何解决、ORACLE 对Oracle数据库基本表EMP和DEPT *** 作等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)