OracleDay01

  • ORACLE 简介
    1. 什么是 ORACLE

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

B/S 体系结构的数据库之一。

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

ORACLE 数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个

完备关系的产品;作为分布式数据库它实现了分布式处理功能。

ORACLE 数据库具有以下特点:

(1)支持多用户、大事务量的事务处理

(2)数据安全性和完整性控制

(3)支持分布式数据处理

(4)可移植性

    1. ORACLE 体系结构
      1. 数据库

Oracle 数据库是数据的物理存储。  这就包括(数据文件 ORA 或者 DBF、控 制文件、联机日志、参数文件)。其实 Oracle 数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库。可以看作是 Oracle  就只有一个大数据库。

      1. 实例

一个Oracle 实例(Oracle Instance)有一系列的后台进程(Backguound Processes)内存结构(Memory Structures)组成。一个数据库可以有 n 个实例。

      1. 数据文件(dbf)

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

行。

      1. 表空间

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

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

(datafile)。一个数据文件只能属于一个表空间。

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

由于 oracle 的数据库不是普通的概念,oracle 是有用户和表空间对数据进行 管理和存放的。但是表不是有表空间去查询的,而是由用户去查的。因为不同用

户可以在同一个表空间建立同一个名字的表!这里区分就是用户了!

      1. 用户

用户是在表空间下建立的。用户登陆后只能看到和操作自己的表, ORACLE

的用户与 MYSQL 的数据库类似,每建立一个应用需要创建一个用户。

  • ORACLE 安装与配置
    1. 安装虚拟机

正常下一步即可

注意 安装 d盘/opt目录下, 这个目录没有中文没有空格

      1. 在vm中配置网关
      1. 修改 windows 的网卡信息
    1. 扫描已安装oracle的windows11系统

将压缩包解压到 没有中文没有空格的目录下.

    1. oracle已安装

检测oracle是否正常

这四个服务, 必须是正在运行才可以.

    1. PLSQL (oracle的客户端)

系统用户: system   密码: Aa123456

system

Aa123456

orcl

  • 准备数据 来源: 项目案例《自来水公司收费系统》
    1. 项目介绍与需求分析

XXX  市自来水公司为更好地对自来水收费进行规范化管理,决定委托传智 播客.黑马程序员开发《自来水公司收费系统》。考虑到自来水业务数量庞大,

数据并发量高,决定数据库采用 ORACLE 数据库。主要功能包括:

1.、基础信息管理:

(1)业主类型设置

(2)价格设置

(3)区域设置

(4)收费员设置

(5)地址设置

2、业主信息管理:

(1)业主信息维护

(2)业主信息查询

3、收费管理:

(1)抄表登记

(2)收费登记

(3)收费记录查询

(4)欠费用户清单

4、统计分析

(1)收费日报单

(2)收费月报表

    1. 表结构设计

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

收费员

    1. 创建表空间

create tablespace waterboss

datafile 'C:\data\waterboss.dbf'

size 100m

autoextend on

next 10m

解释:

waterboss 为表空间名称

datafile  用于设置物理文件名称

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

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

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

    1. 创建用户

create user c##wateruser

identified by itcast

default tablespace waterboss

wateruser 为创建的用户名

identified by  用于设置用户的密码

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

    1. 用户赋权

grant dba to c##wateruser

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

    1. 切换用户 c##wateruser

  • 表的创建、修改与删除
    1. 创建表

语法:

CREATE TABLE 表名称(

字段名 类型(长度) primary key,

字段名 类型(长度),

.......

);

数据类型:

1.  字符型

(1)CHAR :    固定长度的字符类型,最多存储 2000 个字节

(2)VARCHAR2    :可变长度的字符类型,最多存储 4000 个字节

(3)LONG :  大文本类型。 最大可以存储 2 个 G

2.数值型

NUMBER :  数值类型

例如:NUMBER(5)      最大可以存的数为 99999

NUMBER(5,2)    最大可以存的数为 999.99

3.日期型

(1)DATE:日期时间型,精确到秒

(2)TIMESTAMP:精确到秒的小数点后 9 位

4.二进制型(大数据类型)

(1)CLOB :  存储字符,最大可以存 4 个 G

(2)BLOB:存储图像、声音、  视频等二进制数据,最多可以存 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

);

