Oracle详解(Ⅰ):世界上目前已知最好的关系型数据库

Oracle详解(Ⅰ):世界上目前已知最好的关系型数据库
Oracle

Oracle数据库的体系结构

数据库:

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

实例:

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

数据文件(dbf):

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

表空间:

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


Oracle详解(Ⅰ):世界上目前已知最好的关系型数据库
表空间
用户:

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


Oracle详解(Ⅰ):世界上目前已知最好的关系型数据库
架构图

基本查询

sql书面概念:
DML (数据库操作语言)
INSERT UPDATE DELETE
DDL (数据库定义语言)
CREATE DROP
DCL(数据库控制语言)
GRANT REVOKE

1.查询语法

select *|列名  from 表名;

2.别名用法

select 列名 别名,...  from 表名;

3.去重

select distinct *|列名  from 表名;

4.查询中的四则运算

eg: 查询员工的年薪
select ename,sal*12 income from emp;

5.连接符 ||

字符串连接查询 等同于mysql中的 concat
Oracle详解(Ⅰ):世界上目前已知最好的关系型数据库
Mysql concat

Oracle详解(Ⅰ):世界上目前已知最好的关系型数据库
Oracle连接符

条件查询和排序

使用where语句对结果进行过滤

select *|列名  from 表名 where ....(条件:比较运算符)
其他比较运算符

between...and... (在两值之间,包含边界)
IN(set) 等于值列表中的一个
LIKE 模糊查询
IS NULL 空值

逻辑运算符

AND 逻辑并
OR 逻辑或
NOT 逻辑否

Where 语句示例

IS NOT NULL


Oracle详解(Ⅰ):世界上目前已知最好的关系型数据库
IS NOT NULL

IS NULL


Oracle详解(Ⅰ):世界上目前已知最好的关系型数据库
IS NULL
Oracle详解(Ⅰ):世界上目前已知最好的关系型数据库
多个条件同时满足时使用AND
Oracle详解(Ⅰ):世界上目前已知最好的关系型数据库
多个条件或满足使用OR
Oracle详解(Ⅰ):世界上目前已知最好的关系型数据库
not的使用
Oracle详解(Ⅰ):世界上目前已知最好的关系型数据库
范围限制
Oracle详解(Ⅰ):世界上目前已知最好的关系型数据库
between and
Oracle详解(Ⅰ):世界上目前已知最好的关系型数据库
指定范围

模糊查询

Oracle详解(Ⅰ):世界上目前已知最好的关系型数据库
like
Oracle详解(Ⅰ):世界上目前已知最好的关系型数据库
不等于

OrderBY

Oracle详解(Ⅰ):世界上目前已知最好的关系型数据库
默认升序
排序中的空值问题

排序的时候可能出现null时就会产生问题,使用nulls first nulls last 来指定null值得显示位置

单行函数

接收字符输入返回字符串或者数值,dual是伪表
1.字符串的连接可以使用建议使用|| 而不是concat
select concat(String,String) from dual;
2.字符串的截取,使用substr,第一个参数是源字符串,第二个参数是开始索引,第三个参数是长度,开始索引使用1和0效果相同
3.获取字符串的长度
length (String) from dual;
4 字符串替换,第一个参数是源字符串,第二个参数被替换的字符串,第三个是替换字符串
select replace('String','1','o')from dual;

数值函数

ROUND:四舍五入
ROUND(100.333,2)
TRUNC:截断
TRUNC(100.33,2)
MOD:求余
MOD(100,30)