Java进阶-Oracle(二十一)(2)

news2024/12/27 18:18:03

🌻🌻 目录

  • 一、Oracle 数据库的操作(DDL DML DQL DCL TPL)
    • 1.1 标识符、关键字、函数等
      • 1.1.1 数值类型:
      • 1.1.2 字符串类型:
      • 1.1.3 日期类型
      • 1.1.4 大的数据类型--适合保存更多的数据
    • 1.2 运算符
    • 1.3 函数---预定义函数、自定义函数,
      • 1.3.1 数值函数---进行数值操作:
      • 1.3.2 字符串函数
      • 1.3.3 日期函数
      • 1.3.4 转换函数
      • 1.3.5 其他函数
    • 1.4 单表多表查询
    • 1.5 分页查询

一、Oracle 数据库的操作(DDL DML DQL DCL TPL)

1.1 标识符、关键字、函数等

  • 1)标识符—数字、字母、下划线、#
  • 2)关键字
  • 3)数据类型:

1.1.1 数值类型:

  • 1) Mysql—int double
  • 1) Oracle—number:整数和小数,number(n)–整数,number(m,n)–小数,m表示小数的整体位数,n表示小数点之后的位数

1.1.2 字符串类型:

Mysql—char varchar
Oracle—char varchar2 nchar nvarchar2
char nchar – 定长类型,向此类型的字段中添加字符串的时候,如果字符串的长度不够指定的长度,那么自动补齐空格
varchar2 nvarchar2 – 变长类型,向此类型的字段中添加字符串的时候,不会补齐空格,添加的字符串是多长那么空间就是多长
varchar2和nvarchar2–占4000字节,通常一个数字或者一个字母对应一个字节,使用此两个类型可以保存4000个字母或者数字,在Oracle中默认三个字节一个汉字
varchar2(n) — n表示字节个数,能放的汉字个数n/3
varchar2(n char) — n表示汉字个数
char和nchar—占2000字节,char(n char) — n表示汉字个数

1.1.3 日期类型

Mysql – date datetime
Oracle – date timestamp

1.1.4 大的数据类型–适合保存更多的数据

Mysql — text tinytext longtext 存更多的字符串
blob longblob 存非字符串的内容,比如图片、音频等
Oracle — clob long 存更多的字符串
blob 存非字符串的内容,比如图片、音频、视频等

1.2 运算符

A、算术运算 + - * / mod()
B、关系判断运算:> >= < <= <>/!=
C、逻辑判断运算:and or not
D、特殊运算:is null is not null like in between…and
not like not between…and

1.3 函数—预定义函数、自定义函数,

在Oracle中函数的运行需要使用标准的sql格式,在Oracle中为了补齐标准的sql,设置了一个dual的虚拟表,
聚合函数—统计函数:count() avg() sum() max() min()
单行函数:

1.3.1 数值函数—进行数值操作:

数学函数–
abs()绝对值
四舍五入round()

在这里插入图片描述

截取数值函数trunc()–只删除不进位

在这里插入图片描述

floor()–比指定数值小的最大整数
ceil()–比指定数值大的最小整数

在这里插入图片描述

power()
log()

1.3.2 字符串函数

字符串截取–substr()

在这里插入图片描述

字符串长度–length()

在这里插入图片描述

大写转小写lower()
小写转大写upper()

在这里插入图片描述

首字母大写,其他小写initcap()

在这里插入图片描述

字符串串联concat() ||

在这里插入图片描述

1.3.3 日期函数

sysdate – 系统时间

在这里插入图片描述

给月份增加值add_months()

在这里插入图片描述

四舍五入日期round(date,’month/year’)

在这里插入图片描述

1.3.4 转换函数

在Oracle中日期格式是:日-月-年,而且月上还有一个汉字‘月’,比如:14-5月-19 19年5月14日
字符串转日期

select to_date('2023-05-07','YYYY-MM-dd') from dual;

在这里插入图片描述

