Oracle数据库的简单使用

Oracle简单使用

  • 一、数据库的介绍
  • 二、Oracle介绍
    • 账号管理
    • Oracle的安装
      • Oracle服务的作用
      • OracleRemExecService
      • 服务
      • 创建数据库
    • 常用命令
  • 三、SQL语言
    • SQL分类
    • 实用的数据表
    • 添加注释
    • 数据操纵语言(DML)
      • 查询语句(SELECT)
        • where
          • like
          • distinct
        • order by
        • 创建计算字段
        • 通用函数nvl
        • 并集,全集,交集,差集
      • 插入语句(INSERT)
      • 删除语句(DELETE)
      • 更新语句(INSERT)

一、数据库的介绍

  • 关系型数据库
    1、Mysql(用的最多)
    2、Oracle(最安全)
    3、SQL Server(.net)
    4、Db2(金融、银行)
  • 非关系型数据库
    1、Hbase
    2、Redis
    3、mongodb

二、Oracle介绍

  • 数据库的版本
    Oracle8及8i:i表示的是internet,向网络发展,过渡版本,只有一张vcd。8i是过渡性版本。
    Oracle9i:是之前使用最广泛的版本,8i的升级版。1CD
    Oracle10g:700M过渡性产品,其中g表示的是网格计算。以平面网格,以中心查找。
    Oracle11g:完整性产品,最新版本2G。
    Oracle12c:世界上第一个为云服务设计的数据库。
  • 用户
    1)sys超级管理员
    2)system 普通管理员
    3)scott 普通用户
  • 实例 --> 数据库
  • 数据库实例名 --> 统一使用orc

账号管理

使用scott用户登录,第一次登录的时候会显示账户锁定,需要将账户解锁:

  1. 使用DBA登录
    运行命令行工具
sqlplus /nolog;
conn sys/超级管理员账户名@orcl as sysdba;
  1. 解锁命令
alter user scott account unlock|lock;
  1. 测试
conn scott/普通用户账户名@orcl;

要求重新输入密码,确认你自己的密码即可,建议学习的时候简单一点即可。

Oracle的安装

当Oracle安装完成后,会出现如下服务,其中OracleServiceORCL和OracleOraDB11g_home1TNSListener是最关键的服务,如果安装完成之后发现只有两个服务,那意味着安装过程中存在问题,所以需要将oracle完整删除。
在这里插入图片描述

Oracle服务的作用

Oracle 11g服务详细介绍以及哪些服务是必须开启的?
安装oracle 11g R2中的方法成功安装Oracle 11g后,共有七个服务,这七个服务的含义分别是:

  1. Oracle ORCL VSS Writer Service:Oracle卷映射拷贝写入服务,VSS(Volume Shadow Copy Service)能够让存储基础设备(比如磁盘,阵列等)创建高保真的时间点映像,即映射拷贝(shadow copy)。它可以在多卷或者单个卷上创建映射拷贝,同时不会影响到系统的系统能。(非必须启动)
  2. OracleDBConsoleorcl:Oracle数据库控制台服务,orcl是Oracle的实例标识,默认的实例为orcl。在运行Enterprise Manager(企业管理器OEM)的时候,需要启动这个服务。(非必须启动)
  3. OracleJobSchedukerORCL:Oracle作业调度(定时器)服务,ORCL是Oracle实例标识。(非必须启动)
  4. OracleMTSRecoveryService:服务器端控制。该服务允许数据库充当一个微软事务服务器MTS、COM/COM+对象和分布式环境下的事务的资源管理器。(非必须启动)
  5. OracleOraDb11g_home1ClrAgent:Oracle数据库.NET扩展服务的一部分。(非必须启动)
  6. OracleOraDb11g_home1TNSListener:监听器服务,服务只有在数据库需要远程访问的时候才需要。(必须启动,下面有详细讲解)
  7. OracleServiceORCL:数据库服务(数据库实例),是Oracle核心服务,该服务是数据库启动的基础,只有该服务启动,Oracle数据库才能正常启动。(必须启动)

在开发的时候到底需要启动哪些服务?