其它表的创建见资料“自来水收费系统建表语句.sql ”

    1. 修改表

1.  增加字段语法:

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

[DEFAULT  默认值]...)

为业主表增加两个字段,语句:

--追加字段

ALTER TABLE t_owners ADD

(

  REMARK VARCHAR2(20),

  OUTDATE DATE

)

2.  修改字段语法:

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

[DEFAULT  默认值]...)

修改两个字段的类型,语句:

--修改字段

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...)

语句:

--删除字段

ALTER TABLE t_owners DROP COLUMN REMARK;

    1. 删除表

语法:

DROP TABLE 表名称

  • 数据增删改
    1. 插入数据

语法:

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

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

向业主表插入数据:

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;

    1. 修改数据

语法:

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

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

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

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

    1. 删除数据

语法 1 :

DELETE FROM  表名    WHERE       删除条件;

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

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

delete from t_owners where id=4;

commit;

语法 2:

TRUNCATE    TABLE    表名称

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

1.   delete 删除的数据可以 rollback

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

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

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

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

相关文章

NLP预训练模型-GPT-3

ChatGPT GPT-3是OpenAI开发的一个自然语言处理(NLP)预训练模型。GPT代表“生成式预训练变换器”(Generative Pretrained Transformer)。GPT-3是GPT系列的第三代模型,是一种采用了深度学习技术的强大语言模型&#xff…

mapreduce中的ReduceTask工作机制(Hadoop)

ReduceTask 是 Hadoop 中的一个重要组件,负责对 MapTask 的输出进行合并、排序和归并,最终生成最终的输出结果。 ReduceTask 的工作机制 1. 分组(Shuffle)阶段: 在分组阶段,ReduceTask 会从多个 Mapper …

(救命)Kali Linux或者其他linux系统的触控板右键按下没反应,失效的解决办法

我每次安装kali的时候都会选择gnome桌面,每次安装好右键都是禁用的,按下和左键效果一样,每次都得去调鼠标右键,原来就不好找到那个选项,这次踏马居然连那个选项都没了,如果你去网上找教程你会发现网上根本没…

CX5120-0125倍福CPU模块维修PLC控制器CX5120全系列主机电脑深圳捷达工控维修

工业计算机服务与维修 为任何品牌的工业计算机、显示器、人机界面 (HMI) 和面板计算设备提供服务、维修和改造。您可以信赖我们延长生命周期,包括不再投放市场的产品。 工业计算机维修与保养 您的工业计算机专家 工业计算机维修服务 深圳捷达工控维修深知做好工业…

详解 C++ 实现K-means算法

一、K-means算法概述 K-means算法是一种非常经典的聚类算法,其主要目的是将数据点划分为K个集群,以使得每个数据点与其所属集群的中心点(质心)的平方距离之和最小。这种算法在数据挖掘、图像处理、模式识别等领域有着广泛的应用。 二、K-means算法的基本原理 K-means算法…

【Spring Boot】掌握Spring Boot:深入解析配置文件的使用与管理

💓 博客主页:从零开始的-CodeNinja之路 ⏩ 收录文章:【Spring Boot】掌握Spring Boot:深入解析配置文件的使用与管理 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 Spring Boot 配置文件一. 配置文…

基于SpringBoot+Vue的幼儿园管理系统 免费获取源码

项目源码获取方式放在文章末尾处 项目技术 数据库:Mysql5.7/8.0 数据表:19张 开发语言:Java(jdk1.8) 开发工具:idea 前端技术:vue 后端技术:SpringBoot 功能简介 (有文档) 项目获取关键字&#…

Vue实现多角色登录,Vue-Router路由守卫控制权限页面

实现页面侧边栏和头部不变,当点击某个功能时,只有主体部分发生变化,这要用到子路由技术 我的项目结构如上,其中包含侧边栏和头部的文件是Manage.vue,主页面是Home.vue,个人页面是Person.vue,用户…

每日三个JAVA经典面试题(四十四)

