Oracle 学习(一)入门

article/2025/9/29 7:21:20

一、学习目标

  • Oracle介绍
  • Oracle安装
  • Oracle体系结构
  • Oracle与PL/SQL是什么关系
  • DML、DQL、DCL、DDL
  • 基本查询
  • 条件查询
  • 单行函数
  • 多行函数

二、Oracle介绍

Oracle :关系型的数据库 , 端口号:1521 ,收费(学习是免费的,用于商业要授权)19万左右, 每年交服务费 效率高, 安全

mysql:关系型的数据库 , 表于表的关系:外键 , 端口号:3306

redis:非关系型数据库 ,key - value , 端口号:6379

Oracle与MySQL的SQL语句区别
https://www.cnblogs.com/liyi113115/p/6825370.html

Oracle数据库是Oracle(甲骨文)公司的核心产品,适合于大型项目的开发;银行、电信、电商、金融等各领域都大量使用Oracle数据库。

Oracle数据库是一种对象关系型数据库在关系型数据库的基础上,引入了一些面向对象的特性

Oracle数据库的产品可以免费下载,其服务是收费的,也就是该数据库用于商业目的时,必须取得Oracle的授权。

Oracle出现有30年时间,经历了很多版本,目前最新的版本是12c。11g版本是目前比较稳定,很多企业也在使用,所以我们从此版本入门学习,后面的版本基本也不会有太大区别。

PS:MySQL是Java开发常用的数据库,MySQL的母公司08年被SUN公司收购,而SUN公司09年被Oracle收购,所以MySQL也是Oracle旗下的产品。

oracle客户端与服务端有什么区别:

1、oracle服务端是指装在数据库服务器上的oracle主服务,数据库的核心,用于数据库的管理,数据的与存储、查询、数据库资源的监控、监听等服务。

oracle客户端只是指与服务端交互的工具,要登录使用oracle数据库服务就需要安装客户端(例如PLSQL),利用PLSQL连接到数据库,来执行oralce服务的一些增删改查等操作。

2、服务器端不一定在本地(client一定在本地),所以需要在客户端配置TNSNAMES.ORA文件。在文件中添加服务名和IP。
在这里插入图片描述

3、oracle数据库服务都会有一个全局数据库名例如:orcl,这是在安装数据库时指定的。如果要安装多个数据库,那么这个全局数据库名必须不一样。服务器端的listener文件里配置有监听程序,可以配置多个监听IP。

而oracle客户端连接服务端是就要配置oracle的实例名来确认数据库信息。
4、服务器端的客户工具是通过服务器端tnsnames.ora和listener.ora进行验证并建立连接;

远程客户端是通过客户端的tnsnames.ora和服务器端的listener.ora执行验证和建立连接。

三、Oracle安装

略…

四、Oracle体系结构

数据库:只有一个数据库

实例:后台运行的一个进程

表空间:逻辑存储单位

数据文件:物理存储单位

用户:面向用户管理,都会对应一个表空间,向表空间中添加数据,都是保存到数据文件中

详解:https://blog.csdn.net/angelxf520/article/details/82432193

五、数据库用户

1、 用户:系统默认用户、新建用户。

系统默认用户:

  • sys

级别:Oracle的一个超级用户,最高权限

主要作用:用来维护系统信息和管理实例。

登录角色:只能以SYSDBA或SYSOPER角色登录

登录命令:
username/password @server(服务名) as sysdba
例子:sys/root @orcl as sysdba

切换到sys用户(sys用户要指定sysdba,其他不用)
connect sys/root as sysdba

  • system

级别:Oracle默认的管理员,拥有DBA权限。

主要作用:用来管理Oracle数据库的用户、权限和存储等。

登录角色:只能用normal身份登陆em(页面管理器),除非你对它授予了sysdba的系统权限或者syspoer系统权限。

  • scott

级别:Oracle的一个普通示例用户 。

主要作用:为初学者提供一些简单的应用示例,测试数据。

登录角色:只能以Normal角色登录

注:创建数据库时默认该用户为锁定状态,使用前需解锁。默认密码为tiger。

– 解锁用户alter user 用户名 account unlock;alter user scott account unlock– 重置密码alter user 用户名 identified by 密码;alter user scott identified by tiger;
  • sysman

级别:是Oracle数据库中用于EM管理的用户,管理员级别。

主要作用:用来操作企业管理器

注:如果不用EM可以删除该用户。

  • dbsnmp

级别:是Oracle数据库中用于智能代理的用户。

主要作用:用来监控和管理数据库相关性能,收集系统运行状态相关的数据。

注:如果停止该用户,则无法提取相关的数据信息。

2 、权限:

SYSDBA:数据库管理员权限(打开数据库服务器、关闭数据库服务器、管理功能、备份数据库、恢复数据库、日志归档、会话限制。)

