oracle登录hr,SQL学习之函数,基于Oracle下的HR用户(一)

SQL学习之函数,基于Oracle下的HR用户(一)

SQL学习之函数,基于Oracle下的HR用户(一)

3.1.1 什么是函数

函数:是数据库产品中提供的能够处理查询结果的方法。函数能够用于下面的目的:

? 执行数据计算

? 修改单个数据项

? 格式化显示的日期和数字

? 转换列数据类型

? 函数有输入参数,并且总有一个返回值。

3.1.2 函数类型

单行函数:这些函数仅对单个行进行运算,并且每行返回一个结果。

多行函数(聚合函数):这些函数能够操纵成组的行,每个行组给出一个结果,这些函数也被称为组函数。

0ef317227354b3e2b2fde9882489b929.png

3.1.3 函数语法

function_name(arg1,arg2,…)

function_name:是函数的名字。

arg1, arg2:是由函数使用的任意参数。参数可以是一个列名、用户提供的常数、变量值、或者一个表达式。

3.2 单行函数

3.2.1 单行函数的特性包括:

? 作用于每一个返回行,每行返回一个结果

? 可能需要一个或多个参数

? 可以修改结果集的数据类型

? 可以嵌套

? 可能返回一个与参数不同类型的数据值

? 能够用在 SELECT、WHERE 和 ORDER BY 子句中

3.2.2 单行函数分类

字符函数:接受字符输入,可以返回字符或者数字值

数字函数:接受数字输入,返回数字值

日期函数:对 DATE 数据类型的值进行运算 (除MONTHS_BETWEEN 函数返回一个数字,所有日期函数都返回一个 DATE 数据类型的值。)

转换函数:从一个数据类型到另一个数据类型转换一个值

通用函数:

? NVL

? NVL2 ? NULLIF ? COALSECE

? CASE

? DECODE

3.3 字符函数

字符函数:单行字符函数接受字符数据作为输入,既可以返回字符值也可以返回数字值。

3.3.1 字符函数分类

? 大小写处理函数

? 字符处理函数

大小写处理函数结果含义lower(‘SQL Course’)sql course将字符串转换为小写

upper(‘SQL course’)SQL COURSE将字符转换为大写

initcap(‘SQL Course’)Sql Course将单词首字母转换成大写

3.3.3 示例一

查询员工表,使用 “ The Job id for ”链接转换大写格式后的员工姓名,并使用“ is ” 字符串链接他们工作 ID ,要求将工作 ID 转换小写格式。修改列名为“ EMPLOYEE DETAILS”。

select ' The job id for'||upper(last_name)||'is'|| lower(job_id) "EMPLOYEE DETAILS" from employees;

9f2e1044a0153468825d59a1c67d128e.png

3.3.4 示例二

显示雇员 higgins 的雇员号、姓名和部门号

select employee_id,last_name,department_id from employees where last_name = initcap('higgins');

6712cd2b7ad2aefed4aa24a98676758f.png3.4 字符处理函数

dual 表:dual 是一张只有一个字段,一行记录的表。dual 表也称之为’伪表’,因为他不存储主题数据。如果我们不需要从具体的表来取得表中数据,而是单纯地为了得到一些我们想得到的信息,并要通过 select 完成时,就要借助 dual 表来满足结构化查询语言的格式。

函数结果说明concat(‘hello’,‘Word’)helloWord两个字符串连接

substr(‘HelloWord’,1,5)Hello根据指定参数截取字符串

length(‘helloword’)10计算字符串长度

instr(‘helloword’,‘w’)6返回指定字符的位置

lpad(salary, 10 , ‘*’)*****24000按指定参数在字符串前面添加指定字符

rpad(salary, 10, ‘*’)24000*****按指定参数在字符串后面添加指定字符

trim(‘H’ from ‘Hello Word’)elloWord去掉指定字符

CONCAT(arg1,arg2):连接值在一起 (CONCAT 函数有两个输入参数)

arg1:字符串类型。字符拼接的值。

arg2:字符串类型。字符拼接的值。

510d012296f5aae153bed5d6753b26e8.png

SUBSTR(arg1,arg2,arg3):截取子串。

