C++学习之ORACLE①

news2025/4/18 8:18:53

目录

1.ORACLE数据库简介

2..ORACLE数据库安装

3..ORACLE体系结构

4..ORACLE基本概念

5..ORACLE基本元素

6..ORACLE数据库启动和关闭

7.SQLPLUS登录ORACLE数据库相关操作

8.SQLPLUS的基本操作

9.oracle中上课使用的方案

10.SQL语言分类

11.SQL中的select语句语法和注意事项

12.oracle中查询相关示例

13.课程复习

14.别名和distinct去重

15.算术运算和NULL

16.SQL语句中where中日期格式

17.SQL语句中比较运算符

18.SQL语句中模糊查询

19.SQL语句中逻辑运算

20.SQL语句排序


1.ORACLE数据库简介

2..ORACLE数据库安装

Oracle(甲骨文)公司成立于1977年,总部位于美国加州,是世界领先的信息管理软件开发商,因其复杂的关系数据库产品而闻名。Oracle数据库产品为财富排行榜上的前1000家公司所采用,许多大型网站也选用了Oracle系统,所以Oracle是在数据库领域一直处于领先地位的产品。

Oracle数据库是Oracle公司的核心产品,Oracle数据库是一个适合于大中型企业的数据库管理系统。在所有的数据库管理系统中(比如:微软的SQL Server,IBM的DB2等),Oracle的主要用户涉及面非常广,包括:银行、电信、移动通信、航空、保险、金融、电子商务和跨国公司等。

Oracle公司成立以来,从最初的数据库版本到Oracle7、Oracle8i、Oracle9i,Oracle10g到Oracle11g,Oracle12c 虽然每一个版本之间的操作都存在一定的差别,但是Oracle对数据的操作基本上都遵循SQL标准。因此对Oracle开发来说各版本之间的差别不大。

3..ORACLE体系结构

4..ORACLE基本概念

表空间(users)和数据文件

逻辑概念:表空间由多个数据文件组成。位于实例上,在内存中。

物理概念:数据文件,位于硬盘之上。(C:\app\Administrator\oradata\orcl目录内后缀为.DBF的文件)一个表空间可以包含一个或者是多个数据文件。1:n(表空间:数据文件)

/home/oracle/app/oradata/orcl

、区、块

5..ORACLE基本元素

6..ORACLE数据库启动和关闭

scott用户密码: 11

sys用户的密码: sys

  1. sqlplus  ↙ 用户名 ↙ 密码 ↙
  2. sqlplus  用户名/密码↙
  3. sqlplus 用户名/密码@//ip/实例名 ↙

