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 是先摧毁表结构,再重构表结构

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端好用的网站分享——CSS(持续更新中)

1.CSS Scan 点击进入CSS Scan CSS盒子阴影大全 2.渐变背景 点击进入color.oulu 3.CSS简化压缩 点击进入toptal 4.CSS可视化 点击进入CSS可视化 这个强推,话不多说,看图! 5.Marko 点击进入Marko 有很多按钮样式 6.getwaves 点击进入getwaves 生…

黑马官网2024最新前端就业课V8.5笔记---HTML篇

Html 定义 HTML 超文本标记语言——HyperText Markup Language。 标签语法 标签成对出现&#xff0c;中间包裹内容<>里面放英文字母&#xff08;标签名&#xff09;结束标签比开始标签多 /拓展 &#xff1a; 双标签&#xff1a;成对出现的标签 单标签&#xff1a;只有开…

6:arm condition code flags详细的讲解

目录 6.1 arm的 condition code flag 的详细讲解 6.1.1C 6.1.2Z 6.1.3N 6.1.4V 6.1 arm的 condition code flag 的详细讲解 在这篇文章中&#xff0c;我更加严格与严谨的讲解一下 arm的四个condition code flags&#xff0c;因为这个在汇编中还是非常重要的。 6.1.1C 在…

其他节点使用kubectl访问集群,kubeconfig配置文件 详解

上述两种方式&#xff1a;可使用kubectl连接k8s集群。 $HOME/.kube/config 是config文件默认路径&#xff0c;要么直接定义环境变量&#xff0c;要么就直接把文件拷过去 config文件里面&#xff0c;定义了context&#xff0c;里面指定了用户和对应的集群信息&#xff1a; ku…

新世联科技:NG2-A-7在DAC空气捕集提取CO2的应用

一、DAC空气捕集提取CO2的介绍 直接空气碳捕获&#xff08;Direct Air Capture&#xff0c;简称DAC&#xff09;是一种直接从大气中提取二氧化碳的技术。 二、DAC空气捕集提取CO2的前景 从大气中提取的这种二氧化碳可以作为循环经济的一部分以各种不同方式使用。未来&#xf…

十四届蓝桥杯STEMA考试Python真题试卷第二套第五题

来源:十四届蓝桥杯STEMA考试Python真题试卷第二套编程第五题 本题属于迷宫类问题,适合用DFS算法解决,解析中给出了Python中 map() 和列表推导式的应用技巧。最后介绍了DFS算法的两种常见实现方式——递归实现、栈实现,应用场景——迷宫类问题、图的连通性、树的遍历、拓朴排…

js WebAPI黑马笔记(万字速通)

此笔记来自于黑马程序员&#xff0c;pink老师yyds 复习&#xff1a; splice() 方法用于添加或删除数组中的元素。 注意&#xff1a; 这种方法会改变原始数组。 删除数组&#xff1a; splice(起始位置&#xff0c; 删除的个数) 比如&#xff1a;1 let arr [red, green, b…

【C++】踏上C++学习之旅(五):auto、范围for以及nullptr的精彩时刻(C++11)

文章目录 前言1. auto关键字&#xff08;C11&#xff09;1.1 为什么要有auto关键字1.2 auto关键字的使用方式1.3 auto的使用细则1.4 auto不能推导的场景 2. 基于范围的for循环&#xff08;C11&#xff09;2.1 范围for的语法2.2 范围for的使用条件 3. 指针空值nullptr&#xff0…

【Spring】Spring的简单创建和使用

前言 Spring Bean 可以通过两种主要方式定义&#xff1a;基于 XML 配置文件和基于注解。今天我们讲解基于 XML 配置文件‌来定义 Bean &#xff0c;在 XML 配置文件中&#xff0c;使用 <bean> 元素定义 Bean&#xff0c;描述 Bean 的创建、配置和依赖关系&#xff0c;并存…

二次封装 el-pagination 组件存在的问题

