oracle之常用数据库对象

常用数据库对象

01 用户和表空间

一,前言
安装完Oracle之后系统为开发者提供了一些用户如SCOTT SYSTE SYS等用户,但是这都是系统给的,能不能自己创建用户呢。显然是可以的.第一次课里面说的Oarcle的数据是存在放到目录下的oraldata目录下的DBF文件里面
在这里插入图片描述
那么可以不可以创建自己的存放数据库的DBF文件呢,显然是可以
二、创建表空间
1、创建临时表空间

create temporary tablespace erp_temp 
tempfile 'D:\oracledata\erp_temp.dbf'      DBF文件的位置自定义
size 50m                                                  初始大小
autoextend on                                         大小自动增加
next 50m maxsize 20480m                     每次增加的大小和最大空间
extent management local[本地管理]/dictionary[数据字典管理];

2、创建表空间

create tablespace erp_data  
datafile 'D:\oracledata\erp_data.dbf' 
size 50m  
autoextend on  
next 50m maxsize 20480m ;

3、修改表空间
语法: alter tablespace 旧名称 rename to 新名称;

  alter tablespace newspace rename to myspace; 

4、删除表空间 并把包含的数据和约束删除
语法: drop tablespace 表空间名 [including contents and datafiles];

drop tablespace ERP_TEMP including CONTENTS AND DATAFILES;  

5、查看表空间

select * from v$tablespace;

三、创建和删除用户
1、创建用户

create user erp identified by erp    创建一个用户名为erp密码为erp的用户
default tablespace erp_data          默认的数据存放的表空间
temporary tablespace erp_temp;  临时的数据存放表空间

2、删除用户

 drop user erp;

四、赋予和取消户相关权限

1、添加权限

grant connect,resource,dba to erp;

2、取消权限

revoke connect,resource,dba from erp;

3、关于权限
权限指执行特定类型SQL 命令或访问其他对象的权利
角色是具有名称的一组权限的组合
常用系统预定义角色
①CONNECT:临时用户
②RESOURCE:更为可靠和正式的用户
③DBA:数据库管理员角色,拥有管理数据库的最高权限
4、开发中的注意点
在开发中,系统集成开发会用到其它系统要能查询当前系统的表的功能,这时候一般是创建一个新的用户给新用户查询的权限,而不会把当前系统的用户给别人。
grant select any table to test(用户名需要查询表的用户);使用用户test去访问别的用户下(如test2)的T表的时候select * from test2.T(表名);

02 数据库表table

一、前言
前面讲了scott用户下的四张表,Oracle也为用户提供了创建自定义表的功能,表是数据库存放数据的最小单元。
二、数据库表字段的常用数据类型
1、字符数据类型
①CHAR:存储固定长度的字符串
②VARCHAR2 :存储可变长度的字符串
2、数值数据类型
NUMBER:存储整数和浮点数,格式为NUMBER(p, s)

column_name NUMBER { p = 38, s = 0}
column_name NUMBER § {整数}
column_name NUMBER (p, s) {浮点数}

3、日期时间数据类型
①DATE:存储日期和时间数据
②TIMESTAMP:比DATE更精确
4、LOB数据类型
①BLOB:存储二进制对象,如图像、音频和视频文件
②CLOB:存储字符格式的大型对象如XML

三、创建表
1、设计要求:
•建立一张用来存储学生信息的表 字段包含学号、姓名、性别,年龄、入学日期、班级,email等信息
•具体要求1.学号是主键;2.姓名不能为空;3.性别默认值是男;4.年龄范围18—30岁;5.Email唯一

create table student(
     sno number(6),
    sname varchar2(8) ,
     sex char(2),
     age number(3),
	 enterdate date,
     clazz varchar2(10),
     email varchar2(20)
)

•以上写法的缺陷:1.学生编号可以相同,2.年龄的范围没有限制 ,3.姓名居然可以为空,4.邮箱不唯一
•解决方法
添加相关的约束-----后面讲到
2、语法

CREATE TABLE [schema.]table
	(column datatype [DEFAULT expr] ,);

3、注意点
在创建新表时,指定的表名必须不存在,否则将出错。
使用默认值:当插入行时如果不给出值,dbms将自动采用默认值。
在用Create语句创建基本表时,最初只是一个空的框架,用户可以使用insert命令把数据插入表中。
四、修改表
在基本表建立并使用一段时间后,可根据实际需要对基本表的结构进行修改
1、增加新的列用“alter table … add …”语句