对于新手而言,要是只用Oracle自带的sql*plus的话,只要启动OracleServiceORCL即可,要是使用PL/SQLDeveloper等第三方工具的话,OracleOraDb11g_home1TNSListener服务也要开启。OracleDBConsoleorcl是进入基于web的EM必须开启的,其余服务很少用。
注:ORCL是数据库的实例名,默认的数据库是ORCL,你可以创建其它的,即OracleService+数据库名。

OracleRemExecService

  • OracleRemExecService这个windows服务只是被OUI暂时性的使用,当OUI完成它的工作后,该服务会被remove掉。因此,在reboot之前,该服务的值为disabled。
  • 在reboot之后,该服务会消失(gone)请忽略该服务,并leave this service untouched。

服务

  1. 所有服务改成“手动”
  2. 启动两个
    1)监听服务:OracleOraDb11g_home1TNSListener监听客户端的连接
    2)数据库服务:OracleServiceORCL 命名规则:OracleService+实例名

创建数据库

在这里插入图片描述
安装新数据库之后的服务列表
在这里插入图片描述
当安装了新的数据库之后,会多出几个跟此数据库相关的服务,那意味着安装完成了。

常用命令

  1. sqlplus
    1)sqlplus/nolog 是用来启动 SQLPlus 而不登录到特定用户帐户的命令。
    2)conn scott/tiger@orcl 这个命令用于在 SQLPlus 中连接到一个名为 orcl 的数据库实例,并使用用户名 scott 和密码 tiger 进行身份验证。
    3)show user SHOW USER 命令用于显示当前用户在数据库中的身份。
    4)set linesize 150 SET LINESIZE 150 命令用于设置 SQLPlus 中输出行的宽度。
    5)set pagesize 20 SET PAGESIZE 20 命令用于设置 SQL
    Plus 中每页显示的行数。
    6)passw PASSW 命令通常用于 SQL*Plus 中更改用户密码。
    7)conn sys/abc123456@orcl as sysdba 这个命令尝试以 sys 用户身份连接到名为 orcl 的数据库实例,并以 sysdba 角色登录。
    8)select * from emp where ename = ‘&ename’ 这个 SQL 查询用于从 emp 表中选择员工名为特定值的行,该值由用户在运行查询时提供。
  2. alter user scott account unlock 这个 SQL 命令用于解锁名为 scott 的用户账户,允许其再次登录数据库。

三、SQL语言

结构化查询语言(Structured Query Language),具体定义、查询、更新和控制等多种功能,是关系数据库的标准语言。

SQL分类

  • 数据操纵语言DML Data Manipulation Language:
    SELECT INSERT UPDATE DELETE
  • 数据定义语言DDL Data Definition Language:
    CREATE ALTER DROP RENAME TRUNCATE
  • 数据控制语言DCL Data Control Language:
    GRANT REVOKE
  • Transaction:commit rollback savepoint

实用的数据表

  • select * from tab;// 查看用户下的所有的表。
  • select * from user_tables;// 详细查询当前用户下的所有表。
  • -desc 表名;// 查看表结构。
  • 查看所有表:select table_name from user_tables;
  • 查看表结构:describe dept;(或者desc dept;)

  1. emp表–》雇员表(employee)

Empno:雇员工号
Ename:雇员姓名
Job:工作(秘书、销售、经理、分析员、高管)
Mgr(manger):经理的工号
Hiredate:雇用日期
Sal:工资
Comm:津贴
Deptno:所属部门号

  1. dept表–》部门表(department)

Deptno:部门编号
Dname:部门名称
Loc:地址

  1. salgrade表–》一个公司是有等级制度的,用此表示一个工资的等级

Grade:等级
losal:最低工资
hisal:最高工资

  1. bonus表–》奖金表:表示一个雇员的工资以及奖金

Ename:雇员姓名
job:工作
sal:工资
comm:津贴

添加注释

  • 为表添加注释:comment on table emp is ‘雇员表’;
  • 为列添加注释:comment on column emp.Empno is ‘雇员工号’;
    在这里插入图片描述