arg1:字符串类型。原字符串,

arg2:整数类型。开始位置(开始位置可以是一个负数,-1 表示原串的最后一位,- 2 则表示倒是第二位以此类推),

arg3:整数类型。截取个数。

1df955a53d5553bcce742c5af03ab0e1.png

SUBSTR(arg1,arg2):截取子串。

arg1:字符串类型。原字符串。

arg2:开始位置(开始位置可以是一个负数,-1 表示原串的最后一位,-2 则表示倒是第二位以此类推)截取到末尾。

04ebc0fc957de7fffc73f78afde1185c.png

LENGTH(arg1):以数字值显示一个字符串的长度。

arg1:字符串类型。计算长度的字符串。

e36105d8a94ead8d60433fd134ac3c20.png

INSTR(arg1,arg2):找到一个给定字符的数字位置。

arg1:字符串类型。原字符串。

arg2:字符串类型。查找内容。

3eb73c778c5a7e5a892a06a4f5f95f2a.png

INSTR(arg1,arg2,arg3,arg4):指定查找位置以及出现的次数。

arg1:字符串类型。原字符串。

arg2:字符串类型。查找内容。

arg3:整数类型。开始位置。

arg4:整数类型。第几次出现。

72c5edaab096319ce0184cb437af9bd4.png

LPAD(arg1,arg2,arg3):用给定的字符左填充字符串到给定的长

度。

arg1:字符串类型。原字符串。

arg2:整数类型。总长度。

arg3:字符串类型。填充的子字符串。

44a681abe12cc9aedf76ebc8374c3830.png

RPAD(arg1,arg2,arg3):用给定的字符右填充字符串到给定的长度。

arg1:字符串类型。原字符串。

arg2:整数类型。总长度。

arg3:字符串类型。填充的子字符串。

7bc6f26337780fc42d283effe3c5292a.png

TRIM(arg1):从一个字符串中去除头(leading)或尾(trailing)或头尾两侧(both)的字符 (默认为头尾两侧) 如果 trim_character 或 trim_source 是一个文字字符,必须放在单引号中。

arg1 需要操作的字符串。FROM 为关键字。

格式 1:需要去掉的内容 FROM 原字符串

格式 2:leading|trailing|both 需要去掉的内容 FROM 原字符

串。

--去掉头尾两侧方法一:

select trim('H from HelloWorldH') from dual;

--去掉头尾两侧方法二:

select trim(both 'H' from 'HelloWorldH') from dual;

--去掉头:

select trim(leading 'H' from 'HelloWorldH') from dual;

--去掉尾:

select trim(trailing 'H' from 'HelloWorldH') from dual;

84c1a659d50b54ecb37d4cfe1dfe8730.png

REPLACE(arg1,arg2,arg3):REPLACE 函数是用另外一个值来替代串中的某个值。

arg1:字符串类型。原字符串。

arg2:字符串类型。需要替换的子串。

arg3:字符串类型。替换的内容。

eef02042e69b107f0e5fa43c6d7de92e.png

3.4.1 示例一

--显示所有工作岗位名称从第 4 个字符位置开始包含字符串 REP 的雇员的信息,将雇员的姓和名连接显示在一起,还显示雇员名的长度,以及名字中字母 a 的位置。

select concat(first_name,last_name),length(last_na me),instr(last_name,'a') from employees where substr(job_id,4)='REP';

43c25cf4b266724b2e017ac24454ec84.png

3.4.2 示例二

--显示名字是以 n 结束的雇员的数据,将雇员的姓和名连接显示在一起,还显示雇员名的长度,以及名字中字母 a 的位置。

select concat(first_name,last_name),length(last_name),instr(last_name,'a') from employees where substr(last_name,-1)='n';

86491052e042e367d5fb0d34a146fd28.png

3.4.3 示例三

--将手机号中间四位用星号代替。

select replace('13622329860',substr('13622329860',4,4),'****') from dual;

99db5f1fd790b52ab10d9f9f823d72b7.png3.5 数字函数

函数结果说明round(45.926,2)45.93四舍五入指定小数的值

