瑞星 发表于 2024-7-30 21:36:12

【Oracle】Oracle的安装与连接

Oracle根本

一、ORACLE 简介

1、oracle概述

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

[*]支持多用户、大事务量的事务处理
[*]数据安全性和完备性控制
[*]支持分布式数据处理
[*]可移植性强,跨平台
2、oracle体系架构

1)数据库

Oracle 数据库是数据的物理存储。
Oracle 数据库的概念和其它数据库不一样,Oracle 就只有一个大数据库。
2)实例

一个数据库可以有多个实例,开多个Oracle进程。
3)数据文件dbf

数据文件是数据库的物理存储单元。
一个数据文件只能属于一个表空间。
4)表空间

对物理数据库上相关数据文件的逻辑映射。
https://i-blog.csdnimg.cn/blog_migrate/2bdf8aafebfec5d25091aa0bb4d88247.png
5)用户

用户是在表空间下建立的。用户登岸后只能看到和操作自己的表。
Oracle的用户与 mysql 的数据库类似,每建立一个应用需要创建一个用户。
https://i-blog.csdnimg.cn/blog_migrate/abc35054390c29f55b63ac1f342a7a89.png
3、命令行界面

sqlplus 用户名/密码
https://i-blog.csdnimg.cn/blog_migrate/58e61b58b972e14a12ce9842d936263f.png
4、利用Navicat远程连接

1、在虚拟机打开Net Manager软件
https://i-blog.csdnimg.cn/blog_migrate/3f0bb71b8952850f0bacef5edbc636c9.png
2、选择当地-监听步伐-LISTENER,添加地址,ip为本机ip,端口号为1521
https://i-blog.csdnimg.cn/blog_migrate/5e88e26d8aefcd17d28e8662d4acb6ad.png
3、重启服务OracleOraDB19Home1TNSListener
https://i-blog.csdnimg.cn/blog_migrate/963c40a7061be47fc0f5093cd99ed9b3.png
4、在Navicat中选择Oracle数据库连接
https://i-blog.csdnimg.cn/blog_migrate/d026dc1a71038be31f6159acf23ab0dc.png
5、成功连接
https://i-blog.csdnimg.cn/blog_migrate/56e10605a2f5aa537ff7b050ce8631df.png
二、操作用户和表空间

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、字符型

[*]CHAR:固定长度的字符类型(空格补全),最多存储 2000 个字节
[*]VARCHAR2:可变长度的字符类型,最多存储 4000 个字节
[*]LONG:大文本类型,最大可以存储 2 个 G
2、数值型
NUMBER:数值类型


[*]NUMBER(5) 最大可以存的数为 99999
[*]NUMBER(5,2) 最大可以存的数为 999.99
3、日期型

[*]DATE:日期时间型,精确到秒
[*]TIMESTAMP:精确到秒的小数点后 9 位
4、二进制型(大数据类型)

[*]CLOB:存储字符,最大可以存 4 个 G
[*]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 实现数据删除?

[*]delete 删除的数据可以 rollback
[*]delete 删除大概产生碎片,并且不释放空间
[*]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 参数指定需要导出的表,如果有多个表用逗号分割即可



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【Oracle】Oracle的安装与连接