alter table emp add address varchar(20)

注意:新增加的类不能定义为“not null”, 基本表在增加一列后,原有元组在新增加的列上的值都定义为空值。

2、删除原有的列用“alter table … drop…”语句,语法格式:alter table 表名 drop column 列名

alter table emp drop column address

3、修改字段数据类型“alter table…modify…”

alter table emp modify(job varchar(50))

4、修改列名

ALTER TABLE 表名 RENAME COLUMN  oldname TO newname;

5、修改表名

RENAME old_name TO new_name

6,查看表结构

Desc tablename

五、删除表
在基本表不需要时,可以使用“drop table”语句撤消。在一个基本表撤消后,所有的数据都丢弃。所有相关的索引被删除

drop table emp 
drop table emp cascade constraints

谨慎使用,特别是进入公司之后

六、oracle 中删除表 drop delete truncate的相同与区别

1、相同点,使用drop delete truncate 都会删除表中的内容
drop table 表名
delete from 表名(后面不跟where语句,则也删除表中所有的数据)
truncate table 表名
2、区别
首先delete 属于DML,当不commit时时不生效的
而truncate 和 drop 则是直接生效的,不能回滚。
truncate 和 delete 不删除表的结构,只是针对表中的内容删除
drop语句将删除表的结构,被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态.
truncate 会释放占用空间,而drop 和 delete不会。

3、速度:drop>truncate>delete
综上所述,可以得到一个问题,使用drop 和 truncate相对delete是危险的,当使用drop 和 truncate 时不能回滚。delete相对安全,可以回滚,并且commit以后才会提交,并且不会删除表结构,也不会释放表所占用的空间。

03 数据库表的约束constraints

一、前言
数据完整性约束

表的数据有一定的取值范围和联系,多表之间的数据有时也有一定的参照关系。在创建表和修改表时,可通过定义约束条件来保证数据的完整性和一致性。约束条件是一些规则,在对数据进行插入、删除和修改时要对这些规则进行验证,从而起到约束作用。
二、完整性约束分类
1.域完整性约束(非空not null,检查check)
2.实体完整性约束(唯一unique,主键primary key)
3.参照完整性约束(外键foreign key)
在这里插入图片描述
三、三种完整性的区别

域完整性约束:字段约束
实体完整性约束:行和行之间的约束
引用完整性约束:表和表之间的约束
约束的目地
在这里插入图片描述
四、主键结束的添加
1、定义:主键约束是数据库中最重要的一种约束。在关系中,主键值不可为空,也不允许出现重复,即关系要满足实体完整性规则。
2、特点:
•主键从功能上看相当于非空且唯一
•一个表中只允许一个主键
•主键是表中能够唯一确定一个行数据的字段
•主键字段可以是单字段或者是多字段的组合
•Oracle为主键创建对应的唯一性索引
3、添加方法一(创建表时就添加)

CREATE  TABLE t3(
id NUMBER(4)--primary key, 
constraint t3_pk primary key(id)
) 

4、添加方法二(如果表已经创建好了)
语法: ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY(列名);

实例 ALTER  TABLE STUDENT ADD CONSTRAINT PK_SID PRIMARY KEY(SID);

5、删除主键结束的方法
语法 ALTER TABLE 表名 DROP CONSTRAINT 主键名;

   实例 ALTER TABLE STUDENT DROP CONSTRAINT PK_SID;

6、查询主键的方法

 SELECT * FROM USER_CONSTRAINTS  WHERE table_name='STUDENT' AND CONSTRAINT_TYPE='P';

五、唯一约束的添加

1、特点
•唯一性约束条件确保所在的字段或者字段组合不出现重复值
•唯一性约束条件的字段允许出现空值,且可以多个空值
•Oracle将为唯一性约束条件创建对应的唯一性索引
2、添加方法一(在创建表时)

 CREATE TABLE EMPLOYEES(

            ID    NUMBER(6),

            NAME   VARCHAR2(25) NOT NULL UNIQUE,

            EMAIL   VARCHAR2(25),

            SALARY  NUMBER(8,2),

            HIRE_DATE DATE NOT NULL,

            CONSTRAINT EMP_EMAIL_UK UNIQUE(EMAIL)
          );

3、添加方法二(在创建表后)
语法:ALTER TABLE 表名 ADD CONSTRAINT 唯一约束名 UNIQUE (列名);

   实例:ALTER TABLE STUDENT ADD CONSTRAINT UQ_stuID UNIQUE (stuID);

