【Oracle】Oracle的安装与连接

瑞星  金牌会员 | 2024-7-30 21:36:12 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 988|帖子 988|积分 2964

Oracle根本

一、ORACLE 简介

1、oracle概述

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

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

1)数据库

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

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

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

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

5)用户

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

3、命令行界面

  1. sqlplus 用户名/密码
复制代码

4、利用Navicat远程连接

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

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

3、重启服务OracleOraDB19Home1TNSListener

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

5、成功连接

二、操作用户和表空间

1、创建表空间

  1. create tablespace waterboss;
  2. datafile 'c:\dbf\waterboss.dbf';
  3. size 100m;
  4. autoextend on;
  5. next 10m;
复制代码


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

   oracle_12版本的特性,在CDB容器中用户名必须加c##前缀才气创建成功。
  1. create user c##wateruser
  2. identified by rexhao
  3. default tablespace waterboss
复制代码


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

  1. grant dba to c##wateruser
复制代码
给用户 c##wateruser 赋予 DBA 权限后即可登岸
4、删除用户

  1. drop user 用户名 cascade
复制代码
5、创建表

  1. CREATE TABLE 表名称(
  2.         字段名 类型(长度) primary key,
  3.         字段名 类型(长度),
  4. );
复制代码
  1. create table t_owners
  2. (
  3.     id number primary key,                -- 主键
  4.     name varchar2(30),                        -- 业主名称
  5.     addressid number,                        -- 地址 ID
  6.     housenumber varchar2(30),        -- 门牌号
  7.     watermeter varchar2(30),        -- 水表编号
  8.     adddate date,                                -- 登记日期
  9.     ownertypeid number                        -- 业主类型 ID
  10. );
复制代码
  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)增加字段

  1. -- 追加字段
  2. ALTER TABLE T_OWNERS ADD
  3. (
  4.     REMARK VARCHAR2(20),
  5.     OUTDATE DATE
  6. )
复制代码
2)修改字段

  1. -- 修改字段
  2. ALTER TABLE T_OWNERS MODIFY
  3. (
  4.     REMARK CHAR(20),
  5.     OUTDATE TIMESTAMP
  6. )
复制代码
3)修改字段名

  1. ALTER TABLE 表名称 RENAME COLUMN 原列名 TO 新列名
复制代码
  1. -- 修改字段名
  2. ALTER TABLE T_OWNERS RENAME COLUMN OUTDATE TO EXITDATE
复制代码
4)删除字段名

  1. -- 删除一个字段
  2. ALTER TABLE 表名称 DROP COLUMN 列名
  3. -- 删除多个字段
  4. ALTER TABLE 表名称 DROP (列名1,列名2...)
复制代码
7、删除表

  1. DROP TABLE 表名称
复制代码
三、数据的CRUD

1、添加数据

  1. INSERT INTO 表名[(列名 1,列名 2,...)]VALUES(值1,值2,...)
复制代码
执行 INSERT 后一定要再执行 commit 提交事务
   Navicat软件会自动提交事务
  2、修改数据

  1. UPDATE 表名 SET 列名1=值1,列名2=值2,....WHERE 修改条件
复制代码
执行 UPDATE 后一定要再执行 commit 提交事务
3、删除数据

  1. DELETE FROM 表名 WHERE 删除条件
  2. TRUNCATE TABLE 表名称
复制代码
执行 DELETE 后一定要再执行 commit 提交事务
   比较 truncat 与 delete 实现数据删除?
  

  • delete 删除的数据可以 rollback
  • delete 删除大概产生碎片,并且不释放空间
  • truncate 是先摧毁表结构,再重构表结构
  4、查询数据

  1. SELECT * FROM 表名
复制代码
四、JDBC 连接 ORACLE

1、引入驱动包

JDBC 驱动:oracle.jdbc.OracleDriver
连接字符串(瘦连接):jdbcracle:thin虚拟机的 IP:1521rcl
2、BaseDao类

  1. package work.rexhao.dao;
  2. import java.sql.SQLException;
  3. public class BaseDao {
  4.     static {
  5.         try {
  6.             Class.forName("oracle.jdbc.driver.OracleDriver");
  7.         } catch (ClassNotFoundException e) {
  8.             e.printStackTrace();
  9.         }
  10.     }
  11.     public static java.sql.Connection getConnection() throws SQLException {
  12.         return java.sql.DriverManager.getConnection("jdbc:oracle:thin:@192.168.10.61:1521:orcl", "c##wateruser", "rexhao");
  13.     }
  14.     public static void closeAll(java.sql.ResultSet rs, java.sql.Statement stmt, java.sql.Connection conn) {
  15.         if (rs != null) {
  16.             try {
  17.                 rs.close();
  18.             } catch (SQLException e) {
  19.                 e.printStackTrace();
  20.             }
  21.         }
  22.         if (stmt != null) {
  23.             try {
  24.                 stmt.close();
  25.             } catch (SQLException e) {
  26.                 e.printStackTrace();
  27.             }
  28.         }
  29.         if (conn != null) {
  30.             try {
  31.                 conn.close();
  32.             } catch (SQLException e) {
  33.                 e.printStackTrace();
  34.             }
  35.         }
  36.     }
  37. }
复制代码
3、添加方法

  1. public class OwnersDao {
  2.     public static void add(Owners owners) {
  3.         java.sql.Connection conn = null;
  4.         java.sql.PreparedStatement stmt = null;
  5.         try {
  6.             conn = BaseDao.getConnection();
  7.             stmt = conn.prepareStatement("insert into T_OWNERS values( ?, ?,?,?,?,?,?)");
  8.             stmt.setLong(1, owners.getId());
  9.             stmt.setString(2, owners.getName());
  10.             stmt.setLong(3, owners.getAddressid());
  11.             stmt.setString(4, owners.getHousenumber());
  12.             stmt.setString(5, owners.getWatermeter());
  13.             stmt.setDate(6, new java.sql.Date(owners.getAdddate().getTime()));
  14.             stmt.setLong(7, owners.getOwnertypeid());
  15.             stmt.execute();
  16.         } catch (SQLException e) {
  17.             e.printStackTrace();
  18.         } finally {
  19.             BaseDao.closeAll(null, stmt, conn);
  20.         }
  21.     }
  22. }
复制代码
五、数据导出与导入

1、整库导出与导入

整库导出命令
  1. exp system/123.COM full=y
  2. exp system/123.COM file=文件名 full=y
复制代码
添加参数 full=y 就是整库导出
执行命令后会在当前目录下天生一个叫 EXPDAT.DMP,此文件为备份文件
指定备份文件的名称,则添加 file 参数
整库导入命令
  1. imp system/123.COM full=y
  2. imp system/123.COM full=y file=water.dmp
复制代码
此命令如果不指定 file 参数,则默认用备份文件 EXPDAT.DMP 举行导入
如果指定 file 参数,则按照 file 指定的备份文件举行恢复
2、按用户导出与导入

  1. ### 按用户导出
  2. exp system/123.COM owner=wateruser file=wateruser.dmp
  3. ### 按用户导入
  4. imp system/123.COM file=wateruser.dmp fromuser=wateruser
复制代码
3、按表导出与导入

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



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

瑞星

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表