SYSOPER:数据库操作员权限(打开数据库服务器、关闭数据库服务器、备份数据库、恢复数据库、日志归档、会话限制。)

NORMAL:普通用户权限。

注:sysdba拥有最高系统权限,sysoper主要用来启动、关闭数据库。

六、Oracle与PL/SQL是什么关系

  • ORACLE是数据库,有客户端和服务器;
  • PLSQL Developer只是第三方工具,服务于ORACLE,类似的工具还有Toad,sqlplus,sql developer等等;
  • 安装PLSQL Developer对于安装oracle没啥关系,但是如果没有oracle客户端,你装了PLSQL Developer也没啥意思。
  • SQL*Plus 是Oracle自带的数据库管理客户端,可以在这里编辑SQL语句执行,是命令行模式的。
  • PL/SQL 有两种。 一种是工具 PL/SQL Developer 和SQL* Plus一样是数据库管理客户端,是一种可视化界面,也可以使用命令行编辑SQL。另外一种是PL/SQL语言,是oracle中的块结构语言,类似存储过程,是一种过程话的语言。把SQL语言和编程高级语言想融合,和Java近似。既可以在SQL*Plus上开发PL/SQL语言,也可以在PL/SQL Developer上开发PL/SQL语言。

七、DML、DQL、DCL、DDL

DML Data Manage Language 数据操纵语言,insert delete update 没有select!!!!
DQL DQL Data Query Languate 数据查询语言 就是 select from
DCL Data Controller Languate 数据控制语言 就是授权 ROLLBACK GRANT COMMIT
DDL Data Define Language 定义语言,就是创建,如create 创建表/存储过程/索引/触发器


八、基本查询

   -- dual :是一张虚表, 为了完善查询的语法结构,只有一行一列-- 别名:如果是数字开头或者纯数字必须加双引号-- 字符串使用单引号,别名使用双引号select length('abc') "长度",length('abc') as "长度",length('abc') as 长度, length('abc') as '123'   from dual;-- 消除重复的记录select distinct job from emp;-- 四则运算:+ - *  /      -- 连接符号:||select concat('a' , 'b') from dual;select concat(concat('a' , 'b'),'c') from dual;select 'a' || 'b'|| 'c' from dual;select '1' + 1 from dual;-- 查询员工的年薪: nvl(comm,0)select sal * 12 + nvl(comm,0),nvl(comm,0) from emp;

九、条件查询

   -- 查询有奖金的员工select * from emp where comm > 0;select * from emp where comm is not null and comm != 0;-- 查询没有奖金的员工select * from emp where comm is null or comm = 0;-- not 取反select * from emp where not(comm is not null and comm != 0);-- 查询1981年入职的员工select * from emp where to_char(hiredate,'yyyy') = '1981';select * from emp where hiredate >= to_date('1981-01-01','yyyy-mm-dd')and hiredate <= to_date('1981-12-31','yyyy-mm-dd');select * from emp where hiredate between  to_date('1981-01-01','yyyy-mm-dd')  and to_date('1981-12-31','yyyy-mm-dd') ; -- 函数:to_char  to_date-- to_char (p1,p2):将日期转换为字符串-- p1:要转换的日期-- p2:转换的格式select sysdate,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss day') from dual;-- to_date(p1,p2):将字符串转换为日期-- p1:要转换的字符串-- p2:转换的格式        select '2018-07-06 11:11:11' , to_date('2018-07-06 11:11:11' ,'yyyy-mm-dd hh24:mi:ss') from dual;-- upper: 转换为大写 lower :转换为小写select * from emp where upper(ename) like upper('%M%');-- 排序-- 查询所有员工按照工资升序select * from emp order by sal asc;-- 查询所有员工按照工资降序select * from emp order by sal desc;-- 查询所有员工按照奖金升序排序(null值放到前面)select * from emp order by nvl(comm,0) asc;select * from emp order by comm asc nulls first; -- 查询所有员工按照奖金降序排序(null值放到后面) select * from emp order by comm desc nulls last; 

十、单行函数

   --单行函数select length(ename) from emp;--字符串函数-- concat-- length-- substr(str, p1 ,p2): str:截取的字符串 ,p1:开始的索引 ,p2:截取的长度-- 起始索引用0和1是一样的select substr('abcjavadef' , 4, 4 ) from dual;select substr('abcjavadef' , 1, 3 ) from dual;select substr('abcjavadef' , 0, 3 ) from dual;-- replace(str ,p1,p2) : 替换  str:要替换的字符串 p1:被替换的 p2:替换成的select replace('abcdefa' , 'a' ,'z') from dual;-- trim() 去除两侧的空白select trim('   abc    '),ltrim('   abc    '),rtrim('   abc    ') from dual;-- upper lower--日期函数-- 两个日期相减 == 天数select sysdate - hiredate from emp;-- 周数select (sysdate - hiredate) / 7 from emp;-- 月数:months_betweenselect months_between(sysdate , hiredate) from emp;-- 修改月份: add_monthsselect add_months(sysdate ,-12) from dual;--数值函数-- round () 四舍五入select round(2.666) from dual;-- trunc() 截取select trunc(2.666,1) from dual;-- mod() 模运算符(求余)select mod(3,10) from dual;--转换函数-- to_char to_date-- to_char to_numberselect 1 ,to_char(1),'1',to_number('1') from dual;select 1 + '1' from dual;--通用函数-- nvl

