对比mysql学习oracle函数(一):oracle单行函数—字符函数

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 对比mysql学习oracle函数(一):oracle单行函数—字符函数

1、单行函数分类:一行记录,返回一个结果;

image.png

1)字符函数

注意:与mysql中函数用法不同的地方,我都用红色进行了标注。

image.png

大小写转换函数


-- 大写转小写函数
SQL> select lower('AbC') from dual;
LOWER('ABC')
------------
abc
SQL> select upper('abc') from dual;
UPPER('ABC')
------------
ABC
SQL> select initcap('aBc') from dual;
INITCAP('ABC')
--------------
Abc


字符串处理函数

① concat(str1,str2):用于进行两个字符串的拼接。


与mysql中用法不太一样,mysql中的concat函数可以拼接多个字符串。

-- concat函数:这个与mysql中不太一样,mysql中concat函数可以连接多个字符串;
-- oracle中的concat函数只能连接两个字符串,||可以连接多个字符串;
SQL> select concat('齐天大圣','孙悟空') from dual;
CONCAT('齐天大圣','孙悟空')
---------------------------
齐天大圣孙悟空
SQL> select concat('齐天大圣','_','孙悟空') from dual;
select concat('齐天大圣','_','孙悟空') from dual
ORA-00909: 参数个数无效
SQL> select '齐天大圣'||'_'||'孙悟空' from dual;
'齐天大圣'||'_'||'孙悟空'
-------------------------
齐天大圣_孙悟空


② substr(str,start,[len]):从start位置开始截取字符串,len表示要截取的长度。


没有指定len长度:表示从start开始起,截取到字符串末尾。

指定了len长度:表示从start开始起,截取len个长度。

字符串的截取索引下标,从1开始。

SQL> select substr('杨过爱上了小龙女',3) from dual;
SUBSTR('杨过爱上了小龙女',3)
----------------------------
爱上了小龙女
SQL> select substr('杨过爱上了小龙女',6,3) from dual;
SUBSTR('杨过爱上了小龙女',6,3)
------------------------------
小龙女


③ length(str):获取字符串的字符个数。


与mysql中用法不太一样,mysql中的length函数表示获取的是字符串的字节个数。如果还是不太懂,可以下去查一下“字符”与“字节”的区别。

SQL> select length('abc') from dual;
LENGTH('ABC')
-------------
            3
SQL> select length('abc中国') from dual;
  LENGTH('ABC中国')
-----------------
                5
SQL> select length('abc-_-中国') from dual;
  LENGTH('ABC-_-中国')
--------------------
                   8


④ instr(str,要查找的子串):返回子串第一次出现的索引,如果找不到,返回0;找到了返回该字串第一次出现的位置索引。


SQL> select instr('杨过爱上了小龙女','小龙女') from dual;
          INSTR('杨过爱上了小龙女','小龙
------------------------------
                             6
SQL> select instr('杨过爱上了小龙女','小龙人') from dual;
          INSTR('杨过爱上了小龙女','小龙
------------------------------
                             0
SQL> select instr('a爱上了aline','a') from dual;
   INSTR('A爱上了ALINE','A')
-------------------------
                        1


⑤ lpad(str,len,填充字符):用指定的字符,实现对字符串左填充指定长度(以“字节”计算字符串)。

⑥ rpad(str,len,填充字符):用指定的字符,实现对字符串右填充指定长度(以“字节”计算字符串)。


与mysql中用法不太一样,mysql中的lpad/rpad函数表示以“字符”计算字符串。

SQL> select lpad('倚天屠龙记',20,'@') "lpad左填充" from dual;
lpad左填充
-------------------------
@@@@@@@@@@倚天屠龙记
SQL> select rpad('倚天屠龙记',20,'#') "lpad左填充" from dual;
lpad左填充
-------------------------
倚天屠龙记##########
SQL> select lpad('aaaaa',10,'*') "lpad左填充",rpad('aaaaa',10,'*') "rpad右填充" from dual;
lpad左填充 rpad右填充
SQL> select lpad('倚天屠龙记',10,'*') "lpad左填充" from dual;
lpad左填充
---------------
倚天屠龙记
SQL> select rpad('倚天屠龙记',10,'*') "rpad右填充" from dual;
rpad右填充
---------------
倚天屠龙记
---------- ----------


下面列出mysql中lpad和rpad的用法,仔细体会差别:


⑥ trim(str):去掉字符串前后的空格(不能去掉字符串中间的空格)。


-- 没有去掉空格以前,计算一下该字符串的长度;

SQL> select length('  哈哈 哈 ') from dual;
   LENGTH('哈哈哈')
----------------
               7
-- 使用trim函数,去掉字符串前后的空格;
SQL> select trim('  哈哈 哈 ') from dual;
TRIM('哈哈哈')
--------------
哈哈 哈
-- 计算去掉字符串前后的空格后,该字符串的长度;
SQL> select length(trim('  哈哈 哈 ')) from dual;
   LENGTH(TRIM('哈哈哈'))
----------------------
                     4


⑦ replace(str,子串,另一个字符串):将字符串str中的字串,替换为另一个字符串。


SQL> select substr('18455683467',5,4) from dual;
SUBSTR('18455683467',5,4)
-------------------------
5683
SQL> select replace('18455683467',substr('18455683467',5,4),'****') from dual;
REPLACE('18455683467',SUBSTR('
------------------------------
1845****467
SQL> select replace('张无忌爱上了周芷若','周芷若','赵敏') from dual;
REPLACE('张无忌爱上了周芷若','
------------------------------
张无忌爱上了赵敏


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
JSON 关系型数据库 MySQL
Mysql(5)—函数
MySQL提供了许多内置的函数以帮助用户进行数据操作和分析。这些函数可以分为几类,包括聚合函数、字符串函数、数值函数、日期和时间函数、控制流函数等。
70 1
Mysql(5)—函数
|
1月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
48 3
|
14天前
|
SQL Oracle 关系型数据库
[Oracle]面试官:你举例几个内置函数,并且说说如何使用内置函数作正则匹配
本文介绍了多种SQL内置函数,包括单行函数、非空判断函数、日期函数和正则表达式相关函数。每种函数都有详细的参数说明和使用示例,帮助读者更好地理解和应用这些函数。文章强调了字符串操作、数值处理、日期计算和正则表达式的使用方法,并提供了丰富的示例代码。作者建议读者通过自测来巩固学习成果。
13 1
[Oracle]面试官:你举例几个内置函数,并且说说如何使用内置函数作正则匹配
|
13天前
|
关系型数据库 MySQL Serverless
MySQL函数
最常用的MySQL函数,包括聚合函数,字符串函数,日期时间函数,控制流函数等
|
1月前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
61 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
1月前
|
Java 关系型数据库 MySQL
springboot学习五:springboot整合Mybatis 连接 mysql数据库
这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
64 0
springboot学习五:springboot整合Mybatis 连接 mysql数据库
|
1月前
|
Java 关系型数据库 MySQL
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
这篇文章是关于如何使用Spring Boot框架通过JdbcTemplate操作MySQL数据库的教程。
24 0
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
|
16天前
|
SQL NoSQL 关系型数据库
|
1月前
|
存储 SQL 关系型数据库
MySQL 存储函数及调用
MySQL 存储函数及调用
54 3
|
1月前
|
缓存 关系型数据库 MySQL
MySQL 满足条件函数中使用查询最大值函数
MySQL 满足条件函数中使用查询最大值函数
120 1

推荐镜像

更多