Oracle 学习(1)

news2024/11/22 15:32:23
  1. Oracle简介 

Oracle是殷墟(yīn Xu)出土的甲骨文(oracle bone inscriptions)的英文翻译的第一个单词,在英语里是“神谕”的意思。Oracle公司成立于1977年,总部位于美国加州,是世界领先的信息管理软件开发商,因其复杂的关系数据库产品而闻名。Oracle数据库产品为财富排行榜上的前1000家公司所采用,许多大型网站也选用了Oracle系统。

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

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

WebLogic是美国bea公司出品的一个application server确切的说是一个基于Javaee架构的中间件,BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。2008116,全球最大的数据库软件公司甲骨文(Oracle)宣布已经同BEA达成协议,以85亿美元收购BEA。

2008116,Sun宣布已经与MySQL AB达成协议,以大约10亿美元收购MySQL AB。

20090420,甲骨文宣布,该公司将以每股9.5美元的价格收购Sun。该交易价值约为74亿美元。

    1. Oracle 体系结构

Oracle服务器 :是一个数据管理系统(RDBMS),它提供开放的, 全面的, 近乎完整的信息管理。由1个数据库和一个(或多个)实例组成。数据库位于硬盘上,实例位于内存中。

    1. 表空间(users)和数据文件

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

物理概念:数据文件,位于硬盘之上。(C:\app\Administrator\oradata\orcl目录内后缀为.DBF的文件)

  一个表空间可以包含一个或者是多个数据文件。1:n(表空间:数据文件)

    1. 、区、块

 

段存在于表空间中;  段是区的集合;  区是数据块的集合;  数据块会被映射到磁盘块。 

 

    1. DBA的时间开销

 

    1. 数据库的启动设置

控制面板 → 管理工具  → 服务  → OracleServiceORCL → 自动(手动)

控制面板 → 管理工具  → 服务  → …home1TNSListener → 自动(手动)

  1. sqlplus 登录
  2. sqlplus  ↙ 用户名 ↙ 密码 ↙
  3. sqlplus scott/11  ↙   或   sqlplus hr/11  ↙
  4. 以管理员身份登陆:sqlplus  /  as  sysdba  (在Oracle数据库安装时指定了登陆密码)
  5. 解锁用户:SQL> alter user scott account unlock   (管理员身份登陆,给scott用户解锁。用户默认锁定)
  6. 修改用户密码:SQL> alter user scott identified by 新密码    (管理员身份登陆,给scott用户修改密码)
  7. 查看当前语言环境:SQL> select userenv('language') from dual  
    1. 贯穿这门课程的方案

scott方案:

 

hr方案: 

  1. 基本的SQL select语句
    1. sqlplus的基本操作

显示当前用户: SQL> show user;

查看当前用户下的表: SQL> select * from tab;

tab: 数据字典(记录数据库和应用程序源数据的目录),包含当前用户下的表。

查看员工表的结构: SQL> desc emp; (desc  →  description 描述)

设置行宽:set linesize 120;

设置页面:set pagesize 100;

  或者将上述两行写入如下两个配置文件,可永久设置:

C:\app\Administrator\product\11.2.0\client_1\sqlplus\admin\glogin.sql

C:\app\Administrator\product\11.2.0\dbhome_1\sqlplus\admin\glogin.sql

设置员工名列宽:col ename for a20 (a表示字符串)

设置薪水列为4位数子:col sal for 9999 (一个9表示一位数字)

    1. 基本 SELECT 语句

其语法格式为:

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

FROM table;

查询所有员工的所有记录: SQL> select * from emp; (效果等同于:)

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

※SQL优化: 尽量使用列名代替 * (Oracle 9i之前不同, 之后一样)

查询员工号、姓名、薪水: SQL> select empno, ename, sal from emp;

增加年薪: SQL>  select empno, ename, sal, sal * 12

   from emp;   

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

修改上一条SQL语句:

  1. 用c命令来修改(c 即 change)

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

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

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

例如:错误输入了:SQL> select empno, ename, sal, sal * 12 

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

  1. 输入:2↙  终端提示:2* from emp
  2. 输入:c  /form/from ↙ 终端提示:2* from emp  (意为改正后的sql语句样子)
  3. 输入:/↙
  1. 使用ed命令来修改   edit

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

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

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

     from  emp;  

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

“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作用于后面所有列

    1. SQL语句使用注意事项
  • SQL 语言大小写不敏感。 
  • SQL 可以写在一行或者多行
  • 关键字不能被缩写也不能分行
  • 各子句一般要分行写。
  • 使用缩进提高语句的可读性。
    1. 算数运算 + - * /
  • 乘除的优先级高于加减
  • 优先级相同时,按照从左至右运算
  • 可以使用括号改变优先级

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

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

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

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

    1. NULL值

