oracle数据库知识

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

  2. oracle的安装

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

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

3.3 用户:
用户是在实例下建立的。不同实例可以建相同名字的用户。

3.4 表空间
表空间是 Oracle 对物理数据库上相关数据文件(ORA 或者 DBF 文件)的逻辑映射。一个数据库在逻辑上被划分成一到若干个表空间,每个表空间包含了在逻辑上相关联的一组结构。每个数据库至少有一个表空间(称之为 system 表空间)。 每个表空间由同一磁盘上的一个或多个文件组成,这些文件叫数据文件(datafile)。一个数据文件只能属于一个表空间。

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

注: 表的数据,是有用户放入某一个表空间的,而这个表空间会随机把这些表数据放到一个或者多个数据文件中。 由于oracle 的数据库不是普通的概念,oracle 是有用户和表空间对数据进行管理和存放的。 但是表不是有表空间去查询的,而是由用户去查的。因为不同用户可以在同一个表空间建立同一个名字的表!这里区分就是用户了!

3.6 体系结构图

  1. 创建表空间
            创建表空间的命令:

create tablespace itcast

datafile 'c:\itcast.dbf'

size 100m

autoextend on

next 10m

解析:

itcast 为表空间名称

datafile 指定表空间对应的数据文件

size 定义表空间的初始大小

autoextend on 当表空间存储都占满时,自动增长

next 一次自动增长的大小。
5. 用户
5.1 创建用户

create user itcastuser

identified by itcast

default tablespace itcast

解析:

identified by 后边是用户的密码

default tablespace 后边是表空间名称

oracle 数据库与其它数据库产品的区别在于,表和其它的数据库对象都是存储在用户下的。

5.2 用户赋权限

Oracle 中已存在三个重要的角色:connect 角色,resource 角色,dba 角色。 connect 角色:是授予用户的典型权利

resource 角色: 是授予开发人员的

dba 角色:拥有全部特权,是系统最高权限,只有 DBA 才可以创建数据库结构,并且系统权限也需要 DBA 授出,且 DBA 用户可以操作全体用户的任意基表,包括删除

赋权限命令:grant dba to itcastuser  给用户赋予dba权限

  1. oracle数据类型

    https://liushilive.github.io/github_exercise_oracle/md/概念/Oracle数据类型.html

  2. 表的管理

    sql

  3. 单行函数

8.1 字符函数

8.1.1 把小写字符转换成大写字符:upper('smith')

8.1.2把大写字符变成小写字符:lower('SMITH')

8.2 数值函数

8.2.1 四舍五入函数:ROUND()

默认情况下 ROUND 四舍五入取整,可以自己指定保留的位数。

8.3 日期函数

8.3.1 日期的加减:

日期 – 数字 = 日期

日期 + 数字 = 日期

日期 – 日期 = 数字

8.3.2 获得两个时间段中的月数:MONTHS_BETWEEN()

范例:查询所有雇员进入公司的月数

select ename, round(MONTHS_BETWEEN(sysdate,hiredate)) from emp

8.4 转换函数

8.4.1 TO_CHAR:字符串转换函数

8.4.2 TO_DATE:日期转换函数,可以把字符串的数据转换成日期类型

8.5 通用函数

8.5.1 空值处理 nvl

8.5.2 Decode 函数

8.5.3 case when

  1. 多行函数(聚合函数)

9.1 统计记录数 count()

9.2 最小值查询 min()

9.3 最大值查询 max()

9.4 查询平均值 avg()

9.5 求和函数 sum()

  1. 分组统计

分组统计需要使用 GROUP BY 来分组

语法:SELECT * |列名 FROM 表名 {WEHRE 查询条件} {GROUP BY 分组字段} ORDER BY 列 名 1 ASC|DESC,列名 2...ASC|DESC

  1. 多表查询

11.1 多表连接基本查询

使用一张以上的表做查询就是多表查询

语法: SELECT {DISTINCT} *|列名.. FROM 表名 别名,表名 1 别名 {WHERE 限制条件 ORDER BY 排序字段 ASC|DESC...}

11.2 外连接(左右连接)

使用(+)表示左连接或者右连接,当(+)在左边表的关联条件字段上时是左连接,如果是在右边表的关联条件字段上就是右连接。

  1. 子查询

12.1 子查询:在一个查询的内部还包括另一个查询,则此查询称为子查询。 Sql的任何位置都可以加入子查询。

12.2 子查询在操作中有三类:

单列子查询:返回的结果是一列的一个内容

单行子查询:返回多个列,有可能是一个完整的记录

多行子查询:返回多条记录

补充:

Oracle和Mysql的区别
在Mysql中,一个用户下可以创建多个库:

而在Oracle中,Oracle服务器是由两部分组成

数据库实例【理解为对象,看不见的】
数据库【理解为类,看得见的】
一个数据库实例可拥有多个用户,一个用户默认拥有一个表空间。

表空间是存储我们数据库表的地方,表空间内可以有多个文件。

当我们使用Oracle作为我们数据库时,我们需要指定用户、表空间来存储我们所需要的数据!

posted @   starSgz  阅读(271)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示