Oracle数据库--从入门到装逼

1 Oracle基础

1.1 Oracle简介

1.1.1 什么是Oracle

  Oracle数据库系统是美国Oracle公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户服务器(CLIENT/或B/S体系结构的数据库之一。
  Oracle通常应用于大型系统的数据库产品。
  Oracle数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能
Oracle数据库具有以下特点:

  1. 支持多用户、大事务量的事务处理,处理并发能力狠强
  2. 数据安全性和完整性控制,在安全设计方面没有任何数据库可与之相比
  3. 支持分布式数据处理,一个实例部署到多台机器时由Oracle自身实现分布式
  4. 可移植性,在不同系统中的数据文件类型是一致的,可在不同版本系统做数据移植

1.1.2 Oracle体系结构

1.数据库
  Oracle数据库是数据的物理存储。这就包括(数据文件ora或者dbf、控制文件、联机日志、参数文件)。其实Oracle数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库(而MySQL是在一个实例下可创建多个库)。可以看作是Oracle就只有一个大数据库。
2.实例
  一个Oracle实例(OracleInstance)由一系列的后台进程(BackguoundProcesses)和内存结构(MemoryStructures)组成。一个数据库可以有n个实例(一般使用时通常只建一个实例)。
3.数据文件(dbf)
  数据文件是数据库的物理存储单位。数据库的数据是存储在表空间中的,数据真正是在某一个或者多个数据文件(dbf)中。而一个表空间可以由一个或多个数据文件组成,一个数据文件只能属于一个表空间。一旦数据文件被加入到某个表空间后,就不能删除这个文件,如果要删除某个数据文件,只能删除其所属于的表空间才行。
4.表空间
  表空间是Oracle对物理数据库上相关数据文件(ora或者dbf文件)的逻辑映射。一个数据库在逻辑上被划分成一到若干个表空间,每个表空间包含了在逻辑上相关联的一组结构。每个数据库至少有一个表空间(称之为system表空间)。
  每个表空间由同一磁盘上的一个或多个文件组成,这些文件叫数据文件(datafile)。一个数据文件只能属于一个表空间。
在这里插入图片描述
注:表的数据,是由用户放入某一个表空间的,而这个表空间会随机把这些表数据放到一个或者多个数据文件(dbf)中。Oracle是由用户和表空间对数据进行管理和存放的。但是表不是由表空间去查询,而是由用户去查。因为不同用户可以在同一个表空间建立同一个名字的表,这里就是以用户作区分了。
在这里插入图片描述
5.用户
  用户是在表空间下建立的。用户登陆后只能看到和操作自己的表, Oracle的用户与MySQL的数据库类似,每建立一个应用需要创建一个用户。
在这里插入图片描述

1.2 Oracle安装与配置

本次演示安装Oracle 11g,安装环境为Windows10 64位专业版

1.2.1 安装前准备

下载地址:https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
在这里插入图片描述
下载的这两个文件,将两个压缩包解压到同一路径下,使解压后的文件合并,解压后steup.exe安装
在这里插入图片描述
安装前务必要关闭各种杀毒软件,安全卫士

1.2.2 安装步骤

安装步骤可参考https://www.cnblogs.com/gengshao/p/10764248.html

1.2.3 可能出现的问题及处理

1.2.3.1 Environment variable:“PATH”

Environment variable: “PATH” - This test checks whether the length of
the environment variable “PATH” does not exceed the recommended
length. 预期值 : 1023 实际值 : 1184 错误列表: PRVF-3929 : Adding the Oracle
binary location to the PATH environment variable will exceed the OS
length limit of [ “1023” ] for the variable on the node “ABC” - Cause:
The installer needs to update the PATH environment variable to include
the value “%ORACLE_HOME%/bin;”. However, doing so will cause PATH to
exceed the maximum allowable length that this operating system allows.

  • Action: Ensure that the sum of the lengths of your current PATH environment variable and that of “%ORACLE_HOME%/bin;” does not exceed
    the operating system limit. Restart the installer after correcting the
    setting for environment variable

改 cvu_prereq.xml 里面 的配置,cvu_prereq.xml 文件在oracle安装解压包database\stage\cvu目录中找到自己对于的电脑系统,我的是win10的,没有的可以填加下面的内容(在CERTIFIED_SYSTEMS标签下)

<OPERATING_SYSTEM RELEASE="6.2">
	<VERSION VALUE="3"/>
	<ARCHITECTURE VALUE="64-bit"/>
	<NAME VALUE="Windows 10"/>
	<ENV_VAR_LIST>
		<ENV_VAR NAME="PATH" MAX_LENGTH="2023" />
	</ENV_VAR_LIST>
</OPERATING_SYSTEM>

把1023改大 比如2023 然后退出安装程序重新安装下就ok了

1.2.3.2 执行先决条件失败

在这里插入图片描述
处理方式请参考https://www.cnblogs.com/xiaoxiaoweng/p/7277969.html

1.2.3.3 实例化EM配置文件时出错

安装时如果没有关闭杀毒软件便可能出现此问题
在这里插入图片描述
处理方式1:重新配置EM
配置方式可参考https://blog.csdn.net/ajphsb0849/article/details/101285448
处理方式2:卸载Oracle,重新安装
卸载方式可参考
https://blog.csdn.net/Fisher_lht/article/details/78797141
https://blog.csdn.net/m0_38025207/article/details/80717071

1.2.4 使用可视化连接工具PL/SQL Developer

PL/SQL Developer下载、安装、使用教程请参考
https://blog.csdn.net/sinat_34104446/article/details/80330021

1.2.5 创建/删除表空间

create tablespace hellospace	--创建名为hellospace的表空间
datafile 'E:\Repository\hellospace.dbf'	--表空间对应的数据文件是hellospace.dbf
size 100 m	--数据文件的大小是100兆
autoextend on	--当数据超过100兆时自动增长
next 10 m;	--数据文件自动增长每次增长10兆
drop tablespace hellospace;	--删除表空间hellospace,不会关联删除数据文件

1.2.6 创建用户

create user bigboss	--创建名为bigboss的用户
identified by 666666	--用户密码是666666
default tablespace hellospace;	--该用户默认的表空间是hellospace,一个表空间下可创建多个用户

1.2.7 用户授权

grant dba to bigboss;	--给bigboss用户添加dba权限

1.3 表的创建、修改与删除

1.3.1 创建表

语法:

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

常用数据类型说明:

  1. 字符型
    CHAR:固定长度的字符类型,最多存储 2000 个字节,若存入的字节数不够设定的字节长度,会以空格补齐,取出时也会带空格
    VARCHAR2:可变长度的字符类型,最多存储 4000 个字节,类似MySQL的varchar
    LONG : 大文本类型,最大可以存储 2个G,类似MySQL的text类型,可存储长篇文章
  2. 数值型
    NUMBER:数值类型
    例如:
      NUMBER(5) 最大可以存的数为 99999
      NUMBER(5,2)最大可以存的数为 999.99
  3. 日期型
    DATE:日期时间型,精确到秒
    TIMESTAMP:精确到秒的小数点后9位
  4. 二进制型(大数据类型)
    CLOB : 存储字符,最大可以存4个G,当字符长度超过LONG的长度时,可使用该字段
    BLOB:存储图像、声音、视频等二进制数据,最多可以存4个G
    实例:
create table hero (
    id number primary key,
    name varchar2(30),
    price number(10,2),
    birthday date
);

1.3.2 修改表

增加字段语法:

ALTER TABLE 表名称 ADD( 
    列名1 类型 [DEFAULT 默认值],
    列名1 类型 [DEFAULT 默认值],
    ...
);

例如:给hero表追加两个字段

ALTER TABLE HERO ADD(
  REMARKS VARCHAR2(20),
  SEX VARCHAR2(30)
);

修改字段类型或长度语法:

ALTER TABLE 表名称 MODIFY( 
    列名1 类型 [DEFAULT 默认值],
    列名1 类型 [DEFAULT 默认值],
    ...
);

例如:修改hero表刚添加的两个字段的类型或长度

ALTER TABLE HERO MODIFY(
    REMARKS VARCHAR2(50),
    SEX CHAR(1)
);

修改字段名语法:

ALTER TABLE 表名称 RENAME COLUMN 原列名 TO 新列名

例如:修改hero中的sex字段名修改为gender

ALTER TABLE HERO RENAME COLUMN SEX TO GENDER

删除字段名语法:

--删除一个字段
ALTER TABLE 表名称 DROP COLUMN 列名
--删除多个字段
ALTER TABLE 表名称 DROP (列名 1, 列名 2...)

1.3.3 删除表

删除表语法:

DROP TABLE 表名称

1.4 数据增删改

1.4.1 插入数据

插入数据语法:

INSERT INTO 表名 [列名1,列名2,...)] VALUES(1,2,...);
COMMIT;