☆NULL值问题:1. 包含NULL值的表达式都为空。2. 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中判断一值是否等于NULL不用“=” 和“!=”而使用is和is not

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

空值是无效的,未指定的,未知的或不可预知的值

空值不是空格或者0。(特别强调)

    1. 连接符

Oracle中定义了一个连接符 ’||’ 用来连接字符串。

显示“xxx 是一个 xxx”怎么显示呢?

SQL> select ename || ‘ is a ’ || ‘job’ from emp  

但是如果显示一个“hello world”应该怎么显示呢?

  1. 使用concat函数来实现: SQL> select concat(‘hello’, ‘ world’) from ????

这两个字符串不是任何一个表的内容,在Oracle中,定义一张“伪表”dual用来满足SQL99语法(ANSI)。

语法规定:select 后 必须接 from。

再如: SQL> select concat('hello', ' world') as "你好" from dual  

  注意:SQL双引号“”表示别名,使用‘’来表示字符串。

但是: SQL> select concat('hello', ' world', ' Oracle') as "你好" from dual 可以吗?

可以这样:SQL> select concat('aa', concat('bb', 'cc')) from dual;  

  1. 使用连接符 || 来实现: SQL> select 'hello' || ' world' || ' Oracle' as "你好" from dual  

再如: SQL> select 3 + 2 from dual;

‘||’就是用来代替concat函数的。SQL> select ename || ‘ is a ’ job “员工描述” from emp  

    1. SQL和sqlplus

我们已经学习使用了select,应该知道还有update、delete、insert、create…

同时,我们学习了ed、c、set、col、desc….

SQL → 语言,关键字不能缩写。

sqlplus → Oracle提供的工具,可在里面执行SQL语句,它配有自己的命令(ed、c、set、col) 特点是缩写关键字。

SQL

    • 一种语言
    • ANSI 标准
    • 关键字不能缩写
    • 使用语句控制数据库中的表的定义信息和表中的数据

SQL*Plus

    • 一种环境
    • Oracle 的特性之一
    • 关键字可以缩写
    • 命令不能改变数据库中的数据的值
    • 集中运行

 

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

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

相关文章

我在代码随想录|写代码Day-Day之总结篇

我是用笔手写的我觉得这样可以对个人记忆会更好,而且理解更深解释也更清楚 下面是手写笔记 总结部分----- 第一章 二分 二分模版 图片可能反了下不过没有关系 图形打印模版题 第二章 链表 链表基本操作和疑问 链表代码操作和解析----5大操作 删除部分 对结点的操作 反了反了…

LeetCode——1954. 收集足够苹果的最小花园周长

通过万岁!!! 题目:这个题目比较复杂,就是给你一个坐标轴,然后让你以0,0为中心选择一个边长为整数的正方形,使得正方形中所有点坐标的绝对值之和要大于给定的neededApples。但是我们需要输出的是…

案例167:基于微信小程序的校园失物招领小程序

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

Node.js教程-express框架

概述 Express是基于Node.js平台(建立在Node.js内置的http模块上),快速、开放、极简的Web开发框架。 中文官网 http://www.expressjs.com.cn/。 Github地址:https://github.com/orgs/expressjs。 Express核心特性: 可设置中间件来响应 HTTP…

关于“Python”的核心知识点整理大全40

目录 alien_invasion.py game_functions.py 14.3.3 在外星人被消灭时更新得分 settings.py game_functions.py game_functions.py alien_invasion.py 14.3.4 将消灭的每个外星人的点数都计入得分 game_functions.py 14.3.5 提高点数 settings.py settings.py 注意…

【Java JVM】Java 实例对象的访问定位

Java 程序会通过栈上的 reference 数据来操作堆上的具体对象。 但是 reference 类型在《Java虚拟机规范》里面只规定了它是一个指向对象的引用, 并没有定义这个引用应该通过什么方式去定位, 访问到堆中对象的具体位置, 所以对象访问方式也是由虚拟机实现而定的,主流…

iApp最新版无服务器多功能软件库源码

无需服务器的多功能软件库源码分享,仅需添加一个后台应用和一个文档即可 使用教程如下: 在浏览器中打开理想后台地址:http://apps.xiaofei.run/user/ 如果没有账号,请注册一个免费账号。 登录账号后,添加一个后台应…

web架构师编辑器内容-HTML2Canvas 截图的原理

HTML2Canvas 截图的原理 目的:一个canvas元素,上面有绘制一系列的HTML节点 局限:canvas中没法添加具体的Html节点,它只是一张画布 通过canvas.getContext(‘2d’)可以拿到canvas提供的2D渲染上下文,然后在里面绘制形…