4、删除约束的方法
语法 : ALTER TABLE 表名 DROP CONSTRAINT 约束名;

 实例:ALTER  TABLE  STUDENT DROP  CONSTRAINT  UQ_stuID;

5、查询唯一约束的方法

   SELECT * FROM USER_CONSTRAINTS  WHERE table_name='STUDENT' AND CONSTRAINT_TYPE='U';

六、检查约束的添加

1、特点
•Check约束用于对一个属性的值加以限制
•在check中定义检查的条件表达式,数据需要符合设置的条件
•在这种约束下,插入记录或修改记录时,系统要测试新的记录的值是否满足条件
2、添加方法一(创建表时)

CREATE TABLE EMP3

(    ID NUMBER(4) PRIMARY KEY,

    AGE NUMBER(2)  CHECK(AGE > 0 AND AGE < 100),

    SALARY NUMBER(7,2),

    SEX CHAR(1),

    CONSTRAINT SALARY_CHECK CHECK(SALARY > 0)
)

3、添加方法二(在创建表后)
语法:ALTER TABLE 表名 ADD CONSTRAINT 检查约束名 CHECK(列名 BETWEEN 15 AND 40);

实例:ALTER TABLE STUDENT ADD CONSTRAINT UQ_stuID CHECK(stuAge BETWEEN 15 AND 40);

4、删除约束的方法
语法 : ALTER TABLE 表名 DROP CONSTRAINT 约束名;

 实例:ALTER  TABLE  STUDENT DROP  CONSTRAINT  CK_stuID;

5、查询约束的方法

  SELECT * FROM USER_CONSTRAINTS  WHERE table_name='STUDENT' AND CONSTRAINT_TYPE='C';

七、非空结束的添加
1、特点
•确保字段值不允许为空
•只能在字段级定义
2、添加方法一(创建表时)

CREATE TABLE EMPLOYEES(

        EMPLOYEE_ID    NUMBER(6),

        NAME      VARCHAR2(25) NOT NULL,

        SALARY         NUMBER(8,2),

        HIRE_DATE      DATE CONSTRAINT EMP_HIRE_DATE_NN NOT NULL

    )

3,添加方法二(在创建表后)
语法:ALTER TABLE 表名 ADD CONSTRAINT 检查约束名 CHECK(列名 IS NOT NULL);

实例:ALTER TABLE STUDENT ADD CONSTRAINT NN_stuNAME CHECK(stuAge IS NOT NULL);

4、删除约束的方法
语法 : ALTER TABLE 表名 DROP CONSTRAINT 约束名;

实例:ALTER  TABLE  STUDENT DROP  CONSTRAINT  CK_stuID;

5、查询约束的方法

SELECT * FROM USER_CONSTRAINTS  WHERE table_name='STUDENT' AND CONSTRAINT_TYPE='C';

八、外键结束的添加