1.什么是反应式编程?它如何优化Web应用的性能? 反应式编程是一种编程范式,它通过异步数据流的方式处理事件和数据,以实现高效的数据处理和事件驱动的程序设计。在反应式编程中,数据流可以被观察(Observabl…

固态硬盘数据都不能恢复吗?

固态硬盘的数据在某些特定情况下是可以被成功恢复的。 尽管固态硬盘的工作原理与机械硬盘不同,数据恢复方面相对困难,但并不意味着所有情况下都无法恢复数据。 例如,当固态硬盘发生逻辑损坏时,数据恢复的几率会相对较高。此外&am…

回归预测 | Matlab实现DBO-HKELM蜣螂算法优化混合核极限学习机多变量回归预测

回归预测 | Matlab实现DBO-HKELM蜣螂算法优化混合核极限学习机多变量回归预测 目录 回归预测 | Matlab实现DBO-HKELM蜣螂算法优化混合核极限学习机多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现DBO-HKELM蜣螂算法优化混合核极限学习机多变量…

二分答案算法

基本概念 将最值问题转换为判定 与二分查找的区别 二分查找:在一个已知的有序数据集上进行二分地查找 二分答案:答案有一个区间,在这个区间中二分,直到找到最优答案 如何判断一个题是不是用二分答案做的 1、答案在一个区间内…

【GIS面试】GIS算法介绍

作者:后端小肥肠 1. 前言 在地理信息系统(GIS)的领域中,算法扮演着极其重要的角色,它们使得复杂的空间数据分析成为可能。无论是在环境科学、城市规划,还是在灾害管理等众多领域,高效和精确的算…

Zabbix监控Oracle归档日志空间

1、oracle查看归档日志空间的sql语句 select sum(PERCENT_SPACE_USED) from v$recovery_area_usage; 2、交互式查看oracle归档日志空间的命令&#xff0c;可以手动执行一下&#xff0c;注意要用oracle用户 sqlplus -S "/ as sysdba" << EOF select sum(PER…

解决“ImportError: DLL load failed while importing _rust: 找不到指定的程序的问题

运行 scrapy startproject wikiSpider 报错&#xff1a;ImportError: DLL load failed while importing _rust: 找不到指定的程序。 经过尝试 可以更换Python解释器版本来解决 1、点击crtlalts打开设置 点击项目>解释器 选择3.11解释器 &#xff08;我原来报错用的3.9的解…

企业车辆违章查询工具,批量查询企业名下车辆违章情况,专为网约车/出租车管理公司而生

功能介绍 功能分为&#xff1a;违章管理、车辆管理、任务管理 违章管理如图&#xff1a; 搜索条件为车牌号 筛选条件为&#xff1a;时间区间、企业选择、是否处理违章、是否缴纳罚款、所属车管员 车牌管理如图&#xff1a; 可以新增车牌 查询条件为&#xff1a;车牌信息、车…

【无人机路径规划】基于改进差分算法实现三维多无人机协同航迹规划附matlab代码

于改进差分算法实现三维多无人机协同航迹规划的课程设计大纲的示例: 研究背景 研究背景: 随着无人机技术的快速发展,无人机在各个领域中的应用越来越广泛,如监测、搜索救援、物流等。在一些任务中,需要多个无人机进行协同工作,例如进行搜索与救援任务时,多个无人机可以…

为什么Redis使用单线程 性能会优于多线程?

前言 在计算机领域&#xff0c;性能一直都是一个关键的话题。无论是应用开发还是系统优化&#xff0c;我们都需要关注如何在有限的资源下&#xff0c;实现最大程度的性能提升。Redis&#xff0c;作为一款高性能的开源内存数据库&#xff0c;因其出色的单线程性能而备受瞩目。那…

项目之旅(第三周)

文章目录 项目学习总结一、form表单的提交1&#xff09;、提交跳转型2)、ajax异步提交form表单&#xff0c;前端控制下一步走向型 二、.gitignore文件用法及如何配置三、点击除盒子之外的地方盒子隐藏四、thymeleaf复用div 项目总结生活总结 项目学习总结 一、form表单的提交 …

微信小程序手机授权报错:pad block corrupted

微信小程序手机号授权登录&#xff0c;传参至后台解密&#xff0c;大概率都会成功&#xff0c;但是&#xff0c;偶尔会遇到解密失败&#xff0c;报错信息为&#xff1a; javax.crypto.BadPaddingException: pad block corrupted&#xff1b;在此记录一下解决方案。 更改前获取…