![img_943f674d603a4619707aad9cf0506c4e.png](https://i-blog.csdnimg.cn/blog_migrate/d12f28c7dffb2fba321db0d364a5089a.png)
Oracle数据库的体系结构
数据库:
Oracle数据库是数据的物理存储,这就包括(数据文件ORA或者DBF、控制文件、联机日志、参数文件)。其实Oracle数据库的概念和其他数据库不一样,这里的数据库是一个操作系统只有一个库。可以看多是Oracle就只有一个大数据库
实例:
一个Oracle实例(Oracle Instance)有一系列的后台进程(BackGoundProcesses) 和内存结构(Memory Structures)组成,一个数据库可以有N个实例。
数据文件(dbf):
数据文件是数据库的物理存储单位,数据库的数据是存储在表空间中的,真正是在某一个或者多个数据文件中,而一个表空间可以由一个或者多个数据文件组成,一个数据文件只能属于一个表空间,一旦数据文件被加入到某个表空间后,就不能删除这个文件,如果要删除某个数据文件,只能删除其所属于的表空间才行。
表空间:
表空间是Oracle对物理数据库上相关数据文件(ORA或者DBF文件)的逻辑映射,一个数据库在逻辑上被划分成一个到若干个表空间,每个表空间包含了在逻辑上相关联的一组结构,每个数据库至少有一个表空间(称之为System表空间)每个表空间由同一个磁盘上的一个或者多个文件组成,这些文件叫数据文件(datafile)一个数据文件只能属于一个表空间。
![img_6ec7178a87629def0e631aa5ba256034.png](https://i-blog.csdnimg.cn/blog_migrate/e6b704e69ab0ed65cced20ee9c08837b.png)
用户:
用户是在实例下建立的,不同的实例中可以建相同名字的用户。
![img_14f54238f3de847eeef5dae1b0a8c22b.png](https://i-blog.csdnimg.cn/blog_migrate/a9ff262dad48de21607ed9a088e90936.png)
基本查询
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
![img_b3b6a75f620610fc0928cae3bfe312df.png](https://i-blog.csdnimg.cn/blog_migrate/babd99390458e2ddc0dfea74ca8b8e70.png)
![img_6698312866656bb67b32800312f2792d.png](https://i-blog.csdnimg.cn/blog_migrate/460ddb1419e26b6c46238f90d0cc2da6.png)
条件查询和排序
使用where语句对结果进行过滤
select *|列名 from 表名 where ....(条件:比较运算符)
其他比较运算符
between...and... (在两值之间,包含边界)
IN(set) 等于值列表中的一个
LIKE 模糊查询
IS NULL 空值
逻辑运算符
AND 逻辑并
OR 逻辑或
NOT 逻辑否
Where 语句示例
IS NOT NULL
![img_d32fc19f45dd7e4bfaea9a33d3d2e661.png](https://i-blog.csdnimg.cn/blog_migrate/d3c4cd67a8f99155fc97d5e3db4a2533.png)
IS NULL
![img_e78033bbd51c54869548df73a947c9b6.png](https://i-blog.csdnimg.cn/blog_migrate/6fa673026caa35706b35ecb5ac9b119e.png)
![img_a9bbfeff6aead2ca9af4848a90bff81f.png](https://i-blog.csdnimg.cn/blog_migrate/4032c0e37cfae2b8abd995e799b6816b.png)
![img_1d865e1f87b9ed79bc720ede8953f3ef.png](https://i-blog.csdnimg.cn/blog_migrate/a007d965af6df55dee8e0dd1807bb9c9.png)
![img_b52ff468e2150ed8d114761d2737f5bb.png](https://i-blog.csdnimg.cn/blog_migrate/7c00764e7830adc43bffee25f3609ef1.png)
![img_d82fe6c0ed8279e14a67013d2db1b8a7.png](https://i-blog.csdnimg.cn/blog_migrate/b07f1f2795e3fd4237367dbfc0378715.png)
![img_b6f44b19cc62c0c907aa1a322fb333e7.png](https://i-blog.csdnimg.cn/blog_migrate/c76301e56a92ba214ad1bfeff52f2801.png)
![img_8ebd7b14034cfa261cd1945943bf18f9.png](https://i-blog.csdnimg.cn/blog_migrate/22dbd029ba63f46defdbf43979eff647.png)
模糊查询
![img_17493522077306db8f841ede8e6611d8.png](https://i-blog.csdnimg.cn/blog_migrate/432af3b86788ae89d3db038d0c764d4c.png)
![img_5222287647aa4d82266065f19e4b4fc9.png](https://i-blog.csdnimg.cn/blog_migrate/85ce05affcad54209975b4119ed2761c.png)
OrderBY
![img_94839c7e4d027d932da93602359c6d0a.png](https://i-blog.csdnimg.cn/blog_migrate/590020cc08301074fe827cbf7f63664f.png)
排序中的空值问题
排序的时候可能出现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)