Oracle学习一——总体基础

  • 一、数据库分类
    • 1.1、数据库分类
    • 1.2、项目中如何合理地使用数据库,可以依据如下三个方面入手
    • 1.3、不同规模类型的数据库区别
  • 二、Oracle概念
  • 三、Oracle的安装
  • 四、Oracle数据库的体系结构
    • 4.1、数据库database
    • 4.2、实例
    • 4.3、数据文件dbf
    • 4.4、表空间
    • 4.5、用户
    • 4.6、SCOTT和HR用户
  • 五、Oracle和MYSQL的差别
  • 六、基本查询
    • 6.1、SQL概念
    • 6.2、SQL分类(⭐)
    • 6.3、Oracle中的数据字典
    • 6.4、查询语句的结构
    • 6.5、伪表dual(❓)
    • 6.6、别名查询(⭐)
    • 6.7、去除重复数据 distinct
    • 6.8、查询中四则运算
    • 6.9、空值处理函数
      • 1)mysql的空值处理
      • 2)oracle的空值处理
    • 6.10、字符串拼接

一、数据库分类

1.1、数据库分类

1、小型数据库:access、foxbase
2、中型数据库:informix、sql server、mysql
3、大型数据库:sybase、db2、oracle

1.2、项目中如何合理地使用数据库,可以依据如下三个方面入手

1、项目的规模
a、负载量有多大,即用户数有多大
b、成本
c、安全性

1.3、不同规模类型的数据库区别

小型数据库
1、负载量小,用户大概100人之内
比如:留言板、信息管理系统
2、成本在千元之内
3、对安全性要求不高

中型数据库
1、比如负载量 日访问量5000~10000
2、成本在万元内
3、比如商务网站

大型数据库
1、海量负载,可以处理海量数据(sybase<oracle<db2(海量数据处理能力))
2、安全性高,
3、相对贵

下面展示一些 内联代码片

提示(2021.07.07):这里数据库分类到时候可以分出来做个详细的文章

二、Oracle概念

oracle数据可系统是美国oracle(甲骨文)公司提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器或B/S体系结构的数据库之一,oracle数据库时目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完善的数据库管理功能,是关系型数据库,比mysql更为庞大,在现行的关系型数据库中排名第一(oracle、mysql、SqlServer),时间是最为精确的。

三、Oracle的安装

提示(2021.07.08):到时候再出一个俩个客户端和服务端Oracle安装

四、Oracle数据库的体系结构

4.1、数据库database

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

4.2、实例

一个数据库可以有n个实例,有一系列的后台进程和内存结构组成。

4.3、数据文件dbf

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

4.4、表空间

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

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

4.5、用户

 用户是在实例下建立的,不同实例中可以建相同名字的用户,表的数据是由用户放入某一个表空间的,而这个表龙剑会随机把这些表数据进行管理和存放的,但是表不是由表空间去查询的,而是由用户去查询。

4.6、SCOTT和HR用户

 是Oracle帮我们建好的测试账户,Scott账户常用,里面有emp、dept表等。

五、Oracle和MYSQL的差别

1、新建项目的方式

  MYSQL : 创建一个数据库,创建相应的表

2、Oracle是多用户的, MYSQL是多数据库的

3、Oracle安全级别要高,MYSQL开源免费

六、基本查询

6.1、SQL概念

    结构化查询语言

6.2、SQL分类(⭐)

    1、DDL : 数据定义语言 create alter drop truncate
    2、DML : 数据操纵语言 insert update delete
    3、DCL : 数据控制语言 安全 授权 grant revoke
    4、DQL : 数据查询语言 select from子句 where子句

在oracle中将DQL放入DML中,多了TCL:事务控制语言 commit、rollback

6.3、Oracle中的数据字典