十一、多行函数

   -- 多行函数(聚合函数,分组函数)(count, avg, max ,min ,sum)-- 分组后能显示的列:分组函数和在group by语句中出现的列select count(1),deptno, avg(sal),max(sal) ,min(sal) ,sum(sal)from emp group by deptno;-- 查询大于4个人的部门-- 在where中不能加分组函数,where 必须放到group by前面-- having 在分组的基础上进一步的筛选select count(1),deptno from emp  group by deptno having count(1) > 4;

练习

  1. 查询和smith相同部门的员工姓名和雇用日期

    select ename,hiredate from emp where deptno=(select deptno from emp where ename=upper(‘smith’))

  2. 查询工资比公司平均工资高的员工的员工号,姓名和工资。
    select empno,ename,sal from emp where sal> (select avg(sal) from emp)

  3. 查询各部门中工资比本部门平均工资高的员工的员工号, 姓名和工资
    select empno,ename,sal,deptno from emp where sal>(select avg(sal) from emp where deptno=20)and deptno!=20

  4. 查询和姓名中包含字母U的员工在相同部门的员工的员工号和姓名
    select empno,ename from emp where deptno=(select deptno from emp where ename like ‘%U%’)

  5. 查询领导是King的员工姓名和工资
    select ename,sal from emp where mgr= (select empno from emp where ename=‘KING’)


http://chatgpt.dhexx.cn/article/8JfRlo0r.shtml

相关文章

oracle入门教程

推荐一个Oracle入门学习教程 点击下面链接进入自学网站 学习网站:http://www.51zxw.net/study.asp?vip16229363 点击图片箭头所指按钮——请点击进入学习 在下面方框里面搜索Oracle 第一个搜索结果就是小姐姐Oracle视频讲解课程 入门教程部分 永久表空间 存储数据库中需要永…

Oracle数据库 - 安装教程

前言&#xff1a;初次使用Orcale&#xff0c;安装并使用自己感觉好痛苦&#xff0c;不断试错&#xff0c;经验分享&#xff0c;少走弯路 一天阅读上百个网页是小事 下载 官网&#xff1a;项目客户要求Oracle Database 19c Enterprise Edition 19.3.0.0.0 &#xff08;自己用建…

在Windows 10系统下安装Oracle 11g数据库

1.准备工作 (1)去官网https://www.oracle.com下载Oracle数据库&#xff0c;具体操作看图&#xff1a; ①把官网设置为中文 ②找到专门下载数据库专栏 ③详细下载过程&#xff0c;本次安装Oracle 11g(32位)数据库&#xff0c;数据库多少位数都可以&#xff0c;也就是说3…

Oracle数据库入门教程(作者原创)

文章目录 Oracle 是什么常规命令基础表查询SQL基础&#xff0c;约束,表关系表之间的关系SQL语言基础Oracle简单查询语句函数及分组Oracle高级查询语句最后 Oracle 是什么 Oracle系统&#xff0c;即是以Oracle关系数据库为数据存储和管理作为构架基础&#xff0c;构建出的数据库…

Oracle数据库教程

原文连接&#xff1a;https://www.w3cschool.cn/oraclejc/oraclejc-eswu2qqq.html Oracle数据库教程 Oracle数据库是什么&#xff1f;数据文件&#xff08;dbf&#xff09;表空间用户 数据库和实例1 Oracle数据库1.1 物理存储结构1.2 逻辑结构 2 Oracle实例主要的Oracle数据库的…

Rational Rose

rational Rose 是一种建模工具&#xff0c;它可以在Rose建模中提供建立、视图、修改和操作组件的能力。 Rose 运行环境。 ——windows NT ,Windows 95 ——UNIX&#xff08;Solaris ,HP/UX ,ALX ,DEC Unix&#xff09; Rose 支持Unified&#xff0c;Booch ,OMT标记法 …

Rational Rose 使用技巧

1、浏览区 2、菜单项 其中Format选项中&#xff1a; 决定各项是否显示&#xff0c;也可以通过右击—option选择 3、常用快捷键&#xff1a; F1&#xff1a;任何时候都可以按F1获得相关帮助&#xff0c;把鼠标放在某条菜单上按F1可以获得这条菜单的相关帮助。 F2&#xff1a;刷新…