字符串转数值–to_number(数值字符串,格式字符串)

select to_number('123','9G999') from dual;
select to_number('56,023,780','999,999,999') from dual;

在这里插入图片描述

日期转字符串、数值转字符串to_char

SELECT to_char(sysdate,'YYYY-MM-dd') from dual;
SELECT to_char(123456789,'999,999,999') from dual;

在这里插入图片描述

1.3.5 其他函数

Oracle自带模板表

在这里插入图片描述

与null有关的函数

select nvl(comm,0) from emp;

在这里插入图片描述

nvl()函数,将null转成指定的值
nvl2()函数,当第一个参数值不为null时,显示第二个参数的结果,当第一个参数值为null时,显示第三个参数的结果

select nvl2(comm,sal+comm,sal) from emp;

在这里插入图片描述

与case when then结构有关的函数

select job,case job when 'CLERK' then '文员'
                    when 'SALESMAN' then '销售员'
                    when 'MANAGER' then '经理'
                    when 'ANALYST' then '分析员'
                    when 'PRESIDENT' THEN '总裁'
           end job1
from emp;

在这里插入图片描述

代替以上格式的函数

select job,decode(job,'CLERK','文员',
                      'SALESMAN','销售员',
                      'MANAGER','经理',
                      'ANALYST','分析员',
                      'PRESIDENT','总裁') job1
from emp;

在这里插入图片描述

1、DDL—数据库定义语言:create drop alter
2、DML—数据库操作语言:insert delete update
3、DQL—数据库查询语言:select

CREATE TABLE t_person(

	pid NUMBER(5) primary key,
	pname VARCHAR2(3 CHAR),
	psex CHAR(1),
	pbirthday DATE,
	psal NUMBER(5,2),
	pbir timestamp
);

SELECT * FROM t_person;

INSERT INTO t_person VALUES(1004,'张易得','3','1-5月-1995',333.993,SYSDATE)

在这里插入图片描述

1.4 单表多表查询

单表查询:简单查询、子查询、连接查询
多表查询:连接查询、子查询

 -- 查询员工中没有奖金的员工信息
SELECT * FROM EMP WHERE COMM IS NULL OR COMM = 0

在这里插入图片描述

-- 子查询的结果如果出现在外查询的Where部分,那么子查询的结果就是where的条件值
-- 子查询的结果如果出现在外查询的from部分,那么子查询结果就是表
--如果子查询出现在where部分,子查询结果只有一个值,那么把子查询就看作是这个值
--如果子查询出现在where部分,子查询结果是一列多个值,那么把子查询看做同类型多个值

--查询员工工资比平均工资高的员工的信息

SELECT * FROM EMP WHERE SAL > (select AVG(SAL) from EMP)

在这里插入图片描述

-- 查询Smith、allern同部门的其他员工信息

select DEPTNO from EMP where  ENAME = 'SMITH' OR ENAME = 'ALLEN';

SELECT * FROM EMP 
WHERE DEPTNO IN (select DEPTNO from EMP where  ENAME = 'SMITH' OR ENAME = 'ALLEN') 
AND  ENAME <> 'SMITH' AND ENAME <> 'ALLEN';

在这里插入图片描述

--查询每位员工姓名以及领导的姓名

SELECT * from  emp e,emp m where e.empno = m.mgr(+)   --(+)ORACLE 特有的加上相当于左查询
 
SELECT * from  emp e LEFT JOIN emp m ON e.empno = m.mgr  --左查询

在这里插入图片描述

1.5 分页查询

  • 在Oracle中实现分页,没有limit关键字
  • rowid保证表中数据的唯一性
  • Rownum是查询结果的行号
  • 分页实现

– 第一页,每页4个,行号从1到4

select empno,ename,job,mgr,hiredate,sal,comm,deptno
from (select rownum r,emp.* from emp) te
where te.r between 1 and 4;

在这里插入图片描述

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

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

相关文章