例如:

INSERT INTO HERO VALUES (1,'典韦',9000.50,sysdate,'战士','1');
COMMIT;

注:语句中的 sysdate 是系统变量用于获取当前日期,执行INSERT后一定要再执行commit提交事务hero表插入数据

1.4.2 修改数据

修改数据语法:

UPDATE 表名 SET 列名1=1,列名2=2,...WHERE 修改条件;
COMMIT;

需求:将hero表中id为1的英雄的birthday日期更改为三天前的日期

update hero set birthday=birthday-3 where id=1;
commit;

1.4.3 删除数据

语法1:

DELETE FROM 表名 WHERE 删除条件;
COMMIT;

需求:删除hero表中id为1的数据

delete from hero where id=1;
commit;

语法2:

TRUNCATE TABLE 表名称

需求:删除hero表中所有数据

delete from hero;
commit;

TRUNCATE TABLE HERO;

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

  • delete删除的数据在commit之前可以执行rollback回滚,delete操作会将被删除的数据放入表空间的回滚段,然后若执行rollback,会将数据从回滚段恢复到表中,若执行commit,则将数据从回滚段删除最终删除数据。delete删除可能产生碎片,并且不释放空间
  • truncate是先摧毁表结构,再重构表结构,truncate操作可释放空间

1.5 Java通过JDBC操作Oracle

1.5.1 创建工程,引入驱动包

发布了1 篇原创文章 · 获赞 0 · 访问量 73

猜你喜欢

转载自blog.csdn.net/hiyanghao/article/details/104037915
今日推荐