洛谷 P3397 地毯 刷题笔记 二维差分矩阵

P3397 地毯 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 方法1 欺负数据小 暴力水过 #include<iostream> using namespace std; const int N1010; int a[N][N]; int main(){ int n,m; cin>>n>>m; for(int i0;i<m;i){ int x1,y1,…

基于STM32的DS1302实时时钟模块应用

DS1302是一款低功耗的实时时钟芯片&#xff0c;被广泛应用于各种电子产品中。它具有准确计时、多种时间格式表示、定时报警等功能&#xff0c;适用于记录时间、日期和闹钟。在本文中&#xff0c;我们将介绍如何在基于STM32的开发环境中使用DS1302实时时钟模块&#xff0c;并给出…

【重点!!!】【单调栈】84.柱状图中最大矩形

题目 法1&#xff1a;单调栈[原版] O(N)O(N) 必须掌握算法&#xff01;&#xff01;&#xff01; class Solution {public int largestRectangleArea(int[] heights) {int n heights.length, res 0;int[] leftMin new int[n], rightMin new int[n];Stack<Integer>…

开源项目解读 —— Self-Operating Computer Framework # 长期主义 # 价值

价值&#xff1a;生成主函数业务逻辑函数思维导图&#xff0c;帮助理解&#xff0c;PR到开源项目&#xff0c;希望帮助大家理解IPA工作原理&#xff0c;国内没有好的开源项目&#xff0c;我就来翻译分析解读&#xff0c;给大家抛砖引玉。思维导图用文心一言配合其思维导图插件实…

jar 运行清单文件MANIFEST.MF生成定义Main-Class Premain-Class IDEA maven-assembly-plugin

可运行jar文件中的启动清单文件 META-INF/MANIFEST.MF 内容自定义生成 清单文件中的 Main-Class: Premain-Class: Can-Retransform-Classes: 在maven-assembly-plugin插件中的生成配置如下, 注意命名 <archive> <manifest> <mainClass>c…

华为设备VRP系统管理

为了满足企业业务对网络的需求&#xff0c;网络设备中的系统文件需要不断进行升级。另外&#xff0c;网络设备中的配置文件也需要时常进行备份&#xff0c;以防设备故障或其他灾害给业务带来损害。在升级和备份系统文件或配置文件时&#xff0c;经常会使用FTP和TFTP来传输文件。…

浅谈Springboot默认logger函数的使用

目录 前言1. logger日志2. 补充 前言 原先写过一篇logger日志函数的总结&#xff0c;不同的引用来源&#xff1a;java常见log日志的使用方法详细解析 但是为了不引入依赖包&#xff0c;更好的直接使用&#xff0c;总结了如下博文 1. logger日志 Spring Boot使用Spring框架中…

基于阿里云服务网格流量泳道的全链路流量管理(二):宽松模式流量泳道

作者&#xff1a;尹航 在前文基于阿里云服务网格流量泳道的全链路流量管理&#xff08;一&#xff09;&#xff1a;严格模式流量泳道中&#xff0c;我们介绍了使用服务网格 ASM 的严格模式流量泳道进行全链路灰度管理的使用场景。该模式对于应用程序无任何要求&#xff0c;只需…

语法树的画法(根据文法求字符串)

目录 1.语法树的画法 2.语法树的短语 3.直接短语&#xff08;直接到根部&#xff09; 4.素短语 5.句柄 6.算符优先分析句型 1.语法树的画法 文法G[E]:E->EE | E*E | (E) | i ,字符串 ii*i 推导方式有两种最左推导和最右推导&#xff08;推导的技巧就是逐步靠近字符串…

数禾使用 Knative 加速 AI 模型服务部署丨KubeCon China 2023

作者&#xff1a;李鹏&#xff08;阿里云&#xff09;、魏文哲&#xff08;数禾科技&#xff09;&#xff0c; 此文基于 KubeCon China 2023 分享整理 摘要 AI 服务的数据、训练、推理等都需要消耗大量的计算资源以及运维成本&#xff0c;在数禾科技的金融业务场景下&#xf…

LaTex中参考文献引用

一、引用参考文献 这里我们使用的是BibTeX的引用格式&#xff0c;因此文件中应包括两个文件&#xff08;.bib-参考文献 和 .bst-文献格式&#xff09;。 有了这两个文件后&#xff0c;我们在bib文件中创建参考文献&#xff1a;&#xff08;注意&#xff0c;作者的名字是逗号前…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Image图片组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Image图片组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Image组件 Image 用来加载并显示图片的基础组件&#xff0c;它支持从内存、本…