oracle(一)

一、ORACLE 简介

1.1什么是 ORACLE

ORACLE 数据库系统是美国 ORACLE 公司(甲骨文)提供的以 分布式 数据
库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或
B/S 体系结构的数据库之一。
ORACLE 通常应用于大型系统的数据库产品。
ORACLE 数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通
用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个
完备关系的产品;作为分布式数据库它实现了 分布式 处理功能。
ORACLE 数据库具有以下特点:
(1)支持多用户、大事务量的事务处理
(2)数据安全性和完整性控制
(3)支持分布式数据处理
(4)可移植性
   

1.2ORACLE 体系结构

我们之前用的mysql图形化工具sqlyog小海豚,一个小油桶就是一个数据库,我们看到很多数据库(一个应用就会建立一个数据库)。oracle数据库是一个全局数据库。整个数据库就是一个数据库。

实例就是后台进程。你可以装一个oracle,但是你可以装多个实例,每个实例都有实例名,你连接这个实例名就是访问这个oracle,你连接那个实例名就是访问那个oracle。他就是吧oracle从磁盘当中读取到内存中,形成一股进程,每个进程之间是不会互相干预的,类似于你装了多个oracle。我们一般整个数据库装一个实例,很少会涉及到多实例的情况。

数据文件:就是存储数据的文件。oracle是通过表空间去管理这些数据文件。

表空间:就是一个或者多个数据文件的逻辑名称。一个数据文件有物理名称,比如adc.dbf,oracle中我们不会去直接操作dbf,而是操作表空间,表空间是对应着一个或多个数据文件。

表空间相当于mysql的一个库???

表空间就是吧oracle划分为很多区域,每个区域就是一个表空间,表空间下面有很多单位,表空间下面分为段,段下面分为区,区里面分为数据块,数据块里面分为磁盘块。

简而言之就是一个oracle数据库里面分为表空间,表空间下面分为段,段下面分为区,区里面分为数据块,数据块里面分为磁盘块。比如中国--》省--》市-->镇--》村。

用户:mysql的用户一登录就可以看到所有的数据库。oracle正好跟她相反,一个数据库下面有很多用户,在用户下面建立很多表,表是建立在用户上面的。

mysql和oracle的对应关系:

整个root用户下面的数据库就对应着一个oracle数据库。

oracle的用户对应着mysql数据库的概念。

用户、数据文件、表空间之间的关系。

实例之间是互不干扰的,用户有2个,LHB(李洪博),LSZ(李时珍)。

表空间与用户是一对多关系。实例和表空间和用户都是一对多的关系。

1.数据库

Oracle 数据库是数据的物理存储。这就包括(数据文件 ORA 或者 DBF 、控
制文件、联机日志、参数文件)。其实 Oracle 数据库的概念和其它数据库不一
样,这里的数据库是一个操作系统只有一个库。可以看作是 Oracle 就只有一个 大数据库。

2.实例

一个 Oracle 实例( Oracle Instance )有一系列的后台进程( Backguound Processes)
和内存结构( Memory Structures) 组成。一个数据库可以有 n 个实例。