数据操纵语言(DML)

查询语句(SELECT)

  • 检索单个列
    select col from tableName;
  • 检索多个列
    select col1,col2,col3 from tableName;
  • 检索所有列
    select * from tableName;
    使用通配符的优点:书写方便、可以检索未知列。
    使用通配符的缺点:降低检索的性能。
where

SELECT [DISTINCT] {*,column alias,…}
FROM table alias
Where 条件表达式

例: 查询雇员表中部门编号是10的员工
select empno,ename,job from emp where deptno = 10;
在这里插入图片描述

  • 给检索出的列起个别名
    select job “gong zuo” from emp;
    select job as “gongzuo” from emp;
    表别名
    select e.* from emp e;
    select e.empno,e.deptno from emp e;
    注意只查询固定列数据的时候,建议不要使用 *,因为会让效率变低。

例:
在查询过程中可以给列添加别名,同时也可以给表添加别名
select e.empno 雇员编号,e.ename 雇员姓名,e.job 雇员工作 from emp e where e.deptno = 10;
在这里插入图片描述
给列起别名可以加as,也可以不加,都可以
select e.empno as 雇员编号,e.ename as 雇员姓名,e.job as 雇员工作 from emp e where e.deptno = 10;
在这里插入图片描述
给列起别名,如果别名中包含空格,那么需要将别名整体用""包含起来
select e.empno “雇员 编号”,e.ename “雇员 姓名”,e.job “雇员 工作” from emp e where e.deptno = 10;
在这里插入图片描述

条件比较:

  1. =,!=,<>,<,>,<=,>=,any,some,all
    =
    select * from emp where deptno = 20;
    在这里插入图片描述
    !=
    select * from emp where deptno != 20;
    在这里插入图片描述
    <>不等于
    select * from emp where deptno <> 20;
    在这里插入图片描述
    <
    select sal from emp where sal < 1500;
    在这里插入图片描述
    >
    select sal from emp where sal > 1500;
    在这里插入图片描述
    <=
    select sal from emp where sal <= 1500;
    在这里插入图片描述
    >=
    select sal from emp where sal >= 1500;
    在这里插入图片描述
    any:取其中任意一个
    select sal from emp where sal > any(1000,1500,3000);
    在这里插入图片描述
    some:some和any是同一个效果,只要大于其中某一个值都会成立
    select sal from emp where sal > some(1000,1500,3000);
    在这里插入图片描述
    all:大于所有的值才会成立
    select sal from emp where sal > all(1000,1500,3000);
    在这里插入图片描述
  2. is null,is not null
    is null:在sql的语法中,null表示一个特殊的含义,null != null,不能使用-,!=判断,需要使用is,is not
    select * from emp where comm is null;
    在这里插入图片描述
    select * from emp where null is null;
    在这里插入图片描述
    is not null
    select * from emp where comm is not null;
    在这里插入图片描述
  3. between x and y
    between x and y:包含x和y的值
    select * from emp where sal between 1500 and 3000;
    select * from emp where sal >= 1500 and sal <=3000;
    在这里插入图片描述
  4. in(list),not in(list)
    需要进行某些值的等值判断的时候可以使用in和not in
    in (list)
    select * from emp where deptno in(10,20);
    select * from emp where deptno = 10 or deptno = 20;
    在这里插入图片描述
    可以使用and和or这样的关键字,and相当于是与操作,or相当于是或操作;and和or可能出现在同一个sql语句中,此时需要注意and和or的优先级;and的优先级要高于or。所以会涉及到计算次序的问题,最好使用括号进行分组处理。
    SQL优化问题:
    AND:把检索结果较少的条件放在后面。
    OR:把检索结果较多的条件放在后面。
    not in(list)
    select * from emp where deptno not in(10,20);
    select * from emp where deptno != 10 and deptno != 20;
    在这里插入图片描述
  5. exists(sub-query)
    exists (sub - qucry),当exists中的子查询语句能查到对应结果的时候,意味着条件满足
    相当于双重for循环。
    现在要查询部门编号为10和20的员工,通过外层循环用来规范外层循环
    select * from emp where deptno = 10 or deptno = 20;
    select * from emp e where exists (select deptno from dept d where (d.deptno = 10 or d.deptno = 20) and e.deptno = d.deptno);
    在这里插入图片描述