trunc(45.926,2)45.92截取小数点后的位数,不做四舍五入处理

mod(1600,300)100取余

ROUND(arg1,arg2):四舍五入指定小数的值。

arg1:数字类型。原数字。

arg2:整数类型。小数点保留的位数,可以是一个负数。负数则表示指定整数的位置。

f84e86cc247920fc93d0e6a56ef675db.png

ROUND(arg1):四舍五入保留整数。

arg1:数字类型。原数字。

arg2:整数类型。小数点保留的位数。

8eb4f74294ccae73ca345a5e1aedc814.png

TRUNC(arg1,arg2):截断指定小数的值,不做四舍五入处理。

arg1:数字类型。原数字。

arg2:整数类型。小数点保留的位数,可以使一个负数。负数则表示指定整数的位置。

344d2f661a75f13b07de098e332bdd19.png

TRUNC(arg1):四舍五入保留整数。

arg1:数字类型。原数字。

arg2:整数

类型。小数点保留的位数。

900fcb6513555e7107d192f056b685d2.png

MOD(arg1,arg2):取余。

arg1:数字类型。被除数。

arg2:数字类型。除数。

2c36a19aa136586ee1b363bde2be6034.png

3.5.1 示例一

计算所有是销售代表(SA_REP)的雇员的工资被 5000 除后的余数。

select last_name,salary,mod(salary,5000)

from employees where job_id ='SA_REP';

41fdd68cdf30d84128ea9f38aea402fa.png

SQL学习之函数,基于Oracle下的HR用户(一)相关教程

MySQL优化步骤(四)-应用优化及锁

MySQL优化步骤(四)-应用优化及锁 ? 前面记录了对SQL语句的一些优化,但是由于MySQL数据库本身的一些局限性能局限,对连接数据库的一些应用同样应该做一些优化。 1.1、使用数据库连接池 对于访问数据库来说,建立连接的代价是比较昂贵的,因为我们频繁的创建关

通俗易懂MySQL事务与索引

通俗易懂MySQL事务与索引 MySQL 谈到事务一般都是以下四点 原子性(Atomicity) 原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 一致性(Consistency) 事务前后数据的完整性必须保持一致。 隔离性(Isolation) 事务的隔

MySQL主从、主主互备

MySQL主从、主主互备 为什么80%的码农都做不了架构师? Docker部署MySQL主/从复制集群搭建 一共三个文件,按需求修改配置;保存文件。 vim DockerfileFROM mysql:5.7COPY replica.sh /docker-entrypoint-initdb.d/##########################################

mysql InnoDB UUID 主键 性能优化【性能分析篇】.md

mysql InnoDB UUID 主键 性能优化【性能分析篇】.md 为什么80%的码农都做不了架构师? mysql uuid 主键 性能优化【性能分析篇】.mdmysql InnoDB UUID 主键 性能优化【实践篇】.md 有序uuidmysql InnoDB UUID 主键 性能优化【原理篇】.mdmysql InnoDB UUID 主

mysql InnoDB UUID 主键 性能优化【原理篇】.md

mysql InnoDB UUID 主键 性能优化【原理篇】.md 为什么80%的码农都做不了架构师? mysql InnoDB uuid 主键 性能优化【原理篇】.mdmysql InnoDB UUID 主键 性能优化【实践篇】.md 有序uuidmysql InnoDB UUID 主键 性能优化【原理篇】.mdmysql InnoDB UUID 主键

koa+mysql 使用教程

koa+mysql 使用教程 初次探索 node, 与大家分享下项目搭建的过程, 有不对的地方欢迎指出 创建项目 安装脚手架 npm install -g koa-generator 使用 ejs 引擎创建名为 project 的项目 koa2 -e project 启动 进入项目 cd project 安装依赖 npm install 运行 yarn

Mysql SQL优化

Mysql SQL优化 1.Mysql逻辑分层,及存储引擎 连接层:提供与客户端连接的服务; 服务层: 提供各种用户使用的接口(select.) 提供SQL优化器(Mysql Query Optimizer) 引擎层:提供了各种存储数据的方式(InnoDB、MyISAM); 存储层:存储数据; 常用执行引擎有: In

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值