3.数据文件(dbf

数据文件是数据库的物理存储单位。数据库的数据是存储在表空间中的,
真正是在某一个或者多个数据文件中。而一个表空间可以由一个或多个数据文件
组成,一个数据文件只能属于一个表空间。一旦数据文件被加入到某个表空间后,
就不能删除这个文件,如果要删除某个数据文件,只能删除其所属于的表空间才
行。

4.表空间

表空间是 Oracle 对物理数据库上相关数据文件( ORA 或者 DBF 文件)的逻
辑映射。一个数据库在逻辑上被划分成一到若干个表空间,每个表空间包含了在
逻辑上相关联的一组结构。每个数据库至少有一个表空间 ( 称之为 system 表空
)
每个表空间由同一磁盘上的一个或多个文件组成,这些文件叫数据文件
(datafile) 。一个数据文件只能属于一个表空间。

注:表的数据,是有用户放入某一个表空间的,而这个表空间会随机把这些表数据放到一个或者多个数据文件中。
由于 oracle 的数据库不是普通的概念, oracle 是有用户和表空间对数据进行
管理和存放的。但是表不是有表空间去查询的,而是由用户去查的。因为不同用
户可以在同一个表空间建立同一个名字的表!这里区分就是用户了!

5.用户

用户是在表空间下建立的。用户登陆后只能看到和操作自己的表 , ORACLE
的用户与 MYSQL 的数据库类似,每建立一个应用需要创建一个用户。

二、ORACLE 安装与配置

2.1VMware 挂载 windows server 2003

oracle不建议安装到本机,安装比较麻烦,卸载更加麻烦。oracle装到虚拟机上,在虚拟机上安装一个操作系统,然后把oracle安装到该操作系统上。这个操作系统是windows server 2003,服务器版的操作系统,不是win7的。oracle服务器大都数都是装在服务器版操作系统,或者Linux操作系统,或者windows服务器版系统。

找到后缀vmx结尾的,双击它就可以挂载到VMware里面去了。

“我已移动虚拟机”     //表示打开后的虚拟的网卡的mac地址不变,如果复制本地的,同时开机在一个vmnet可能造成冲突。

“我已复制虚拟机”     //表示打开后的虚拟机的网卡的物理地址是新生成的,建议不懂的就选这个。

“取消”                    //取消打开虚拟机

报错提示:

无法连接虚拟设备ide1:0,因为主机上没有相应的设备,您要在每次开启虚拟设备时都尝试连接此虚拟设备吗?

这是因为没设置使用镜像文件。

选择虚拟机,再点击左侧页面编辑虚拟机设置。
选择CD/DVD(IDE) 将使用物理驱动器的选项改为下方的使用ISO映像文件,如图:

报错提示:

键盘挂钩超时值未设置为VMware Workstation建议的值

 

2.2网络配置

在安装数据库之前先配置网络,配置网络的本的是是使用本地计算机和windows server 2003处于一个局域网之内。

本地连接是物理网卡,vmware开头的是虚拟网卡。虚拟我网卡是专门连接虚拟机的网卡,虚拟机安装成功之后,会自动创建vmnet1网卡和vmnet8网卡。虚拟网卡我们是可以增加的。

1.创建虚拟网卡---Vmware有三种网络工作模式

Vmware提供了三种网络工作模式,分别是:(1)Bridged(桥接模式);(2)NAT(网络地址转换模式);(3)Host-Only(仅主机模式)

桥接模式:你创建的虚拟机(虚拟机上的操作系统)和物理机(本地计算机)是处于同一局域网之下,能和该局域网下面的其它PC机相互通信,前提是必须要有外部的网络环境(本地计算机必须有网)。

仅主机模式:Host-Only模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只能与主机相互通讯。

NAT模式:虚拟机操作系统和本地计算机操作系统共享一个ip地址,你本地的计算机可以打开网页,你的虚拟机操作系统也可以打开网页,有个弊端就是你本地计算机无法与虚拟机操作系统进行网络连接,但是都可以上网。

我们一般选择仅主机模式;

VMware 中选择菜单“编辑”--“虚拟网络编辑器”

弹出的窗口中,点击“添加网络”按钮,名称为 VMnet2 ,确定

设置为仅主机方式,并设定子网 IP 192.168.80.0  (子网ip也可以不改)

 

 添加完之后,看一下虚拟网卡添加成功没有。把网络和internet打开。看到了vmnet2,右键属性,选择internet协议版本4,再点击属性,给你自动分配了ip地址,最后一个不是1就行,在255之内就可以了。这里改成了6.

2.设定虚拟操作系统的网络网卡

右键点击虚拟操作系统,选择“设置”菜单项,弹出以下窗口

点击网络适配器(默认是NAT模式),选择自定义, VMnet2(仅主机模式)--我们刚刚新建的vmnet2虚拟网卡

3.设定虚拟操作系统的 IP 地址

因为我们的虚拟网卡是80网段,所以windows server 2003里面的操作系统也要改为80的。这样就可以在同一个局域网上进行通信了。

本地的操作系统的虚拟网卡 VMnet IP 为 192.168.80.6( 与虚拟机中的操作系统的 IP 地址处于同一 IP 网段 )

 

 ip地址改为10 ,不能是之前的6,6的话就会发生冲突了。一个网络的ip地址是不能重叠的。

在虚拟机的操作系统中设定 IP 地址为 192.168.80.10

网络都设置好了,里面虚拟机操作系统是 80.10,本地计算机操作系统是80.6,然后我们ping一下,本地计算机是否能与虚拟机上操作系统是否能联通。

注意:高版本的windows serve的关闭防火墙,要不ping不通的。

2.3安装 ORACLE 数据库

直接将ORACLE 安装包解压拷贝到虚拟机的系统中,直接安装到虚拟机系统的C盘中。

双击setup进行安装

数据库口令的密码进行设置,口令用于超级管理员用户。

注:此口令即是管理员密码。

 

点击“下一步”,出现“概要”界面,点击“安装”。

出现安装进度条,等待安装完成,如下图:

安装完成后,自动运行配置向导,如下图,等待其完成:

完成后,出现“口令管理”界面,如下图:
点击“确定”,如下图:

安装结束,点击“退出”。

此时可以命令提示符下进行测试安装结果
输入 :sqlplus system/itcast
itcast 为你安装时输入的密码

2.4SQLPlus 远程连接 ORACLE 数据库--dba用的(dos窗口)

找到instantclient_12_1 目录,

2.5PLSQL Developer 安装与配置--开发用的(图形化界面)

1 )安装 文件夹 PLSQL+Developer10.0.3.1701