MFC 多语言对话框

可以直接看一下bilibili的这个本人录制的视频&#xff1a;MFC资源多语言_哔哩哔哩_bilibili 这里所说的多语言也是国际化 新建一个MFC项目&#xff0c;我这边是中文简体&#xff0c;如果想加入其他语言&#xff0c;方法如下&#xff1a; 修改完这些之后&#xff0c;需要在代码…

f1tenth仿真2

起点(0.192,0.201) 终点(9.902,5.148) 起点(9.902,5.148) 终点(-13.289,7.058) 起点(-13.289,7.058) 终点(-13.289,0.201) 起点(-13.289,0.201) #! /usr/bin/env python import time from numba import jit import math import rospy import numpy as…

python教程:删除列表中某个元素的3种方法

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! python中关于删除list中的某个元素&#xff0c;一般有三种方法:remove、pop、del&#xff1a; 1.remove: 删除单个元素&#xff0c;删除首个符合条件的元素&#xff0c;按值删除 举例说明: >>> str[1,2,3,4,5,…

msvcp140.dll丢失的解决方法?三个常见修复解决方法

msvcp140.dll是Microsoft Visual C Redistributable的一部分&#xff0c;它是一个Windows操作系统中的动态链接库文件。这个文件是由Microsoft开发的&#xff0c;用于提供运行C程序所需的函数和库。它通常用于许多软件和游戏中&#xff0c;如果缺少或损坏该文件&#xff0c;可能…

【MySQL】总结中

什么是MySQL MySQL是一个数据库软件&#xff0c;是一个"客户端-服务器"结构的软件。 客户端&#xff08;Client&#xff09;&#xff1a;主动发起请求的一方。客户端给服务器发起的数据&#xff0c;称为请求&#xff08;Request&#xff09; 服务器&#xff08;Se…

【Linux】ICMP协议——网络层

ICMP协议 ICMP&#xff08;Internet Control Message Protoco&#xff09;Internet控制报文协议&#xff0c;用于在IP主机、路由器之间传递控制信息&#xff0c;是一个TCP/IP协议。该协议是用来检测网络传输的问题&#xff0c;相当于维修人员的工具。 ICMP协议的定位 在TCP/IP…

轻松转换TS视频为MP4,实现优质视频剪辑体验

如果你是一个视频剪辑爱好者&#xff0c;你一定会遇到各种视频格式之间的转换问题&#xff0c;特别是将TS视频转换为MP4格式。别担心&#xff0c;我们的视频剪辑软件将为你提供最简单、高效的解决方案&#xff01; 首先第一步&#xff0c;我们要进入媒体梦工厂主页面&#xff…

Dubbo高手之路2,6种扩展机制详解

目录 一、Dubbo扩展机制的概述二、Dubbo的自适应扩展机制1. 什么是自适应扩展机制2. 自适应扩展机制的使用示例 三、Dubbo的SPI扩展机制1. 什么是SPI扩展机制2. SPI扩展机制的使用示例3. Dubbo的SPI扩展机制中自定义扩展点的实现示例 四、Dubbo的自定义扩展点机制1. 什么是自定…

阿里云对象存储OSS预留空间详细介绍

对象存储OSS预留空间是什么&#xff1f;预留空间是指定地域的&#xff0c;仅可抵扣该地域“标准存储 - 本地冗余”的OSS存储费用&#xff0c;不支持非存储容量费用抵扣&#xff0c;付费周期一年&#xff0c;阿里云对象存储推出全新预留空间产品&#xff08;Reserved Capacity&a…

Redis 之 缓存预热 缓存雪崩 缓存击穿 缓存穿透

目录 一、缓存预热 1.1 缓存预热是什么&#xff1f; 1.2 解决方案&#xff1a; 二、缓存雪崩 2.1 缓存雪崩是什么&#xff1f;怎么发生的&#xff1f; 2.2 怎么解决 三、缓存穿透 3.1 是什么&#xff1f;怎么产生的呢&#xff1f; 3.2 解决方案 3.2.1、采用回写增强&a…