1、特点
•外键是表中的一个列,其值必须在另一表的主键或者唯一键中列出
•作为主键的表称为“主表”,作为外键的关系称为“依赖表”
•外键参照的是主表的主键或者唯一键
•对于主表的删除和修改主键值的操作,会对依赖关系产生影响,以删除为例:当要删除主表的某个记录(即删除一个主键值,那么对依赖的影响可采取下列3种做法:
①RESTRICT方式:只有当依赖表中没有一个外键值与要删除的主表中主键值相对应时,才可执行删除操作。
②CASCADE方式:将依赖表中所有外键值与主表中要删除的主键值相对应的记录一起删除
③SET NULL方式:将依赖表中所有与主表中被删除的主键值相对应的外键值设为空值
2、语法

  FOREIGN KEY (DEPTNO) REFERENCES DEPT(DEPTNO)
        [ON DELETE [CASCADE|SET NULL]]

如省略on短语,缺省为第一中处理方式
3、添加方式 一(在创建表时)

CREATE TABLE CITIES( 

CITYID INT PRIMARY KEY,

COUNTRYID INT REFERENCES COUNTRIES ON DELETE CASCADE
);

4、添加方式二(在创建表后)

ALTER TABLE EMP_TEST
ADD CONSTRAINT FK_EMP_DEPT_TEST FOREIGN KEY(DEPT) REFERENCES DEPT_TEST(DEPTNO) ON DELETE SET NULL;

5、外键解决的问题
在这里插入图片描述
九、创建约束的其它重点说明
在这里插入图片描述

04 序列sequence

一、作用
序列是oracle专有的对象,它用来产生一个自动递增的数列
二、创建序列的语法:

	 CREATE SEQUENCE 序列名
[INCREMENT BY n]
[START WITH n]
[{MAXVALUE/ MINVALUE n|NOMAXVALUE}]
[{
   
   CYCLE|NOCYCLE}]
[{CACHE n|NOCACHE}];

语法说明:
•1)INCREMENT BY用于定义序列的步长,如果省略,则默认为1,如果出现负值,则代表Oracle序列的值是按照此步长递减的。
•2)START WITH 定义序列的初始值(即产生的第一个值),默认为1。
•3)MAXVALUE 定义序列生成器能产生的最大值。选项NOMAXVALUE是默认选项,代表没有最大值定义,这时对于递增Oracle序列,系统能够产生的最大值是10的27次方;对于递减序列,最大值是-1。
•4)MINVALUE定义序列生成器能产生的最小值。选项NOMAXVALUE是默认选项,代表没有最小值定义,这时对于递减序列,系统能够产生的最小值是?10的26次方;对于递增序列,最小值是1。
•5)CYCLE和NOCYCLE 表示当序列生成器的值达到限制值后是否循环。CYCLE代表循环,NOCYCLE代表不循环。如果循环,则当递增序列达到最大值时,循环到最小值;对于递减序列达到最小值时,循环到最大值。如果不循环,达到限制值后,继续产生新值就会发生错误。
•6)CACHE(缓冲)定义存放序列的内存块的大小,默认为20。NOCACHE表示不对序列进行内存缓冲。对序列进行内存缓冲,可以改善序列的性能。
示例:

CREATE SEQUENCE emp_sequence
    INCREMENT BY 1 -- 每次加几个
    START WITH 1    -- 从1开始计数
    NOMAXVALUE      -- 不设置最大值
    NOCYCLE         -- 一直累加,不循环
    CACHE 10
    NOORDER;     --并行时取得序列的顺序

三、删除Oracle序列
语法是DROP SEQUENCE 序列名;
四、实际运用
1、查看序列值:
select 序列.nextVal (序列.currval) from dual
2、当向表中插入数据时:
insert into 表名 values(序列名.nextval,列1值,列2值, …);

05 索引index

一、为什么要使用索引
问题:
当数据库表中存在很多条记录,如大于10万条时,查询速度便成为一个问题
分析:
在字典中查询指定偏旁的汉字时,先查询目录中指定的偏旁位置,在查询指定笔画的汉字,找到汉字后根据页码找到汉字。在书中查询某内容时,首先在目录中查询所需知识点,然后根据目录中提供的页码找到要查询内容,大大缩短了查询时间。
解决:
可以建立类似目录的数据库对象,实现数据快速查询,这就是索引
二、索引的数据结构特点
索引类似字典的和课本目录,是为了加快对数据的搜索速度而设立的。索引有自己专门的存储空间,与表独立存放。
索引类型默认采用B树数据结构,数据全部集中在叶子节点
在这里插入图片描述
使用索引查询的实例分析
在这里插入图片描述

三、索引的作用及其它特点
索引的作用:在数据库中用来加速对表的查询,通过使用快速路径访问方法快速定位数据,减少了磁盘的I/O
索引创建以后,在用户撤销它之前并不会用到该索引的名字,但是索引在用户查询时会自动起作用。
索引的创建有两种情况
①用户可以创建自动索引: 当在表上定义一个PRIMARY KEY 或者UNIQUE 约束条件时,Oracle数据库自动创建一个对应的唯一索引.
②用户可以手动创建索引:使用PLSQL语法
四、创建和删除索引的语法
1、普通索引[重点]
在一列或者多列上创建索引.

CREATE INDEX 索引名 ON table (column[, column]...);

下面的索引将会提高对EMP表基于 ENAME 字段的查询速度.

CREATE INDEX  emp_last_name_idx ON emp(ename)

删掉 UPPER_LAST_NAME_IDX 索引.

DROP INDEX upper_last_name_idx;

2、位图索引
作用:对于性别,岗位类似的取值比较少的列,采用位图索引效果更好

 语法:CREATE BITMAP INDEX INDEX_EMP_JOB ON EMP(JOB DESC) 

