【Oracle】Oracle的安装与连接

Oracle基础

一、ORACLE 简介

1、oracle概述

ORACLE 数据库系统以分布式数据库为核心的一组软件产品

  1. 支持多用户、大事务量的事务处理
  2. 数据安全性和完整性控制
  3. 支持分布式数据处理
  4. 可移植性强,跨平台
2、oracle体系架构
1)数据库

Oracle 数据库是数据的物理存储。

Oracle 数据库的概念和其它数据库不一样,Oracle 就只有一个大数据库。

2)实例

一个数据库可以有多个实例,开多个Oracle进程。

3)数据文件dbf

数据文件是数据库的物理存储单位。

一个数据文件只能属于一个表空间。

4)表空间

对物理数据库上相关数据文件的逻辑映射。

5)用户

用户是在表空间下建立的。用户登陆后只能看到和操作自己的表。

Oracle的用户与 mysql 的数据库类似,每建立一个应用需要创建一个用户。

3、命令行界面
sqlplus 用户名/密码

4、使用Navicat远程连接

1、在虚拟机打开Net Manager软件

2、选择本地-监听程序-LISTENER,添加地址,ip为本机ip,端口号为1521

3、重启服务OracleOraDB19Home1TNSListener

4、在Navicat中选择Oracle数据库连接

5、成功连接

二、操作用户和表空间

1、创建表空间
create tablespace waterboss;
datafile 'c:\dbf\waterboss.dbf';
size 100m;
autoextend on;
next 10m;
  • waterboss 为表空间名称
  • datafile 用于设置物理文件名称
  • size 用于设置表空间的初始大小
  • autoextend on 用于设置自动增长,如果存储量超过初始大小,则开始自动扩容
  • next 用于设置扩容的空间大小
2、创建用户

oracle_12版本的特性,在CDB容器中用户名必须加c##前缀才能创建成功。

create user c##wateruser
identified by rexhao
default tablespace waterboss
  • wateruser 为创建的用户名
  • identified by 用于设置用户的密码
  • default tablesapce 用于指定默认表空间名称
3、用户赋权
grant dba to c##wateruser

给用户 c##wateruser 赋予 DBA 权限后即可登陆

4、删除用户
drop user 用户名 cascade
5、创建表
CREATE TABLE 表名称(
	字段名 类型(长度) primary key,
	字段名 类型(长度),
);
create table t_owners
(
    id number primary key,		-- 主键
    name varchar2(30),			-- 业主名称
    addressid number,			-- 地址 ID
    housenumber varchar2(30),	-- 门牌号
    watermeter varchar2(30),	-- 水表编号
    adddate date,				-- 登记日期
    ownertypeid number			-- 业主类型 ID
);

Oracle 数据类型

1、字符型

  1. CHAR:固定长度的字符类型(空格补全),最多存储 2000 个字节
  2. VARCHAR2:可变长度的字符类型,最多存储 4000 个字节
  3. LONG:大文本类型,最大可以存储 2 个 G

2、数值型

NUMBER:数值类型

  • NUMBER(5) 最大可以存的数为 99999
  • NUMBER(5,2) 最大可以存的数为 999.99

3、日期型

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

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

  1. CLOB:存储字符,最大可以存 4 个 G
  2. BLOB:存储图像、声音、视频等二进制数据,最多可以存 4 个 G
6、修改表
1)增加字段
-- 追加字段
ALTER TABLE T_OWNERS ADD
(
    REMARK VARCHAR2(20),
    OUTDATE DATE
)
2)修改字段
-- 修改字段
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...)
7、删除表
DROP TABLE 表名称

三、数据的CRUD

1、添加数据
INSERT INTO 表名[(列名 1,列名 2...)]VALUES(1,值2...)

执行 INSERT 后一定要再执行 commit 提交事务

Navicat软件会自动提交事务

2、修改数据
UPDATE 表名 SET 列名1=1,列名2=2....WHERE 修改条件

执行 UPDATE 后一定要再执行 commit 提交事务

3、删除数据
DELETE FROM 表名 WHERE 删除条件
TRUNCATE TABLE 表名称

执行 DELETE 后一定要再执行 commit 提交事务

比较 truncat 与 delete 实现数据删除?

  1. delete 删除的数据可以 rollback
  2. delete 删除可能产生碎片,并且不释放空间
  3. truncate 是先摧毁表结构,再重构表结构
4、查询数据
SELECT * FROM 表名

四、JDBC 连接 ORACLE

1、引入驱动包

JDBC 驱动:oracle.jdbc.OracleDriver

连接字符串(瘦连接):jdbc:oracle:thin:@虚拟机的 IP:1521:orcl

2、BaseDao类
package work.rexhao.dao;

import java.sql.SQLException;

public class BaseDao {
    static {
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    public static java.sql.Connection getConnection() throws SQLException {
        return java.sql.DriverManager.getConnection("jdbc:oracle:thin:@192.168.10.61:1521:orcl", "c##wateruser", "rexhao");
    }

    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();
            }
        }
    }
}
3、添加方法
public class OwnersDao {
    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);
        }
    }
}

五、数据导出与导入

1、整库导出与导入

整库导出命令

exp system/123.COM full=y

exp system/123.COM file=文件名 full=y

添加参数 full=y 就是整库导出

执行命令后会在当前目录下生成一个叫 EXPDAT.DMP,此文件为备份文件

指定备份文件的名称,则添加 file 参数

整库导入命令

imp system/123.COM full=y

imp system/123.COM full=y file=water.dmp

此命令如果不指定 file 参数,则默认用备份文件 EXPDAT.DMP 进行导入

如果指定 file 参数,则按照 file 指定的备份文件进行恢复

2、按用户导出与导入
### 按用户导出
exp system/123.COM owner=wateruser file=wateruser.dmp

### 按用户导入
imp system/123.COM file=wateruser.dmp fromuser=wateruser
3、按表导出与导入
### 按表导出
exp wateruser/itcast file=a.dmp tables=t_account,a_area

### 按表导入
imp wateruser/itcast file=a.dmp tables=t_account,a_area

tables 参数指定需要导出的表,如果有多个表用逗号分割即可

  • 23
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
安装Oracle客户端,你可以按照以下步骤进行操作: 1. 首先,你需要下载Oracle客户端安装文件。你可以从Oracle官方网站上下载安装文件。你可以使用引用中提供的链接访问Oracle的下载页面。也可以使用引用提供的链接直接下载Oracle 11g R2版本的客户端安装文件。 2. 在下载页面上,选择适合你操作系统的版本并点击下载。 3. 下载完成后,双击安装文件并按照安装向导的指示进行安装。你可以根据需要选择安装的组件和目标位置。 4. 在安装过程中,你可能需要提供一些配置信息,例如数据库连接参数等。请确保提供正确的信息以确保安装成功。 5. 安装完成后,你可以在开始菜单或应用程序目录中找到Oracle客户端的快捷方式和工具。 6. 使用Oracle客户端,你可以连接到远程Oracle数据库并执行各种数据库操作。 请注意,安装Oracle客户端需要一定的技术知识和权限。如果你不熟悉这个过程或没有足够的权限,请咨询你的系统管理员或专业人士的帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [超级详细的Oracle安装图文详解!手把手教会您从下载到安装!](https://blog.csdn.net/heima005/article/details/127981213)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wmh1024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值