在使用 Element Plus 组件时&#xff0c;有时会遇到组件不完全符合需求的情况&#xff0c;这时可能需要对其进行二次封装。在封装 Pagination 组件时&#xff0c;我们会发现一些属性和函数无法正常使用&#xff0c;下面将详细探讨这些问题&#xff0c;并提供一下思路和想法。 …

想唱就唱 2.15.63| 电视免VIP唱K软件,支持手机点歌

想唱就唱是一款实用性强的K歌软件&#xff0c;支持歌曲搜索、歌手搜索及排行榜。软件支持歌曲下载、点歌、插队&#xff0c;还支持手机扫码点歌&#xff0c;功能与KTV软件一致&#xff0c;让用户在家也能享受KTV体验。首次加载较慢&#xff0c;因采用先下载后播放方式。会员版已…

图文深入介绍Oracle DB link(一)

1. 引言&#xff1a; 本文图文深入介绍Oracle DB link&#xff0c;先介绍基本概念。 2.DB link的定义 数据库链接&#xff08;Database Link&#xff0c;简称 DB Link&#xff09;是 Oracle 数据库中的一个重要功能。它是一种在一个 Oracle 数据库实例中访问另一个 Oracle 数…

江协科技STM32学习- P34 I2C通信外设

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…

vxe-table 表格中实现多行文本的编辑

Vxe UI vue vxe-table 表格中实现多行文本的编辑 vxe-table v4.8 要在表格中使用多行文本编辑&#xff0c;可以通过设置行高方式&#xff0c;再设置 cell-config.verticalAlign: ‘top’ 单元格垂直对齐方式&#xff0c;实现顶部对齐&#xff0c;因为默认是居中对齐。 代码 …

Linux开发工具——make/Makefile

目录 一、什么是makefile&#xff1f; 二、为什么要有makefile&#xff1f; 三、makefile的使用 1.依赖关系与依赖方法 2.伪目标 3.定义变量 4.特殊符号 四、makefile的执行逻辑 一、什么是makefile&#xff1f; Makefile是一种自动化构建工具&#xff0c;make是一条指…

`掌握Python-PPTX,让PPt制作变得轻而易举!`

文章目录 掌握Python-PPTX&#xff0c;让PPT制作变得轻而易举&#xff01;背景介绍python-pptx 是什么&#xff1f;如何安装 python-pptx&#xff1f;简单库函数使用方法应用场景常见Bug及解决方案总结 掌握Python-PPTX&#xff0c;让PPT制作变得轻而易举&#xff01; 背景介绍…

uniapp vue3 使用echarts-gl 绘画3d图表

我自己翻遍了网上&#xff0c;以及插件市场&#xff0c;其实并没有uniapp 上使用echarts-gl的样例&#xff0c;大多数都是使用插件市场的echarts的插件 开始自己尝试直接用echartsgl 没有成功&#xff0c;后来尝试使用threejs 但是也遇到一些问题&#xff0c;最后我看官网的时…

windows运行ffmpeg的脚本报错:av_ts2str、av_ts2timestr、av_err2str => E0029 C4576

问题描述 我目前的环境是&#xff1a; 编辑器&#xff1a; Microsoft Visual Studio Community 2022 (64 位) 运行的脚本是ffmpeg自带的remux样例&#xff0c;只不过我想用c语言执行这个样例。在执行的过程中报错如下图&#xff1a; C4576 后跟初始值设定项列表的带圆括…

Moore Perf System 1.1版本

Moore Perf System&#xff08;一款性能分析工具&#xff09; 提供可视化界面&#xff0c;在时间轴上按时间顺序显示 CPU 和 GPU 的事件、吞吐和性能指标&#xff0c;帮助开发人员方便、快速、准确的定位到系统级别的性能瓶颈&#xff0c;进而进行针对性分析和优化&#xff0c;…

『VUE』19. scope避免组件之间样式互相覆盖(详细图文注释)

目录 使用多个组件带有样式分析如何避免css覆盖总结 欢迎关注 『VUE』 专栏&#xff0c;持续更新中 欢迎关注 『VUE』 专栏&#xff0c;持续更新中 使用多个组件带有样式 ComPonent1.vue <template><h3>ComPonent1.vue</h3> </template><script&g…