like
  • 条件表达式中字符串匹配操作符是"like"
    1、%通配符:表示任意字符出现任意次数
    2、_通配符:某个字符或者数字仅出现一次
    3、escape,使用转义字符,可以自己规定转转义字符
  • 技巧和注意事项:
    1、不能过度使用通配符。如果其它操作符能达到目的,就不要使用通配符。
    2、确实需要使用通配符时,除非绝对必要,否则不要把通配符用到搜索模式最开始处,因为这样搜索起来最慢。
    3、涉及到大文本的检索的时候,可以使用某些框架 luence,solr,elatie search

查询名字以S开头的用户
select * from emp where ename like(‘S%’);
在这里插入图片描述
查询名字以S开头且倒数第二个字符为T的用户
select * from emp where ename like(‘S%T_’);
在这里插入图片描述
查询名字中带%的用户
select * from emp where ename like(‘%%%’) escape(‘’);
在这里插入图片描述

distinct

去处重复数据
select distinct deptno from emp;
在这里插入图片描述
去重也可以针对多个字段,多个字段值只要有一个不匹配就是不同的记录
select distinct deptno,sal from emp;
在这里插入图片描述

order by

order by 进行排序操作,默认情况下完成的是升序的操作。
asc: 是默认的排序方式,表示升序。
desc: 降序的排序方式。
排序是按照自然顺序进行排序的,如果是数值,那么按照从大到小,如果是字符串,那么按照字典序排序;在进行排序的时候可以指定多个字段,而且多个字段可以使用不同的排序方式。
注意: 每次在执行order by的时候相当于是做了全排序,会比较耗费系统的资源,因此选择在业务不太繁忙的时候进行。

例:
select * from emp order by sal;
在这里插入图片描述
select * from emp order by sal desc;
在这里插入图片描述
select * from emp order by ename;
在这里插入图片描述
select * from emp order by sal desc,ename asc;
在这里插入图片描述

创建计算字段

问:为什么需要计算字段
答:我们经常需要直接从数据库中检索出转换、计算或格式化过的数据;而不是检索出数据,然后再在客户机应用程序中重新格式化。
注意: 计算字段并不实际存在于数据库表。

例: 使用计算字段
字符串连接符
select 'my name is ’ || ename name from emp;
在这里插入图片描述
select concat('my name is ',ename) from emp;
在这里插入图片描述
计算所有员工的年薪
select ename,(e.sal + e.comm) * 12 from emp e;
在这里插入图片描述
注: null是比较特殊的存在,null做任何运算都还是为null,因此要将空进行转换。

通用函数nvl
  • Sql中允许列值为空,空值用保留字NULL表示。NULL不同于0或者空格,它就是代表了一个不确定的内容。任何含有NULL值的数学表达式最后的结果都为空值。
    所以上一个例子所计算的结果时错误的需要引入函数nvl,nvl(arg1,arg2),如果arg1是空,那么返回arg2,如果不为空,则返回原来的值。
    select ename,(e.sal + nvl(e.comm,0)) * 12 from emp e;
    在这里插入图片描述
    dual是oracle数据库中的一张虚拟表,没有实际的数据,可以用来做测试。
    select 100 + 100 from dual;
    在这里插入图片描述
并集,全集,交集,差集

例:
A语句:select * from emp where deptno = 30;
B语句:select * from emp where sal > 1000;
并集: 将两个集合中的所有数据都进行显示,但是不包含重复的数据
select * from emp where deptno = 30 union select * from emp where sal > 1000;
在这里插入图片描述
全集: 将两个集合的所有数据全部显示,不会完成去重的操作
select * from emp where deptno = 30 union all select * from emp where sal > 1000;
在这里插入图片描述
交集: 两个集合中交叉的数据集,只显示一次
select * from emp where deptno = 30 intersect select * from emp where sal > 1000;
在这里插入图片描述
差集: 包含在A集合而不包含在B集合中的数据,跟A和B的集合顺序相关
select * from emp where deptno = 30 minus select * from emp where sal > 1000;
在这里插入图片描述