找到PLSQL+Developer10.0.3.1701文件夹 并进行安装。

 注意事项:安装目录不能有中文和空格,否则连接不上

将上边的目录改为 D:\PLSQLDeveloper

一路next即可,安装成功之后,桌面上看到一个圆桐。双击它,需要输入破解版的东西。 

注解玩之后,看到这个界面

 2)配置客户端路径

 在弹出的登陆窗口中,点取消,Tools->>Preferences

配置 oracle Home (insantclient 解压的路径)、 OCI Library(instantclient 目录下的oci.dll 文件))

3 ) 编辑 ORA 文件---主要是配置本地得名
ORACLE 的以下安装目录中找到 tnsnames.ora 文件,拷贝到本地电脑的 D 盘根目录。

就是根据ORCL10这个名称,去找192.168.80.10这个服务的orcl实例。

注释:
ORCL10--代表连接的服务名,可以理解为一个代号
HOST 后填写数据库所在服务器的ip,PORT为数据库端口号,一般为1521
SERVICE_NAME 为数据库的实例名
4 ) 设置环境变量 TNS_ADMIN D 盘根目录 ( tnsnames.ora 所在目
)
TNS_ADMIN:配置oracle的监听

6)中文编码设置

查看服务器端编码 SQL:
select userenv('language') from dual
我实际查到的结果为:AMERICAN_AMERICA.ZHS16GBK

计算机->属性->高级系统设置->环境变量->新建
设置变量名:NLS_LANG,变量值:第 1 步查到的值,
我的是
AMERICAN_AMERICA.ZHS16GBK

 

三、项目案例:《自来水公司收费系统》

3.1项目介绍与需求分析

XXX 市自来水公司为更好地对自来水收费进行规范化管理,决定委托传智
播客 . 黑马程序员开发《自来水公司收费系统》。考虑到自来水业务数量庞大,
数据并发量高,决定数据库采用 ORACLE 数据库。主要功能包括:
1. 、基础信息管理:
1 )业主类型设置
2 )价格设置
3 )区域设置
4 )收费员设置
5 )地址设置
2 、业主信息管理:
1 )业主信息维护
2 )业主信息查询
3 、收费管理:
1 )抄表登记
2 )收费登记
3 )收费记录查询
4 )欠费用户清单
4 、统计分析:
1 )收费日报单
2 )收费月报表
.......

3.2表结构设计

