Oracle简介、环境搭建和基础DML语句

第一章 ORACLE 简介

1.1 什么是 ORACLE

ORACLE数据库系统是美国ORACLE 公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器体系结构的数据库之一。

英文官网:Database | Oracle 

中文官网:数据库 | Oracle 中国

ORACLE 通常应用于大型系统的数据库产品。

ORACLE 数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。

DB-Engines排名:DB-Engines Ranking - popularity ranking of database management systems

Oracle 数据库主要有四个版本:

  1. 企业版:它是最强大和最安全的版本它提供所有功能包括卓越的性能和安全性。
  2. 标准版:它为不需要企业版强大软件包,提供用户基本功能。
  3. 易捷版(XE):它是轻量级,免费且有限的 Windows 和 Linux 版本。
  4. Oracle Lite:专为移动设备而设计。

ORACLE 数据库具有以下特点:

  1. 支持多用户、大事务量的事务处理
  2. 数据安全性和完整性控制
  3. 支持分布式数据处理
  4. 可移植性

1.2 ORACLE 体系结构

1.2.1 数据库

Oracle 数据库是数据的物理存储,是一组存储数据的文件。 这就包括(数据文件 ORA 或者 DBF、控制文件、联机日志、参数文件)。

其实 Oracle 数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库。可以看作是 Oracle 就只有一个全局的数据库,这一点和MySQL不太一样。

1.2.2 实例

一个Oracle 实例(Oracle Instance)有一系列的后台进程(Backguound Processes)和内存结构(Memory Structures)组成。是管理数据库文件的。一个数据库可以有 n 个实例。但通常情况下,一个实例对应一个数据库

1.2.3 数据文件(dbf)

数据文件是数据库的物理存储单位。也就是说最终数据落到磁盘上是以文件形式存在的,这个文件就叫做数据文件,后缀名是dbf。 

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

1.2.4 表空间

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

每个表空间由同一磁盘上的一个或多个文件组成,这些文件叫数据文件

(datafile)。一个数据文件只能属于一个表空间。表空间下还有进一步的逻辑划分。

注:表的数据,是有用户放入某一个表空间的,而这个表空间会随机把这些表数据放到一个或者多个数据文件中。

由于 oracle 的数据库不是普通的概念,oracle 是有用户和表空间对数据进行 管理和存放的。但是表不是有表空间去查询的,而是由用户去查的。因为不同用户可以在同一个表空间建立同一个名字的表!这里区分就是用户了!

​​​​​​​1.2.5 用户

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

MySQL中是一个用户可以查看、管理操作多个数据库,不同的应用创建不同的数据库。

Oracle是一个数据库下可以创建不同的用户,每个用户可以操作属于自己的表。正好和MySQL的概念是反过来的。

第二章 ORACLE 安装与配置

2.1 安装虚拟机

注意:安装路径要选择没有中文没有空格的

安装好虚拟机软件之后,需要将虚拟机中vmnet8的网段设置为192.168.88.0网段,简称88网段

Window中的VMnet8虚拟网卡配置:

​​​​​​​2.2 导入虚拟机到VMware

2.2.1 oracle虚拟机导入

step1:解压压缩包

        解压缩到一个没有中文、没有空格的路径下

解压后应如图样式

step2:打开VMware,导入虚拟机

step3:根据需求调整内存等(可选)

step4:开机

step5:登录Linux系统,验证Oracle服务是否自启动成功

2.3 ​​​​​​​Oracle命令行客户端--SQLPlus

SQLPlus是 Oracle 数据库的命令行工具,用于执行 SQL 和 PL/SQL 命令。它是数据库管理员和开发人员和Oracle交互的一款工具。

  1. 可以直接在终端命令行中使用
  2. 如果想在自己的windows电脑上使用,需要安装Oracle Instant Client,参考教程:

InstantClient+PLSQL安装配置教程-CSDN博客

  1. 当客户端和Oracle服务不在一台机器上的时候,这时候属于远程连接,相关命令如下:

sqlplus system/123456@192.168.88.188:1521/orcl

用户名system  密码123456 Oracle服务器地址192.168.88.188 全局数据库名称orc