插入语句(INSERT)

以后补QvQ

删除语句(DELETE)

以后补QvQ

更新语句(INSERT)

以后补QvQ

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/2393.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pycharm集成github项目,拉取项目并进行代码管理

首先你要有一个github项目&#xff0c;然后找到一个想要拉取github项目的本地路径&#xff0c;打开git命令行&#xff0c;执行git clone http…路径&#xff0c;可能会需要你输入git的用户名和密码&#xff1b;用pycharm打开该项目&#xff1b;添加python解释器&#xff0c;我用…

YOLOv8改进项目汇总-超全改进-ultralyticsPro介绍:订阅了《芒果YOLOv8原创改进专栏》的读者免费赠送,包括很多稀有改进

&#x1f525;&#x1f525;&#x1f525;专注于YOLOv8改进&#xff0c;NEW - YOLOv8 &#x1f680; in PyTorch >, Support to improve Backbone, Neck, Head, Loss, IoU, LA, NMS and other modules&#x1f680; Makes YOLOv8 improvements easy again 芒果出品 YOLOv8…

上汽大通:依托电子签网络,升级产业供应链协同

2023年12月&#xff0c;法大大发布了中国首部《汽车行业合同数智化白皮书》&#xff08;点击阅读及下载&#xff1a;中国首部&#xff01;《汽车行业合同数智化白皮书》重磅发布 | 附下载&#xff09;。该白皮书中基于法大大自身参与汽车行业合同数智化建设的实践和思考&#x…

防反接、防过压、缓启动电路相关

一、防反接电路 电源正确接入时 电流从 VIN 端流向负载&#xff0c;经由 Q3(NMOS) 通向地&#xff08;GND&#xff09;。在上电瞬间&#xff0c;由于 MOS 管的体二极管效应&#xff0c;地回路通过体二极管接通。接下来&#xff0c;由于 Vgs(门源电压)大于 Vgsth(门限电压)&…

【python】python新闻文本数据统计和聚类 (源码+文本)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

Bentley二次开发教程02-开发环境搭建

1 Bentley 平台介绍 图 1 Bentley 平台介绍 Bentley 软件大致可分为四大平台&#xff0c;分别为用于设计的 Microstation 平台&#xff0c;用于协同的 ProjectWise 平台&#xff0c;用于对资产进行全生命周期管理的 AssetWise 平台和数据互联互通的 数字孪生平台 iTwin。 1.1 …

Linux文件系统与日志

一、inode和block 文件数据包括元信息与实际数据&#xff0c;文件存储在硬盘上&#xff0c;硬盘最小存储单位是扇区&#xff0c;每个扇区存储512字节 1.block(块)&#xff1a;文件系统中用于存储文件实际数据的最小单位&#xff0c;由文件系统进行分配和管理&#xff0c;并通…

【电子通识】什么是8D分析法?8D步骤及用法?

在问题分析时往往会听到8D报告这样的词汇。如在电源专题【电源专题】案例:电源芯片厂家怎么判断电源芯片端口是否损坏中我们使用的图片就来源于电源芯片厂家的8D报告。 什么是8D分析法? 8D问题分析由美国国防部于1974年创立,当时用于军用物资采购保障。目前在汽车产业、组装…

MapReduce案例-电影网站数据统计分析

本文适合大数据初学者学习MapReduce统计分析业务问题的步骤和基础的MapReduce编程方法&#xff0c;初步掌握Hadoop对计算任务的管理。 本文末尾有全部数据集和完整代码连接。 1.准备工作 安装Hadoop:Hadoop 3.3.2 离线安装-CSDN博客 按照好Hadoop之后要检查一下datanode运行情况…

在控制台实现贪吃蛇