远程登录oracle服务器方式,如(sqlplus scott/11@//192.168.1.100/orcl)

  1. sqlplus 用户名/密码@实例别名 ↙(实例别名配置参考附件2:Oracle客户端实例别名配置.docx)
  2. 以管理员身份登陆:sqlplus  /  as  sysdba

在Oracle数据库安装时指定了登陆密码

  1. 解锁用户:SQL> alter user scott account unlock 

管理员身份登陆,给scott用户解锁。用户默认锁定

  1. 修改用户密码:SQL> alter user scott identified by 新密码

管理员身份登陆,给scott用户修改密码

  1. 查看当前语言环境:SQL> select userenv('language') from dual

Scott hr  sys

7.SQLPLUS登录ORACLE数据库相关操作

      1. Linux/Unix上启动数据库服务

[oracle@deng ~]$ sqlplus  sys/sys as sysdba

Sqlplus: 是一个客户端命令

Sys是超级管理员的用户名

Sys是超级管理员的密码

As sysdba 表示使用系统管理员的方式登录

关闭数据库:

SQL> shutdown immediate 

Database closed.

Database dismounted.

ORACLE instance shut down.

关闭Oracle监听服务(先退出sqlplus)

SQL> quit;

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

[oracle@deng ~]$ lsnrctl stop

8.SQLPLUS的基本操作

启动Oracle数据库

SQL> startup

ORACLE instance started.

Total System Global Area  830930944 bytes

Fixed Size     2217912 bytes

Variable Size   616564808 bytes

Database Buffers   205520896 bytes

Redo Buffers     6627328 bytes

Database mounted.

Database opened.

SQL>

启动监听服务:

[oracle@deng ~]$ lsnrctl start

启动和关闭使用oracle用户

9.oracle中上课使用的方案

Sqlplus使用管理员登录后

  1. startup

启动数据库实例

  1. shutdown

关闭数据库实例

如果要远程连接到数据库还得,启动监听服务

在命令行(不是sqlplus中)

  1. lsnrctl start
  2. lsnrctl status
  3. lsnrctl stop

10.SQL语言分类

11.SQL中的select语句语法和注意事项

其语法格式为:

SELECT *|{[DISTINCT] column |expression [alias],...}

FROM table  [TableAlias1 ] [,table2 [TableAlias2 ],…]

[WHERE expression]

[GROUP BY column1[,column2,…]]

[HAVING expression]

[ORDER BY column1[,column2,…]]

语法描述说明

  1. 花括号{}括起的部分为必填部分
  2. 中括号[]括起来的部分为可选部分
  3. 多种形式的语法用竖线|来表示并列单选,或者的意思

12.oracle中查询相关示例

在scott方案中完成以下任务:

  1. 查询所有员工的所有记录

SQL> select * from emp;

SQL> select empno, ename, job, mgr, hiredate, sal, comm, deptno from emp;

※SQL优化: 尽量使用列名代替 * ,因为使用*会先转成列名,这期间损耗了一点性能 (Oracle 9i之前不同, 之后一样)

  1. 查询员工号、姓名、薪水

SQL> select empno, ename, sal from emp;

增加查询年薪:

SQL>  select empno, ename, sal, sal * 12

   from emp;   

“/”执行上一条成功执行的SQL语句。

  1. 修改上一条SQL语句:
  1. 用c命令来修改(c 即 change)

默认,光标闪烁位置指向上一条SQL语句的第一行。输入 2 则定位到第二行

c  /错误关键字/正确关键字 ↙

使用“/”来执行修改过的SQL语句

例如:错误输入了:

SQL> select empno, ename, sal, sal * 12 

form emp;   (“from”书写错误,该错误位于整条SQL语句的第二行)

13.课程复习

  1. 使用ed命令来修改   edit

ed ↙弹出系统默认的文本编辑器,(如记事本)

修改、保存、退出、执行“/”。

设置默认的文编编辑器(gedit)

SQL> define_EDITOR=gedit

别名:as     

SQL> select empno as “员工号”, ename “姓名”, sal 月薪, sal * 12 年薪

     from  emp;  

关键字as写与不写没有区别; “”有与没有取决于别名中是否有空格或者关键字。

14.别名和distinct去重

“DISTINCT” 关键字。去除结果集重复的行

SQL> select deptno from emp; → SQL> select DISTINCT deptno from emp;

SQL> select job from emp;  →   SQL> select distinct job from emp;

SQL> select distinct deptno, job from emp;  会发现没有行减少,因为deptno不重复。

因此得出,DISTINCT的作用范围: distinct作用于后面所有列

15.算术运算和NULL

  • 乘除的优先级高于加减
  • 优先级相同时,按照从左至右运算
  • 可以使用括号改变优先级

查询: 员工号、姓名、月薪、年薪、奖金、年收入。

SQL> select deptno, ename, sal, sal * 12, comm, comm+sal*12 from emp;

结果不正确。没有奖金的员工,年收入不正确。

需注意,在程序开发过程中,数据是核心。程序再正确也没有用,必须保证数据不能丢,且正确。对于上面的结果,有对有错的情况是最危险的。

16.SQL语句中where中日期格式

☆NULL值问题

1. 包含NULL值的表达式都为空。

2. NULL != NULL

任何算数运算碰到NULL值都变成NULL任何逻辑运算碰到NULL值都变成假

解决:滤空函数:nvl(a, b)  如果a为NULL, 函数返回b。所以:sal * 12 + nvl(comm, 0) 年收入。

NULL != NULL举例:

查询奖金为NULL的员工信息:

SQL> select * from emp where comm = NULL; (SQL中不使用==)

在SQL中,判断一值是否等于另外一值不用“=” 和“!=”而使用is和is not。

SQL> select * from emp where comm is NULL; (is not)

17.SQL语句中比较运算符

查询10号部门的员工信息:

SQL> select * from emp where deptno=10

查询”KING”的信息:

SQL> select * from emp where ename= 'KiNg '   未选定行。

注意:字符串大小写敏感

SQL> select * from emp where ENAME='KING'; 则正确

查询入职日期为1981年11月17日的员工:

SQL> select * from emp where hiredate= '1981-11-17 '   可以吗?

参看:

SQL> select sysdate from dual   查看系统当前的日期 (注意其格式)。

SQL> select * from emp where hiredate= '17-11月-81 '

获取系统当前日期格式:

SQL> select * from v$nls_parameters (数据字典,类似于tab)

设置列宽度:

18.SQL语句中模糊查询

改回系统默认格式:SQL> alter session set NLS_DATE_FORMAT = 'DD-MON-RR';

  1. 字符和日期要包含在单引号中。
  2. 字符大小写敏感,日期格式敏感。
  3. 默认的日期格式是 DD-MON-RR

19.SQL语句中逻辑运算

AND   逻辑与

OR 逻辑或

NOT   逻辑非

如果…..where 表达式1 and 表达式2;

…..where 表达式2 and 表达式1;

这两句SQL语句功能一样吗?效率一样吗?

※SQL优化

SQL在解析where的时候,是从右至左解析的。

所以: and时应该将易假的值放在右侧

or时应该将易真的值放在右侧

20.SQL语句排序

  1. 使用 ORDER BY 子句排序
    • ASC(ascend): 升序。默认采用升序方式。
    • DESC(descend): 降序
  2. ORDER BY 子句在SELECT语句的结尾。

SELECT   last_name, job_id, department_id, hire_date

FROM     employees

ORDER BY hiredate ;

查询员工信息,按月薪排序:

SQL>  select * from emp order by sal   结尾加desc (descending)降序

order by 之后可以跟那些内容呢?

order by + 列名表达式别名序号。 注意:语法要求order by 子句应放在select的结尾。

SQL> select  ename, sal, sal*12  from emp order by sal * 12 desc

序号:默认:ename→1, sal→2,sal*12→3

SQL> select  ename, sal, sal*12, from emp order by 2 desc   按月薪进行排序。

如果:SQL> select * from emp order by deptno, sal

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

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

相关文章

企业级开发SpringBoost玩转Elasticsearch

案例 Spring Boot 提供了 spring-data-elasticsearch 模块,可以方便地集成 Elasticsearch。 下面我们将详细讲解如何在 Spring Boot 中使用 Elasticsearch 8,并提供示例代码。 1. 添加依赖: 首先,需要在 pom.xml 文件中添加 spring-data-e…

从零开始的图论讲解(1)——图的概念,图的存储,图的遍历与图的拓扑排序

目录 前言 图的概念 1. 顶点和边 2. 图的分类 3. 图的基本性质 图的存储 邻接矩阵存图 邻接表存图 图的基本遍历 拓扑排序 拓扑排序是如何写的呢? 1. 统计每个节点的入度 2. 构建邻接表 3. 将所有入度为 0 的节点加入队列 4. 不断弹出队头节点,更新其…

SpringBoot框架—启动原理

1.SpringBootApplication注解 在讲解启动原理之前先介绍一个非常重要的注解SpringBootApplication,这个注解在Springboot程序的入口文件Application.java中必须添加。SpringBootApplication是一个整合了三个核心注解的组合注解。 三个核心注解的作用机制&#xff1…

怎么检查网站CDN缓存是否生效

为什么要使用CDN缓存? 网站使用缓存可显著提升加载速度,减少服务器负载和带宽消耗,优化用户体验,增强架构稳定性,助力SEO优化,实现资源高效利用与性能平衡。 通过合理配置 CDN 缓存策略,可降低…

【自然语言处理】深度学习中文本分类实现

文本分类是NLP中最基础也是应用最广泛的任务之一,从无用的邮件过滤到情感分析,从新闻分类到智能客服,都离不开高效准确的文本分类技术。本文将带您全面了解文本分类的技术演进,从传统机器学习到深度学习,手把手实现一套…

vba讲excel转换为word

VBA将excel转换为word Sub ExportToWordFormatted() 声明变量Dim ws As Worksheet 用于存储当前活动的工作表Dim rng As Range 用于存储工作表的使用范围(即所有有数据的单元格)Dim rowCount As Long, colCount As Long 用于存储数据范围的行数和列数…

ubuntu安装openWebUI和Dify【自用详细版】

系统版本:ubuntu24.04LTS 显卡:4090 48G 前期准备 先安装好docker和docker-compose,可以参考我之前文章安装: ubuntu安装docker和docker-compose【简单详细版】 安装openWebUI 先docker下载ollama docker pull ghcr.nju.edu.c…

基于Flask的勒索病毒应急响应平台架构设计与实践

基于Flask的勒索病毒应急响应平台架构设计与实践 序言:安全工程师的防御视角 作为从业十年的网络安全工程师,我深刻理解勒索病毒防御的黄金时间法则——应急响应速度每提升1分钟,数据恢复成功率将提高17%。本文介绍的应急响应平台&#xff…

spark数据清洗案例:流量统计

一、项目背景 在互联网时代,流量数据是反映用户行为和业务状况的重要指标。通过对流量数据进行准确统计和分析,企业可以了解用户的访问习惯、业务的热门程度等,从而为决策提供有力支持。然而,原始的流量数据往往存在格式不规范、…

list的使用以及模拟实现

本章目标 1.list的使用 2.list的模拟实现 1.list的使用 在stl中list是一个链表,并且是一个双向带头循环链表,这种结构的链表是最优结构. 因为它的实现上也是一块线性空间,它的使用上是与string和vector类似的.但相对的因为底层物理结构上它并不像vector是线性连续的,它并没有…

【今日三题】小乐乐改数字 (模拟) / 十字爆破 (预处理+模拟) / 比那名居的桃子 (滑窗 / 前缀和)

⭐️个人主页:小羊 ⭐️所属专栏:每日两三题 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 小乐乐改数字 (模拟)十字爆破 (预处理模拟)比那名居的桃子 (滑窗 / 前缀和) 小乐乐改数字 (模拟) 小乐乐改数字…

基于 Qt 的图片处理工具开发(一):拖拽加载与基础图像处理功能实现

一、引言 在桌面应用开发中,图片处理工具的核心挑战在于用户交互的流畅性和异常处理的健壮性。本文以 Qt为框架,深度解析如何实现一个支持拖拽加载、亮度调节、角度旋转的图片处理工具。通过严谨的文件格式校验、分层的架构设计和用户友好的交互逻辑&am…

44、Spring Boot 详细讲义(一)

Spring Boot 详细讲义 目录 Spring Boot 简介Spring Boot 快速入门Spring Boot 核心功能Spring Boot 技术栈与集成Spring Boot 高级主题Spring Boot 项目实战Spring Boot 最佳实践总结 一、Spring Boot 简介 1. Spring Boot 概念和核心特点 1.1、什么是 Spring Boot&#…

虽然理解git命令,但是我选择vscode插件!

文章目录 2025/3/11 补充一个项目一个窗口基本操作注意 tag合并冲突已有远程,新加远程仓库切换分支stash 只要了解 git 的小伙伴,应该都很熟悉这些指令: git init – 初始化git仓库git add – 把文件添加到仓库git commit – 把文件提交到仓库…

idea 打不开terminal

IDEA更新到2024.3后Terminal终端打不开的问题_idea terminal打不开-CSDN博客

【JVM】JVM调优实战

😀大家好,我是白晨,一个不是很能熬夜😫,但是也想日更的人✈。如果喜欢这篇文章,点个赞👍,关注一下👀白晨吧!你的支持就是我最大的动力!&#x1f4…

FPGA_DDR(二)

在下板的时候遇到问题 1:在写一包数据后再读,再写再读 这时候读无法读出 查看时axi_arready没有拉高 原因 : 由于读地址后没有拉高rready,导致数据没有读出卡死现象。 解决结果

【吾爱出品】[Windows] 鼠标或键盘可自定义可同时多按键连点工具

[Windows] 鼠标或键盘连点工具 链接:https://pan.xunlei.com/s/VONSFKLNpyVDeYEmOCBY3WZJA1?pwduik5# [Windows] 鼠标或键盘可自定义可同时多按键连点工具 就是个连点工具,功能如图所示,本人系统win11其他系统未做测试,自己玩…

vue3实战一、管理系统之实战立项

目录 管理系统之实战立项对应相关文章链接入口:实战效果登录页:动态菜单:动态按钮权限白天黑夜模式:全屏退出全屏退出登录:菜单收缩: 管理系统之实战立项 vue3实战一、管理系统之实战立项:这个项…

设计模式 Day 6:深入讲透观察者模式(真实场景 + 回调机制 + 高级理解)

观察者模式(Observer Pattern)是一种设计结构中最实用、最常见的行为模式之一。它的魅力不仅在于简洁的“一对多”事件推送能力,更在于它的解耦能力、模块协作设计、实时响应能力。 本篇作为 Day 6,将带你从理论、底层机制到真实…