安装rational rose软件教程

一、下载相关文件 二、安装DAEMON Tools Lite 按照正常的安装流程开始安装 路径选择自己想要的路径&#xff0c;直到弹出许可证选择同意就好了。 三、安装rational rose 打开DAEMON Tools Lite软件&#xff0c;并点击“快速装载” 然后选择rational rose的映像文件 在下方就…

使用Rational Rose绘制各种图

发生了一件事&#xff1a;论文中需要绘制几种图 我感觉&#xff1a;以前没有学好也没有太大的关系&#xff0c;现在用中学自己需要的部分&#xff0c;效率特别高。我不反对以后会有用的这句话&#xff0c;但相比于眼前就有用或是未来肯定有用的&#xff0c;我自然优先选择后者…

Rational Rose 7.0安装及科学使用教程

Rational Rose 7.0科学的使用 Rational Rose 7.0安装及科学使用教程下载安装挂载镜像准备安装开始安装前序工作正式安装安装完毕 Rational Rose 7.0安装及科学使用教程 Rational Rose是Rational公司出品的一种面向对象的统一建模语言的可视化建模工具。用于可视化建模和公司级水…

Rational Rose2007的安装

UML:统一建模语言(Unified Modeling Language&#xff0c;UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言&#xff0c;是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具&#xff0c;独立于任何具体程序设计语言。 我们用rational rose2…

Rational rose 2007 下载和安装教程

文章目录 Rational rose 简介一&#xff0c;下载Rational rose 2007二&#xff0c;安装Rational rose 2007三&#xff0c;激活Rational Rose 2007四&#xff0c;启动Rational Rose 2007 Rational rose 简介 Rational Rose是Rational公司出品的一种面向对象的统一建模语言的可视…

我遇到了Rational Rose

前言 学到了UML&#xff0c;在视频中提到了Rational Rose这个工具&#xff0c;对它很感兴趣&#xff0c;想知道它到底是什么东西&#xff0c;所以也就找同学拷了这个安装包&#xff0c;但是安装的时候它提示我这个一个病毒软件&#xff0c;所以就只能把它卸载了。后来就又找同学…

Rational Rose建立类图

类图 要求绘制下面类图。 图1-1 汽车类图 定义类的最通用方法是&#xff0c;在浏览器窗口的Logic View中添加新类。下面是定义类的步骤&#xff1a; 1.1创建类名 步骤&#xff1a;右击浏览器窗口中的Logic View&#xff0c;打开快捷菜单&#xff0c;选择:NewClass后&#xf…

UML建模详解(3)—使用Rational Rose 画九种常用架构图

UML是一种建模语言&#xff0c;是系统建模的标准。我们之所以建模是因为大规模的系统设计时相当复杂的&#xff0c;当系统比较复杂时就会涉及到以下这几个问题&#xff1a; (1).开发人员如何与用户进行沟通来了解系统的需求? (2).开发人员之间如何沟通以确保各个部门能够无缝地…

Rational Rose 2017使用教程

转载&#xff1a;http://www.opdown.com/soft/82173.html#comment Rational Rose 2017免费版是目前的最新版本&#xff0c;一款专业的可视化建模软件&#xff0c;主要用于可视化建模和组件构造&#xff0c;包括统一建模语言&#xff08;UML&#xff09;&#xff0c;OOSE&#x…

Rational rose安装步骤

Rational rose安装步骤 简介 Rational Rose是Rational公司出品的一种面向对象的统一建模语言的可视化建模工具。用于可视化建模和公司级水平软件应用的组件构造。 就像一个戏剧导演设计一个剧本一样&#xff0c;一个软件设计师使用Rational Rose&#xff0c;以演员&#xff…

UML与Rational Rose

采用b站动力节点视频学习&#xff1a; 【动力节点】UML与Rational Rose 视频&#xff1a; 什么是UML Unified Modeling Language (UML)又称统一建模语言或标准建模语言&#xff0c;是始于 1997 年一个 OMG 标准&#xff0c;它是一个支持模型化和软件系统开发的图形化语言&…

Rational Rose--简介

Rational Rose Rational Rose是Rational公司出品的一种面向对象的统一建模语言的可视化建模工具。用于可视化建模和公司级水平软件应用的组件构造。 目前版本的Rational Rose可以用来做以下一些工作&#xff1a; 1、对业务进行建模&#xff08; 工作流&#xff09;&#xff1b;…

关于Rational Rose的使用(初学者)

打开软件&#xff0c;选择J2EE&#xff0c;点击OK 之后出现下图中的内容 可以双击Use Case View中的Main&#xff0c;打开用例图&#xff08;或者右键Use Case View&#xff0c;选择New&#xff0c;选择Use Case Diagram新建一个用例图&#xff0c;在New选项中同样可以创建新的…