在控制台实现贪吃蛇 前备知识Win32APICOORD这个结构体的声明如下&#xff1a;GetStdHandle 函数GetConsoleCursorInfo 函数SetConsoleCursorInfo 函数 SetConsoleCursorPosition 函数getAsyncKeyState 函数 控制台窗口的大小以及字符打印介绍控制台中的坐标宽字符及本地化介绍s…

SRS服务接入华为云CDN

CDN简介: CDN的全称是Content Delivery Network&#xff0c;即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节&#xff0c;使内容传输得更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网…

SSH远程连接docker容器-Linux-SSH -L 打隧道

问题&#xff1a;在物理机上用podman创建了一个容器&#xff0c;想SSH直接远程连接docker容器 解决方式&#xff1a; 步骤1: 在本地terminal输入以下命令&#xff1a; ssh -L 容器端口号:localhost:容器端口号 物理机用户名物理机ip -p 物理机端口号 即可&#xff0c;可新打…

centos7+mysql57安装以及初始化

1、下载安装yum官方mysql源&#xff1a; http://repo.mysql.com/ ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/061472a86e9e4548b76d4603d4614568.png rpm -ivh mysql57-community-release-el7.rpm2、yum安装mysql服务 yum install -y mysql-community-server…

423 世界读书日 和京东零售技术人一起读好书

我们正处于一个复杂、变化的世界&#xff0c;想要更好地理解、适应它&#xff0c;读书可能是最方便的方式之一。 4 月 23 日世界读书日&#xff0c;我们整理了 10 位零售技术人的书籍推荐给大家&#xff0c;欢迎大家一起来共读好书。愿大家在忙碌工作之余&#xff0c;都能够持…

从0到1实现RPC | 接入Apollo配置中心

一、代码实现 添加依赖 添加apollo客户端的依赖和spring配置相关依赖 添加监听器 通过实现ApplicationContextAware接口&#xff0c;获取Spring上下文。 使用ApolloConfigChangeListener注解监听命名空间rpc-demo-provider.yaml和默认的application.properties。 监听逻辑…

开源大模型王者归来:llama3最大4000亿参数,性能GPT4相当,超越Grok3140亿且全开源代码

llama3&Grok 目前开源的超级大模型有Gork和Llama3 https://github.com/xai-org/grok-1&#xff1b;该模型称为史上最大开源LLM&#xff0c;参数高达3140亿&#xff01;马斯克如约开源Grok&#xff0c;10小时狂揽10000颗Star&#xff0c;搞笑的是这个模型只开源了推理没有训…

17.Nacos与Eureka区别

Nacos会将服务的提供者分为临时实例和非临时实例。默认为临时实例。 临时实例跟eureka一样&#xff0c;会向注册中心报告心跳监测自己是否还活着。如果不正常了nacos会剔除临时实例。&#xff08;捡来的孩子&#xff09; 非临时实例&#xff0c;nacos会主动询问服务提供者是否…

古董展新风尚:山海鲸数据大屏引领科技潮流

在数字化浪潮的推动下&#xff0c;传统文化与现代科技正日益融合&#xff0c;展现出独特的魅力。近日&#xff0c;山海鲸推出了一款古董展览数据可视化大屏&#xff0c;将古董藏品的丰富内涵以直观、生动的形式呈现在观众面前&#xff0c;让人们在欣赏古董之美的同时&#xff0…

深入探索GDB:Linux下强大的调试神器

目录 一、GDB简介&#xff1a;源码级调试的基石 二、GDB基础操作&#xff1a;从入门到熟练 启动与基本命令 三、GDB进阶功能&#xff1a;解锁更深层次的调试能力 1. 回溯追踪&#xff1a;洞察调用栈 2. 动态内存检测&#xff1a;揪出内存问题 3. 条件断点与观察点&#…

制氢机远程监控运维方案

制氢机远程监控运维方案 在当今能源转型的大背景下&#xff0c;氢能作为清洁、高效且可再生的能源载体&#xff0c;其重要性日益凸显。而制氢机作为氢能产业链中的关键设备&#xff0c;其稳定运行与高效运维对于保障氢气供应、推动氢能产业健康发展至关重要。在此背景下&#…