​​​​​​​2.4 Oracle可视化客户端--PL/SQL Developer

PL/SQL Developer是一款集成开发环境,由Allround Automations公司进行开发,是一款专门面向Oracle数据库存储的程序单元。​​​​​​​​​​​​​​

​​​​​​​2.5 Oracle可视化客户端Datagrip

DataGrip是由 JetBrains 开发的一款强大的关系数据库集成开发环境(IDE)。它为开发人员和数据库管理员提供了一个统一的界面,用于管理和开发各种关系型数据库。DataGrip 支持多种流行的数据库系统,包括 MySQL、PostgreSQL、Microsoft SQL Server、Oracle 等。

  1. 打开Datagrip,新建一个project工程
  2. 创建Oracle连接
  3. 将下载好的驱动文件解压到一个没有中文,没有空格的路径下
  4. 配置驱动
  5. 设置相关参数
  6. 测试连接是否正常
  7. 控制台sql执行测试

    ​​​​​​

    第五章 准备数据,项目案例《自来水公司收费系统》

    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)

    字段名

    类型(位数)

    是否必填

    说明

    ID

    NUMBER

    主键

    NAME

    VARCHAR2(30)

    类型名称

    2.价格表( T_PRICETABLE)

    字段名

    类型(位数)

    是否必填

    说明

    ID

    NUMBER

    主键

    PRICE

    NUMBER(10,2)

    价格

    OWNERTYPEID

    NUMBER

    业主类型 ID

    MINNUM

    NUMBER(10,2)

    区间数开始值

    MAXNUM

    NUMBER(10,2)

    区间数截止值

    3.区域表( T_AREA)

    字段名

    类型(位数)

    是否必填

    说明

    ID

    NUMBER

    主键

    NAME

    VARCHAR2(30)

    区域名称

    4.收费员表( T_OPERATOR)

    字段名

    类型(位数)

    是否必填

    说明

    ID

    NUMBER

    主键

    NAME

    VARCHAR2(30)

    操作员名称

    5.地址表( T_ADDRESS)

    字段名

    类型(位数)

    是否必填

    说明

    ID

    NUMBER

    主键

    NAME

    VARCHAR2(30)

    地址名称

    AREAID

    NUMBER

    区域 ID

    OPERATORID

    NUMBER

    操作员 ID

    6.业主表( T_OWNERS)

    字段名

    类型(位数)

    是否必填

    说明

    ID

    NUMBER

    主键

    NAME

    VARCHAR2(30)

    业主名称

    ADDRESSID

    NUMBER

    地址 ID

    HOUSENUMBER

    NUMBER

    门牌号

    WATERMETER

    VARCHAR2(30)

    水表编号

    ADDDATE

    DATE

    登记日期

    OWNERTYPEID

    NUMBER

    业主类型 ID

    7.收费台账( T_ACCOUNT)

    字段名

    类型(位数)

    是否必填

    说明

    ID

    NUMBER

    主键

    OWNERID

    NUMBER

    业主编号

    OWNERTYPEID

    NUMBER

    业主类型

    AREAID

    NUMBER

    所在区域

    YEAR

    CHAR(4)

    账务年份

    MONTH

    CHAR(2)

    账务月份

    NUM0

    NUMBER

    上月累计数

    NUM1

    NUMBER

    本月累计数

    USENUM

    NUMBER

    本月使用数

    METERUSERID

    NUMBER

    抄表员

    METERDATE

    DATE

    抄表日期

    MONEY

    NUMBER(10,2)

    应缴金额

    ISFEE

    CHAR(1)

    是否缴费

    FEEDATE

    DATE

    缴费日期

    FEEUSERID

    NUMBER

    收费员

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

​​​​​​​3.3 创建表空间

--1、查看已有表空间的存储路径
select name from v$datafile;

--2、创建表空间
create tablespace waterboss
datafile '/home/app/oracle/oradata/orcl/waterboss.dbf'
size 100m
autoextend on
next 10m;

解释:

waterboss 为表空间名称

datafile  用于设置物理文件名称

size  用于设置表空间的初始大小

autoextend on    用于设置自动增长,如果存储量超过初始大小,则开始自动扩容

next  用于设置扩容的空间大小​​​​​​​