所谓数据字典就是编写sql语句,全选可以一次性执行不报错
-- 1.删除数据对象
-- 删除数据表
drop table t_reply;
drop table t_user;
-- 删除序列
drop sequence sq_user;
drop sequence sq_reply;-- 2.创建数据对象 -- 创建数据表
create table t_user(u_id number(4) primary key,u_userName varchar2(40) unique not null,u_password varchar2(50) not null,u_gender number(1) check(u_gender in (0,1,2)),u_age number(3) check(u_age between 12 and 120),u_registeTime date not null
);
create table t_reply(r_id number(10) primary key,r_content varchar2(500) not null,r_userId number(4) not null,foreign key(r_userId) references t_user(u_id)
);
-- 创建序列
create sequence sq_user start with 1001;
create sequence sq_reply start with 10000001;/* 3.添加测试数据 */
-- 处理全新的数据表和全新的序列在使用时取不到初始值的问题
insert into t_user values(1, '1', '1', 1, 25, sysdate);
insert into t_reply values(1, '1', 1);
delete from t_reply;
delete from t_user;
commit;
/*insert into t_user values(1000, 'owner', '9999', 1, 25, sysdate);
insert into t_reply values(10000000, '人员召集...', 1000);*/-- 添加数据
insert into t_user values(sq_user.nextval, 'admin', '9999', 1, 25, sysdate);
insert into t_reply values(sq_reply.nextval, '系统1.0上线...', sq_user.currval);/* 4.提交 */
commit;/* 5.查询语句 */
/*select * from t_user;select * from t_reply;
*/

6.4、查询语句的结构

 select [列名] [*] from 表名 [where 条件] [group by 分组条件] [having 过滤] [order by 排序]

6.5、伪表dual(❓)

  dual : oracle中的虚表 ,伪表, 主要是用来补齐语法结构

比如:select 1+1 from dual;
注意:直接写一个常量比写 * 要高效
select count(1) from emp;
select count(*) from emp;

6.6、别名查询(⭐)

  使用as 关键字, 可以省略,别名中不能有特殊字符或者关键字, 如果有就加双引号(比如空格)

elect ename 姓名, sal 工资 from emp;
select ename "姓       名", sal 工资 from emp;

6.7、去除重复数据 distinct

加在select和列名后面,多列去除重复: 每一列都一样才能够算作是重复

--单列去除重复
select distinct job from emp;--多列去除重复的
select distinct job,deptno from emp;

6.8、查询中四则运算

--需要用到伪表dual
select 1+1 from dual;
--查询员工年薪  = 月薪* 12
select sal*12 from emp;
提示(2021.07.08)
在Oracle 中 ,双引号主要是别名的时候使用, 单引号是使用的值, 是字符

6.9、空值处理函数

注意: null值 , 代表不确定的 不可预知的内容 , 不可以做四则运算

1)mysql的空值处理

​ ifnull(参数1, 参数2):
​ 判断参数1是否为null,
​ 不为null, 则函数的结果取参数1的值
​ 为null, 则取参数2的值
​ if(参数1, 参数2, 参数3)
​ 判断参数1是否为null,
​ 为null, 则取参数3的值
​ 不为null, 则取参数2的值
​ 注意if函数只能处理数值字段的空值

SELECT e.`ename` 姓名,e.`sal` 底薪,e.`comm` 奖金,(e.`sal`+e.`comm`) 实发,IFNULL(e.`sal`+e.`comm`, e.`sal`) 实发1,IF(e.`comm`, e.`sal`+e.`comm`, e.`sal`) 实发2
FROM emp e;

2)oracle的空值处理

nvl(参数1,参数2):如果1为null,则返回2,不为null就为1

nvl2(参数1, 参数2, 参数3)1为null,则返回,3,不为null,则返回2

decode(需要判断的字段,
​ 常量值1, 结果值1,
​ 常量值2, 结果值2,
​ …
​ 常量值n, 结果值n,
​ 默认结果值
​ )

select e.ename 姓名,e.sal 底薪,e.comm 奖金,nvl(e.sal+e.comm, e.sal) 实发1,nvl2(e.comm, e.sal+e.comm, e.sal) 实发2,decode(e.comm, null, e.sal, e.sal+e.comm) 实发3
from emp e;

6.10、字符串拼接

  • Oracle 特有的连接符: || 拼接
  • concat(str1,str2) 函数, 在mysql和Oracle中都有
--查询员工姓名 :  姓名:SCOTT
select ename from emp;
--使用拼接符
select '姓名:' || ename from emp;--使用函数拼接
select concat('姓名:',ename) from emp;