五、开发中使用索引的要点

  1. 索引数据可能要占用大量的存储空间。
  2. 索引改善检索操作的性能,但降低数据插入、修改和删除的性能。在执行这些操作时,DBMS必须动态地更新索引。
    3.限制表中索引的数目。索引越多,在修改表时对索引做出修改的工作量越大
  3. 并非所有数据都适合于索引。唯一性不好的数据(如省)从索引得到的好处不比具有更多可能值的数据(如姓名)从索引得到的好处多
  4. 索引用于数据过滤和数据排序。如果你经常以某种特定的顺序排序数据,则该数据可能是索引的备选。
  5. 可以在索引中定义多个列(如省加城市),这样的索引只在以省加城市的顺序排序时有用。如果想按城市排序,则这种索引没有用处。
    六、关于索引使用的总结【不要瞎用】
    1.索引可以提高查询的速度
    2.索引也要占据单独的空间
    3.索引不是越多越好,索引越多,占据的空间也越多
    4.索引会降低添加 更新 删除的效率,因为进行这些操作时需要重新维护索引
    5.经常要排序的order by,经常出现在where子句中的字段可以创建索引
    6.系统会自动给主键和唯一字段创建索引
    7.创建索引后,并不需要显式的指定使用某个索引,而是在进行查询时使用了对应列,索引自动起作用

06 视图view

一、视图的定义及作用
1、定义
视图是从若干基本表和(或)其他视图构造出来的表。
在创建一个视图时,只是存放的视图的定义,也即是动态检索数据的查询语句,而并不存放视图对应的数据
在用户使用视图时才去求相对应的数据。所以视图被称作“虚表”
2、作用
可以限制对数据的访问,可以给用户授予表的特定部分的访问权限而不是整个表的访问权限。
可以使复杂的查询变的简单。在编写查询后,可以方便地重用它而不必知道他的基本查询细节。
提供了对相同数据的不同显示
二、视图的创建和删除
1、创建单表视图

CREATE VIEW MYVIEW1
AS
SELECT * FROM EMP;

2、创建或 修改一个单表视图

CREATE OR REPLACE VIEW MYVIEW2
AS
SELECT EMPNO,ENAME,JOB,SAL,DEPTNO
FROM EMP
WHERE DEPTNO >=20

3、使用视图添加和修改数据

   INSERT INTO MYVIEW1 (EMPNO,ENAME,SAL)VALUES(9999,'AAAA',3000);

4、为视图添加相关权限

CREATE OR REPLACE VIEW MYVIEW2
AS
SELECT EMPNO,ENAME,JOB,SAL,DEPTNO
FROM EMP
WHERE DEPTNO >=20
WITH CHECK OPTION  // 设置视图只能操作WHERE条件的数据
WITH READ ONLY  // 设置视图只能读

5、删除视图

DROP VIEW MYVIEW4;

6、统计视图

CREATE OR REPLACE VIEW MYVIEW4
AS
SELECT DEPTNO 部门编号,DNAME 部门名称,AVG(SAL) 平均工资,MAX(SAL) 最高工资,COUNT(*)人数
FROM EMP E
JOIN DEPT D USING(DEPTNO)
WHERE DEPTNO IS NOT NULL
GROUP BY DEPTNO,DNAME
ORDER BY AVG(SAL)
WITH READ ONLY;

7、基于其它视图的视图

CREATE OR REPLACE VIEW MYVIEW5
AS
SELECT * FROM MYVIEW4
WHERE 部门编号=10 

三、视图的总结
在这里插入图片描述

07 事务

一、事务的宏观特点

1.事务是指作为单个逻辑工作单元执行的一组相关操作。

2.这些操作要求全部完成或者全部不完成。
二、事务和锁的理解
当执行事务操作时(dml语句),oracle会在被作用的表上加锁,防止其它用户修改表的结构。这里对我们的用户来讲是非常重要的。
三、使用事务的原因
保证数据的安全有效。
四、事务的四个特点
1.原子性(Atomic):事务中所有数据的修改,要么全部执行,要么全部不执行。

2.一致性(Consistence):事务完成时,要使所有所有的数据都保持一致的状态,换言之:通过事务进行的所有数据修改,必须在所有相关的表中得到反映。

3.隔离性(Isolation):事务应该在另一个事务对数据的修改前或者修改后进行访问。

4.持久性(Durability):保证事务对数据库的修改是持久有效的,即使发生系统故障,也不应该丢失
五、事务的开始和结束
在oracle中,没有事务开始的语句。一个Transaction起始于一条DML(Insert、Update和Delete )语句,结束于以下的几种情况:
1.用户显式执行Commit语句提交操作或Rollback语句回退。