3.4 创建用户

--1、查看当前所有用户
select username from all_users;

--2、创建新用户
create user wateruser
identified by 123456
default tablespace waterboss;

wateruser 为创建的用户名。

identified by  用于设置用户的密码

default tablesapce    用于指定默认表空间名称

​​​​​​​3.5 用户赋权

-- 给用户赋予dba权限
grant dba to wateruser;

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

​​​​​​​3.6 切换用户wateruser

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

4.1 创建表

语法:

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

----------------------------------------------------------------------

完整语法如下:

CREATE TABLE table_name (

    column1 datatype [DEFAULT expression] [constraint],

    column2 datatype [DEFAULT expression] [constraint],

    ...

);

table_name:表的名称。

column1, column2, ...:列的名称。

datatype:列的数据类型,如 VARCHAR2, NUMBER, DATE 等。

DEFAULT expression:为列指定默认值。

constraint:为列添加约束,如 PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT NULL, CHECK 等。

数据类型:

1.  字符型
    (1)CHAR :    固定长度的字符类型,最多存储 2000 个字节
    (2VARCHAR2    :可变长度的字符类型,最多存储 4000 个字节
    (3LONG :  大文本类型。 最大可以存储 2 个 G
2.数值型
    NUMBER :  数值类型
    例如:NUMBER(5)      最大可以存的数为 99999
    NUMBER(5,2)    最大可以存的数为 999.99
3.日期型
    (1)DATE:日期时间型,精确到秒
    (2TIMESTAMP:精确到秒的小数点后 9
4.二进制型(大数据类型)
    (1CLOB :  存储字符,最大可以存 4 个 G
    (2BLOB:存储图像、声音、  视频等二进制数据,最多可以存 4 个 G

实例:

创建业主表

--业主表
create table t_owners
(
    id number primary key,
    name varchar2(30),
    addressid number,
    housenumber varchar2(30),
    watermeter varchar2(30),
    adddate date,
    ownertypeid number
);

--如果需要给表添加注释,需要额外的语句实现
comment on table t_owners is '业主表';

comment on column t_owners.id is '主键';
comment on column t_owners.name is '业主名称';
comment on column t_owners.addressid is '地址ID';
comment on column t_owners.housenumber is '门牌号';
comment on column t_owners.watermeter is '水表编号';
comment on column t_owners.adddate is '登记日期';
comment on column t_owners.ownertypeid is '业主类型ID';

其它表的创建见资料。

​​​​​​​4.2 修改表

1.  增加字段语法:

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

--增加字段
-- 为业主表增加两个字段  remark 字符串, outdate 日期类型
alter table t_owners add
(
    remark varchar2(20),
    outdate date
);

2.  修改字段语法:

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

--修改字段类型
--修改业主表增加的两个字段类型  remark char(66), outdate timestamp
alter table t_owners modify
(
    remark char(66),
    outdate timestamp
);

3. 修改字段名语法:

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

--修改字段名
--将业主表的 列名 outdate 重命名为 exitdate
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;
--删除多个字段
alter table t_owners drop  (remark,exitdate);

​​​​​​​4.3 删除表

语法:

DROP TABLE 表名;

第五章 数据增删改

5.1 插入数据

语法:

insert into 表名[(列名 1,列名 2 ,...)]   values(值 1,值 2 ,...);

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

向业主表插入数据:

--1、插入数据
insert  into  t_owners
values(1, '张三丰', 1, '2-2', '5678', sysdate, 1, sysdate);

语句中的 sysdate 是系统变量用于获取当前日期,点击齿轮的图标后,再点击下

图的绿色图标,此图标为 commit

我们再次录入一条数据,语句如下:

insert into t_owners
values (4, '刘德华', 1, '2-3', '9876', sysdate, 1, sysdate);

commit;

​​​​​​​5.2 修改数据

语法:

update  表名  set  列名1=值1, 列名2=值2 ,.... where  修改条件;

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

需求:将 ID 为 1 的业主的登记日期更改为三天前的日期

update t_owners set adddate=adddate-3 where id=1;

​​​​​​​5.3 删除数据

语法 1 :

delete  from  表名  where  删除条件;

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

需求:删除业主 ID 为 4 的业主信息

delete from t_owners where id=4;
commit;

语法 2:

truncate    table    表名称

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

1.   delete 删除的数据可以 rollback

2.   delete 删除可能产生碎片,并且不释放空间

3.   truncate 是先摧毁表结构,再重构表结构

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/467988.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

考研要求掌握C语言(归并排序)

归并排序考啥? 在考研中归并排序只出在选择题,理解原理很重要 且在考研中考靓靓归并,还是比较简单的 归并排序原理 就是每次分一半,直到每一半只含有一个或不能再分时,一半一半的进行排序,最终合并两个…

软件工程概论项目(一)

距离软工概论项目答辩还有五个周的时间,需要做一个项目,把心得体会都做一个记录。以便以后进行回顾和反思 这里写目录标题 一、环境的配置gitbash 一、环境的配置 gitbash 安装gitbash,简单说两句,git用于多人协作和代码托管&am…

Linux网络设置、FTP

Linux网络设置、FTP 文章目录 Linux网络设置、FTP查看网络接口信息 ifconfig查看主机名称 hostname命令查看路由表条目 route命令查看网络连接情况 netstat命令获取socket统计信息 ss命令测试网络连接 ping命令跟踪数据包 traceroute命令域名解析 nslookup命令设置网络参数的方…

【css flex 多行均分有间隙布局】

小程序、web均可使用&#xff0c;我当前用的是小程序 <view class"job_tab_container flex_between"><view class"job_tab_item"></view><view class"job_tab_item"></view><view class"job_tab_item&qu…

基于redis实现API接口访问次数限制

一&#xff0c;概述 日常开发中会有一个常见的需求&#xff0c;需要限制接口在单位时间内的访问次数&#xff0c;比如说某个免费的接口限制单个IP一分钟内只能访问5次。该怎么实现呢&#xff0c;通常大家都会想到用redis&#xff0c;确实通过redis可以实现这个功能&#xff0c…

口子查好做吗?有什么特点?

大家好&#xff0c;我是橙河老师&#xff0c;一家问卷公司老板&#xff0c;今天讲一讲“口子查好做吗&#xff1f;有什么特点&#xff1f;” 1.口子查是公开性资源&#xff0c;由国外问卷公司直接发布在主流的平台上&#xff0c;比如我们的抖音、百度这些平台&#xff0c;竞争…

【Windows】Android Studio 上cmd 换为Powershell 终端

最近在Windows 环境下Android Studio 的Terminal 终端&#xff0c;低版本默认用的是cmd.exe&#xff0c;好多linux 命令不支持&#xff0c;有时候一不小心就记忆错了&#xff1b;干脆直接换成Windows PowerShell 得了。 下载Powershell&#xff1a;https://aka.ms/PSWindows 选…

【Linux-进程间通信】了解信号量 + 共享内存 + 消息队列的应用

信号量&#xff08;了解&#xff09; 1.概念理论渗透 1.多个执行流&#xff08;进程&#xff09;&#xff0c;能看到的同一份资源&#xff1a;共享资源 2.被保护起来的资源-----临界资源---同步和互斥----用互斥的方式保护共享资源----临界资源 3.互斥&#xff1a;任何时刻…

Cesium着色器的创意和方法(五——Polyline)

不接受反驳&#xff0c;线段在三维里面的渲染比多边形的渲染更复杂。因为线是没有宽度的&#xff0c;并且还需要时时刻刻向着你。 首先看下Cesium的线段的一些效果。这条线段非常宽&#xff08;20个像素&#xff09;&#xff0c;有两个需要留意观察的。一是线段并非实时面对我…

头歌——数据库系统原理(数据高级查询实验2)

文章目录 AVG() 函数的使用代码 COUNT() 函数的使用代码 MAX() 函数和 MIN() 函数的使用代码 SUM() 函数的使用代码 AVG() 函数的使用 返回某一字段的平均值 AVG() 函数通过计算某字段&#xff08;列&#xff09;内容&#xff08;行&#xff09;的个数和它们的数值之和来返回某…

【基于轻量型架构的WEB开发】课程 12.5 数据回写 Java EE企业级应用开发教程 Spring+SpringMVC+MyBatis

12.5 数据回写 12.5.1 普通字符串的回写 接下来通过HttpServletResponse输出数据的案例&#xff0c;演示普通字符串的回写&#xff0c;案例具体实现步骤如下。 1 创建一个数据回写类DataController&#xff0c;在DataController类中定义 showDataByResponse()方法&#xff…

软件测试 软考

在软件测试中&#xff0c;覆盖准则是衡量测试用例是否充分覆盖程序各个部分的标准。不同的覆盖准则有不同的强度。按覆盖强度从低到高排序&#xff0c;常见的覆盖准则如下&#xff1a; 语句覆盖&#xff08;Statement Coverage&#xff09;&#xff1a;要求测试用例至少执行一次…

DirectShow过滤器开发-写AVI视频文件过滤器

下载本过滤器DLL 本过滤器将视频流和音频流写入AVI视频文件。 过滤器信息 过滤器名称&#xff1a;写AVI 过滤器GUID&#xff1a;{2EF49957-37DF-4356-A2A0-ECBC52D1984B} DLL注册函数名&#xff1a;DllRegisterServer 删除注册函数名&#xff1a;DllUnregisterServer 过滤器有…

uniapp实现H5和微信小程序获取当前位置(腾讯地图)

之前的一个老项目&#xff0c;使用 uniapp 的 uni.getLocation 发现H5端定位不准确&#xff0c;比如余杭区会定位到临平区&#xff0c;根据官方文档初步判断是项目的uniapp的版本太低。 我选择的方式不是区更新uniapp的版本&#xff0c;是直接使用高德地图的api获取定位。 1.首…

【WRF理论第七期】WPS预处理

【WRF理论第七期】WPS预处理 运行WPS&#xff08;Running the WPS&#xff09;步骤1&#xff1a;Define model domains with geogrid步骤2&#xff1a;Extracting meteorological fields from GRIB files with ungrib步骤3&#xff1a;Horizontally interpolating meteorologic…

机器学习(一)——基本概念、模型的评估与选择

目录 1 关于2 概念2.1 基础概念2.2 学习过程2.3 预测与评估2.4 标记与分类2.4.1 标记2.4.2 分类 2.5 回归分析2.6 聚类分析2.7 学习类型2.8 泛化能力2.9 统计学概念 3 模型评估与选择3.1 经验误差与过拟合3.2 评估方法3.2.1 留出法3.2.2 交叉验证法3.2.3 自助法3.2.4 调参与最终…

小白docker入门简介

Dockerfile入门使用分享 一、docker是啥二、镜像仓库三、自定义镜像四、动手做机甲玩偶五、帮我做数学题六、计算功能的写法七、咒语翻译器八、放屁九、解决问题 一、docker是啥 最开始我和你一样&#xff0c;围着镜像、容器、docker的名词团团转&#xff0c;其实没那么复杂。…

gitlab无法创建合并请求是所有分支都不显示

点击Merge Requests ------> New merge request 创建新的合并请求时&#xff0c;在Source branch和Target branch中一个分支都不显示 排查思路&#xff1a; 1.怀疑是权限问题。 发现只有我的一个账号出现&#xff0c;检查了账号的权限&#xff0c;尝试了master、develop角色…

macOS15.1及以上系统bug:开发者证书无法打开,钥匙串访问无法打开一直出现图标后立马闪退

团队紧跟苹果最新系统发现bug:今日设备信息如下,希望能带给遇到这个问题的开发者一点帮助。 错误图如下: 点击证书文件后,先出现钥匙串访问图标,后立马闪退消失 中间试过很多方法,都是一样的表现,最后好在解决了,看网上也没有相关的帖子,这里直接写解决办法和导致原因…

python实战案例——爬取A站视频,m3u8格式视频抓取(内含完整代码!)

1、任务目标 目标网站&#xff1a;A站视频&#xff08;https://www.acfun.cn/v/ac40795151&#xff09; 要求&#xff1a;抓取该网址下的视频&#xff0c;将其存入本地&#xff0c;视频如下&#xff1a; 2、网页分析 进入目标网站&#xff0c;打开开发者模式&#xff0c;我们发…