1.业主类型表(T_OWNERTYPE

2. 价格表( T_PRICETABLE

3. 区域表( T_AREA

4. 收费员表( T_OPERATOR

5. 地址表( T_ADDRESS

6. 业主表( T_OWNERS

7. 收费台账( T_ACCOUNT

上述 7 张表的物理模型如下:

3.3创建表空间--第一步

创建表空间,是我们做所有工作的第一步,因为你做的任何操作,都要找一个存储区域。创建表空间,实际上是创建数据文件。你创建表空间就是起一个名字,与此同时会产生一个数据文件,他们之间会自动产生对应关系。

先有表空间,再有用户。

create tablespace waterboss
datafile 'c:\waterboss.dbf'
size 100m
autoextend on
next 10m

解释:
waterboss 为表空间名称
datafile 用于设置物理文件名称
size 用于设置表空间的初始大小
autoextend on 用于设置自动增长,如果存储量超过初始大小,则开始自动扩容
next 用于设置扩容的空间大小

3.4创建用户

先有表空间,再有用户,然后才能建表。(用户是建在表空间上的,表是建立在用户上的)

create user wateruser
identified by itcast
default tablespace waterboss

wateruser 为创建的用户名
identified by 用于设置用户的密码
default tablesapce 用于指定默认表空间名称

3.5用户赋权

grant dba to wateruser
给用户 wateruser 赋予 DBA 权限后即可登陆

四、表的创建、修改与删除

4.1创建表

oracle数据库创建表的前提,你先创建表空间,用户并为用户赋予权限,这些只需要创建一次即可,然后再去创建表。

语法:

CREATE TABLE 表名称(
 字段名 类型(长度) primary key,
 字段名 类型(长度),
 .......
);

数据类型:--4种

1. 字符型

1 CHAR : 固定长度的字符类型,最多存储 2000 个字节
2 VARCHAR2 : 可变长度的字符类型,最多存储 4000 个字节--mysql是varchar,oracle是varchar2
3 LONG : 大文本类型。最大可以存储 2 G---类似mysql的text类型,java中的long是整形

2.数值型

mysql数值型分的很细,int,long,double,float啥的,oracle就一个number,大小是用长度来表示。

NUMBER : 数值类型
例如: NUMBER(5) 最大可以存的数为 99999---代表这个数字是5位数,最多可以存99999
NUMBER(5,2) 最大可以存的数为 999.99---5代表总共5位,2代表小数位数是2位,最多可以存99999。小数位也是包含5位的里面的。

3.日期型

1 DATE :日期时间型,精确到秒
2 TIMESTAMP :精确到秒的小数点后 9

4.二进制型(大数据类型)

1 CLOB : 存储字符 , 最大可以存 4 G
2 BLOB :存储图像、声音、视频等二进制数据 , 最多可以存 4 G--常用
注意:CLOB类似其实就是弥补long类型,因为他最大存储2g的。
实例:
创建业主表
create table t_owners
(
id number primary key,
name varchar2(30),
addressid number,
housenumber varchar2(30),
watermeter varchar2(30),
adddate date,
ownertypeid number
);
其它表的创建见资料“自来水收费系统建表语句 .txt

4.2修改表---命令化和图形化2种方式

1. 增加字段语法 :
ALTER TABLE 表名称 ADD(列名 1 类型 [DEFAULT 默认值],列名 1 类型
[DEFAULT 默认值]...)

为业主表增加两个字段,语句:
--追加字段
ALTER TABLE T_OWNERS ADD
(
 REMARK VARCHAR2(20),
 OUTDATE DATE
)

2. 修改字段语法:
ALTER TABLE 表名称 MODIFY(列名 1 类型 [DEFAULT 默认值],列名 1 类型
[DEFAULT 默认值]...)
修改两个字段的类型,语句:
--修改字段
ALTER TABLE T_OWNERS MODIFY
(
REMARK CHAR(20),
OUTDATE TIMESTAMP
)

3. 修改字段名语法:
ALTER TABLE 表名称 RENAME COLUMN 原列名 TO 新列名
语句:
ALTER TABLE T_OWNERS RENAME COLUMN OUTDATE TO EXITDATE

4. 删除字段名
--删除一个字段
ALTER TABLE 表名称 DROP COLUMN 列名
--删除多个字段
ALTER TABLE 表名称 DROP (列名 1,列名 2...)
语句:
--删除字段
ALTER TABLE T_OWNERS DROP COLUMN REMARK

4.3删除表

语法:
DROP TABLE 表名称

注意:

1.sql语句一般都大写,但是不区分大小写。

2.类似一般不会修改的,基本上都是子啊需求确定后创建表字段和类型。

在columns中我们看到数字123是number类型,abc是字符串类型,dat是日期类型。

 

 

五、数据增删改---记得加上commit提交,再去执行

5.1插入数据

mysql数据库事务不用自己操作,人家封装好的,oracle的话需要进行commit提交。

语法:

INSERT INTO 表名[(列名 1,列名 2,...)]VALUES(值 1,值 2,...)
执行 INSERT 后一定要再执行 commit 提交事务
向业主表插入数据:
insert into T_OWNERS VALUES (1,' 张三丰',1,'2-2','5678',sysdate,1);
语句中的 sysdate 是系统变量用于获取当前日期,点击齿轮的图标后,再点击下
图的绿色图标,此图标为 commit,红色图标为rollback回滚

我们再次录入一条数据,语句如下 :
insert into T_OWNERS VALUES (2,'赵大侃',1,'2-3','9876',sysdate,1);
commit;

5.2修改数据

语法:

UPDATE 表名 SET 列名 1=值 1,列名 2=值 2,....WHERE 修改条件;
执行 UPDATE 后一定要再执行 commit 提交事务
需求:将 ID 1 的业主的登记日期更改为三天前的日期
update T_OWNERS set adddate=adddate-3 where id=1;
commit;

5.3删除数据

语法 1 :delete删除需要commit提交,在执行
DELETE FROM 表名 WHERE 删除条件;

执行 DELETE 后一定要再执行 commit 提交事务
需求:删除业主 ID 2 的业主信息
delete from T_OWNERS where id=2;
commit;
语法 2 :truncate删除,不需要commit提交,在执行
TRUNCATE TABLE 表名称

比较 truncat delete 实现数据删除?
1. delete 删除的数据可以 rollback
2. delete 删除可能产生碎片,并且不释放空间
3. truncate 是先摧毁表结构,再重构表结构

六、JDBC 连接 ORACLE

6.1创建工程,引入驱动包

在下图目录中可以找到驱动包 ORACLE JDBC 驱动包,拷贝到工程即可使用

创建 java 工程 waterboss,建立 lib 文件夹,将 ojdbc.jar 拷贝到此文件夹,然后 add  build path

6.2BaseDao

我们通常编写 BaseDao 负责加载驱动,获取数据库连接,关闭资源,代码如下:

package cn.itcast.waterboss.dao;
import java.sql.SQLException;

/**
 * 基本数据访问类
 *
 * @author Administrator
 */
public class BaseDao {
    //加载驱动
    static {
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    /**
     * 获取数据库连接
     *
     * @return
     * @throws SQLException
     */
    public static java.sql.Connection getConnection() throws
            SQLException {
        return java.sql.DriverManager.getConnection(
                "jdbc:oracle:thin:@192.168.80.10:1521:orcl",
                "wateruser", "itcast");
    }

    /**
     * 关闭资源
     *
     * @param rs
     * @param stmt
     * @param conn
     */
    public static void closeAll(java.sql.ResultSet rs,
                                java.sql.Statement stmt, java.sql.Connection conn) {
//关闭结果集
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
//关闭执行对象
        if (stmt != null) {
            try {
                stmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
//关闭执行对象
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

6.3业主增删改代码编写

1.创建实体类

/**
 * 业主实体类
 * @author Administrator
 *
 */
public class Owners {
    private Long id;//编号
    private String name;//业主名称
    private Long addressid;//地址编号
    private String housenumber;//门牌号
    private String watermeter;//水表编号
    private Date adddate;//登记日期
    private Long ownertypeid;//业主类型 ID
    //省略get,set方法
    }
2. 创建 Dao 类实现增删改
import cn.itcast.waterboss.entity.Owners;

/**
 * 业主数据访问类
 *
 * @author Administrator
 */
public class OwnersDao {
    /**
     * 新增业主
     *
     * @param owners
     */
    public static void add(Owners owners) {
        java.sql.Connection conn = null;
        java.sql.PreparedStatement stmt = null;
        try {
            conn = BaseDao.getConnection();
            //有几列就添加几个问号???
            stmt = conn.prepareStatement("insert into T_OWNERS 
                    values( ?, ?,?,?,?,?,?)");
            stmt.setLong(1, owners.getId());
            stmt.setString(2, owners.getName());
            stmt.setLong(3, owners.getAddressid());
            stmt.setString(4, owners.getHousenumber());
            stmt.setString(5, owners.getWatermeter());
            stmt.setDate(6, new
                    java.sql.Date(owners.getAdddate().getTime()));
            stmt.setLong(7, owners.getOwnertypeid());
            stmt.execute();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            BaseDao.closeAll(null, stmt, conn);
        }
    }

    /**
     * 修改业主
     *
     * @param owners
     */
    public static void update(Owners owners) {
        java.sql.Connection conn = null;
        java.sql.PreparedStatement stmt = null;
        try {
            conn = BaseDao.getConnection();
            stmt = conn.prepareStatement("update T_OWNERS set 
                    name = ?, addressid =?,housenumber =?,"
                    + "watermeter=?,adddate=?, ownertypeid=? where 
            id =?");
            stmt.setString(1, owners.getName());
            stmt.setLong(2, owners.getAddressid());
            stmt.setString(3, owners.getHousenumber());
            stmt.setString(4, owners.getWatermeter());
            stmt.setDate(5, new
                    java.sql.Date(owners.getAdddate().getTime()));
            stmt.setLong(6, owners.getOwnertypeid());
            stmt.setLong(7, owners.getId());
            stmt.execute();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            BaseDao.closeAll(null, stmt, conn);
        }
    }

    /**
     * 删除业主
     *
     * @param owners
     */
    public static void delete(Long id) {
        java.sql.Connection conn = null;
        java.sql.PreparedStatement stmt = null;
        try {
            conn = BaseDao.getConnection();

            stmt = conn.prepareStatement("delete from T_OWNERS where 
                    id = ? ");
            stmt.setLong(1, id);
            stmt.execute();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            BaseDao.closeAll(null, stmt, conn);
        }
    }
}

七、数据导出与导入---3种方式

当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于
计算机系统的故障(硬件故障、软件故障、网络故障、进程故障和系统故障)影
响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库
中全部或部分数据丢失。因此当发生上述故障后,希望能重构这个完整的数据库
该处理称为数据库恢复,而要进行数据库的恢复必须要有数据库的备份工作。
数据库的导入和导出就做2件事,一个是做数据的迁移,一个是做数据的备份恢复。

7.1整库导出与导入

整库导出命令(整库导出有2种方式,一种是默认的文件名EXPDAT.DMP,一种是指定的文件file=文件名)

exp system/itcast full=y
添加参数 full=y 就是整库导出
执行命令后会在当前目录下生成一个叫 EXPDAT.DMP ,此文件为备份文件。
EXPDAT.DMP这个文件是二进制的,你是看不了的,这个数据格式只有oracle自己能认识。

如果想指定备份文件的名称,则添加 file 参数即可,命令如下
exp system/itcast file=文件名 full=y

整库导入命令
导入的规则就是如果你的对象是存在的,他会自动跳过,它是检测对象是否存在。如果对象存在,它会自动的跳入过去,如果对象不存在,则会。。
按用户导入,先把表给删掉,然后再导入,然后再刷新就可以看到导入的表
imp system/itcast full=y

 

 

此命令如果不指定 file 参数,则默认用备份文件 EXPDAT.DMP 进行导入
如果指定 file 参数,则按照 file 指定的备份文件进行恢复
imp system/itcast full=y file=water.dmp

7.2按用户导出与导入

按用户导出:

按用户导出实际上就是加了owner =用户名这个参数。就可以吧指定下的用户所有的表都导成一个文件里面。

exp system/itcast owner=wateruser file=wateruser.dmp

按用户导入:
按用户导入,先把表给删掉,然后再导入,然后再刷新就可以看到导入的表
imp system/itcast file=wateruser.dmp fromuser=wateruser

 

7.3按表导出与导入--根据用户来找表

按表导出:

按表导出就是添加tables参数,注意,我们的表是属于某个用户下的,exp后面需要跟着用户的身份来登录。而不是用system,用system,你是找不到这2个表的,t_account和a_area的。也就是根据用户来找表

exp wateruser/itcast file=a.dmp tables=t_account,a_area
tables 参数指定需要导出的表,如果有多个表用逗号分割即可
按表导入
imp wateruser/itcast file=a.dmp tables=t_account,a_area

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值