Oracle学习篇章一——基础相关推荐

  1. oracle右对齐,Oracle 学习笔记(基础)

    1.基本查询 特殊运算符 运 算 功 能 实 例 [NOT] BETWEEN-AND- 用于测试是否在范围内 Select * from emp Where sal between 1000 and ...

  2. oracle自学入门教程,Oracle学习快速入门基础教程

    修改密码方法:1.SQL>: grant connect to USRNAME identified by USRPWD :2.SQL>: alter user USRNAME ident ...

  3. 3. oracle学习入门系列之三Unix、Linux历史及基础

    oracle学习入门系列之三Unix.Linux历史及基础 终于翻过了前面两篇,喝杯咖啡提下神,咱们继续前行.这次我们要进行操作系统方面知识了,考虑到当前时间上操作系统的多样性.变化性等,蛤蟆斟酌再三 ...

  4. JNI学习开始篇 基础知识 数据映射及学习资料收集

    JNI学习开始篇 基础知识 数据映射及学习资料收集 JNI介绍 JNI(Java Native Interface) ,Java本地接口. 用Java去调用其他语言编写的程序,比如C或C++. JNI ...

  5. 分享丨10年DBA老司机整理的Oracle学习路线图

    微思10年资深DBA吴老师呕心沥血的分享总结-Oracle学习路线图,看完没收获你打我. 学习Oracle的前提是:熟悉Linux操作系统.Unix操作系统. 学习方法 1.sql.pl/sql 作为 ...

  6. mysql 删除时间一个星期_15天快速学习 数据库Mysql 基础操作命令(第一章)

    简言 你还在为不了解不会操作MySQL数据库而苦恼吗? 还为面对冗繁的数据不知怎么提取而愤懑吗? 分享快速学习MySQL及基础操作命令 那就利用闲暇时间和我一起掌握一门MySQL数据库语言操作吧! 入 ...

  7. Oracle学习计划

    这两天,在网上参考了大量的文档,制定了Oracle学习的读书计划,共分三个阶段: 第一阶段: 目标: 系统学习.巩固基础. 书籍: (1)Oracle Concept, Oracle Performa ...

  8. oracle:oracle学习笔记(四)循环、光标、异常、瀑布模型

    oracle学习笔记:循环.光标.异常 文章目录 打印Hello World 定义基本变量 引用型变量(单行)` my_name emp.ename%type ` 记录型变量(多行) `emp_rec ...

  9. Oracle学习系列1-7

    Oracle学习系列1 两个服务必须启动: OracleOraDb10g*TNListener 和 OracleService*** 使用sqlplusw先进行环境的设置 set linesize 3 ...

最新文章

  1. 如何实现 asp.net core 安全优雅退出 ?
  2. 【算法系列之十四】最大子序和
  3. 解决Springboot get请求是参数过长的情况
  4. IOS上复制粘贴号码到input有空格及input位数限制问题详解
  5. 蓝桥杯 PREV-27 历届试题 蚂蚁感冒
  6. Vue系列:通过vue-router如何传递参数
  7. 计算广告(computational advertising)
  8. Windows Server 2016 安装OpenSSH Server,并设置密钥
  9. Apache ProxyPass出现503 Service Temporarily Unavailable 的解决
  10. MySQL之字符串拼接
  11. 利用ArcGIS做土地利用转移矩阵
  12. 计算机注销操作,电脑注销快捷键
  13. OpenStack必备基础知识
  14. 学临床专业和计算机哪个好,大学里“炙手可热”的专业,未来10年也不会被淘汰,发展前景更好...
  15. 【云图】如何制作东莞酒店地图?
  16. 致得E6协同文档管理软件 推出4.0免费版
  17. lisp中getword输入默认_autolisp getfiled
  18. 从写下第1行代码到拿下谷歌百万年薪 ,我是如何在8个月内做到的?
  19. 单片机学习记录一:c8t6原理图
  20. 百度细雨算法,旨在提升用户浏览B2B信息体验

热门文章

  1. STM32G431控制窗帘电机-窗帘电机拆机
  2. python 采集唯美girl
  3. 移动端开发的兼容适配与性能优化干货分享
  4. html + layui 打开word文档
  5. 爬虫学习:爬取京东图书
  6. 【20保研】西安交通大学软件学院2019年全国优秀大学生夏令营通知
  7. 要「自我颠覆」的华为Mate 10来了
  8. 四大盈利互联网经营理念
  9. 鸿蒙事业单位专业技术,事业单位专业技术岗考什么?
  10. 汉诺塔c语言执行步骤详解,详解汉诺塔执行过程