2.当执行DDL(Create、Alter、Drop)语句事务自动提交。

3.用户正常断开连接时,Transaction自动提交。

4.系统崩溃或断电时事务自动回退。

六、事务的几个重要操作
1.设置保存点 savepoint a

2.取消部分事务 rollback to a

3.取消全部事务 rollback
实例

SAVEPOINT aa;
DELETE FROM protype WHERE ptid=8;
SAVEPOINT bb;
DELETE FROM protype WHERE ptid=9;
ROLLBACK TO bb;

七、事务的提交和回滚
1.Commit表示事务成功地结束,此时告诉系统,数据库要进入一个新的正确状态,该事务对数据库的所有更新都以交付实施。每个Commit语句都可以看成是一个事务成功的结束,同时也是另一个事务的开始。

2.Rollback表示事务不成功的结束,此时告诉系统,已发生错误,数据库可能处在不正确的状态,该事务对数据库的更新必须被撤销,数据库应恢复该事务到初始状态。每个Rollback语句同时也是另一个事务的开始。

3.一旦执行了commit语句,将目前对数据库的操作提交给数据库(实际写入DB),以后就不能用rollback进行撤销。

4.执行一个 DDL ,DCL语句或从 SQL*Plus正常退出,都会自动执行commit命令。

八、数据提交和回滚的三种状态
提交或回滚前数据的状态
1.以前的数据可恢复

2.当前的用户可以看到DML操作的结果

3.其他用户不能看到DML操作的结果

4.被操作的数据被锁住,其他用户不能修改这些数据
提交后数据的状态
1.数据的修改被永久写在数据库中.

2.数据以前的状态永久性丢失.

3.所有的用户都能看到操作后的结果.

4.记录锁被释放,其他用户可操作这些记录.
回滚后数据的状态
1.语句将放弃所有的数据修改

2.修改的数据被回退.

3.恢复数据以前的状态.

4.行级锁被释放.

08导入导出

一、为什么要使用导入导出
1,数据备份

2,数据迁移

二、使用exp导出imp导入【重点掌握】
使用exp导出数据
exp位置为\ORACLE_HOME\BIN
导出dmp文件
支持三种导出方式:

1.表方式导出一个指定表

2.用户方式导出属于一个用户的所有对象,它是默认选项

3.全数据库方式导出数据库中所有对象,只有DBA可以

使用imp导入数据

Imp位置为\ORACLE_HOME\BIN
相关命令

EXP导出: 有三种主要的方式(完全、用户、表)
1、完全

 EXP SYSTEM/123456 BUFFER=64000 FILE=D:\FULL.DMP FULL=Y

如果要执行完全导出,必须具有特殊的权限
2,用户模式

  EXP MYSER/123456 BUFFER=64000 FILE=D:\MYUSER.DMP OWNER(MYUSER)

这样用户MYSER的所有对象被输出到文件中。
3,表模式

 EXP MYSER/123456 BUFFER=64000 FILE=D:\MYSER.DMP OWNER(MYSER) TABLES=(PERSON)

这样用户MYSER的表PERSON就被导出

IMP导入: 具有三种模式(完全、用户、表)

1 、完全:

  IMP SYSTEM/123456 BUFFER=64000 FILE=C:\FULL.DMP FULL=Y

2 、 用户模式:

  IMP MYUSER/123456 BUFFER=64000 FILE=D:\MYUSER.DMP FROMUSER=MYUSER  TOUSER=MYUSER  IGNORE=Y

这样用户MYUSER的所有对象被导入到文件中。必须指定FROMUSER、TOUSER参数,这样才能导入数据。
3 、表模式:

 IMP MYUSER/123456 BUFFER=64000 FILE=D:\MYUSER.DMP TABLES=(PERSON)

这样用户MYUSER的表PERSON就被导入。
三、使用PLSQL导入导出
在这里插入图片描述
在这里插入图片描述
基本语法和实例:
Oracle Export/ Oracle Import

扩展名dmp

1.使用的就是exp/imp命令

2.二进制文件,无法查看

3.可以跨平台,效率高、使用最广

SQL Inserts

1.扩展名sql

2.可使用记事本等查看,效率不如第一种

3.适合小数据量导入导出

4.不能导出blob、clob等字段

PL/SQL Developer

1.扩展名pde

2.PL/SQL Developer的自有文件格式,只能使用该软件来导入导出

3.很少使用

Guess you like

Origin blog.csdn.net/weixin_43303023/article/details/122500693