想了解一个项目完整测试流程,看这篇文章就OK了

项目的测试流程大只包含的几个阶段&#xff1a;立项、需求评审、用例评审、测试执行、测试报告文档    一、立项后测试需要拿到的文档 1、需求说明书   2、原型图&#xff08;及UI图&#xff09;   3、接口文档   4、数据库字典&#xff08;表的数量、缓存机制&#x…

第57步 深度学习图像识别:CNN可视化(Pytorch)

基于WIN10的64位系统演示 一、写在前面 由于不少模型使用的是Pytorch&#xff0c;因此这一期补上基于Pytorch实现CNN可视化的教程和代码&#xff0c;以SqueezeNet模型为例。 二、CNN可视化实战 继续使用胸片的数据集&#xff1a;肺结核病人和健康人的胸片的识别。其中&…

新版百度、百家号旋转验证码识别

昨天突然发现&#xff0c;百度旋转验证码发生了变化&#xff0c;导致使用老版本验证码训练出来的识别模型效果不佳。所有昨天花了一天时间完成了新版模型的训练。 老版本验证码 新版本验证码 新版的验证码感觉像是AI绘画随机生成的&#xff0c;还有随机阴影出现。 验证码识别…

python -m参数的作用(python3 -m)

文章目录 Python -m 参数的作用直接执行模块代码模块自测试环境隔离避免名称冲突 其他&#xff1a;python3 --help Python -m 参数的作用 在Python中&#xff0c;使用-m参数可以执行一个模块作为脚本。它是用于从命令行直接运行一个Python模块的标志。这种方式具有以下几个方面…

git远程仓库的创建及使用

1.仓库的概念&#xff1a; 1.1 本地仓库&#xff1a; 了解远程仓库前我们先了解一下本地仓库&#xff0c;本地仓库开发人员在完成部分代码的编写之后&#xff0c;可以将这一部分的代码做一个提交。这个提交完全就是一个新的版本提交&#xff0c;当然这个提交动作是在开发者的电…

QT生成Word PDF文档

需求&#xff1a;将软件处理的结果保存为一个报告文档&#xff0c;文档中包含表格、图片、文字&#xff0c;格式为word的.doc和.pdf。生成word是为了便于用户编辑。 开发环境&#xff1a;qt4.8.4vs2010 在qt的官网上对于pdf的操作介绍如下&#xff1a;http://qt-project.org/…

【Linux】NAT技术——解决IP地址短缺手段

NAT技术 NAT&#xff08;Network Address Translation&#xff0c;网络地址转换&#xff09;技术&#xff0c;是解决IP地址不足的主要手段&#xff0c;并且能够有效地避免来自网络外部的攻击&#xff0c;隐藏并保护网络内部的计算机。 NAT技术背景 在IPv4协议中&#xff0c;…

Windows - UWP - 网络不好的情况下安装(微软商店)MicrosoftStore的应用

Windows - UWP - 网络不好的情况下安装&#xff08;微软商店&#xff09;MicrosoftStore的应用 前言 UWP虽然几乎被微软抛弃了&#xff0c;但不得不否认UWP应用给用户带来的体验。沙箱的运行方式加上微软的审核&#xff0c;用户使用起来非常放心&#xff0c;并且完美契合Wind…

idea cannot download sources 解决方法

问题 点击class文件右上角下载源码失败 解决方案 找到idea terminal 控制台cd 至maven工程执行 mvn dependency:resolve -Dclassifiersources

session是什么?它与cookie有什么关系?

session是什么&#xff1f; Session是服务器端使用的一种记录客户端状态的机制&#xff0c;使用上比Cookie简单一些&#xff0c;相应的也增加了服务器的存储压力。 session和cookie一样&#xff0c;都是用来记录web服务器和客户端通信状态的机制&#xff0c;session和cookie不同…