`
weishaoxiang
  • 浏览: 96230 次
  • 性别: Icon_minigender_1
  • 来自: 广西
社区版块
存档分类
最新评论

ORACLE学习笔记系列(9)通配符和特殊字符

 
阅读更多
ORACLE学习笔记系列(9)通配符和特殊字符

  
一、字符匹配:[NOT] LIKE ‘<匹配串>’ 

1、<匹配串>可以是一个完整的字符串,也可以含有通配符的字符串。

2、能与LIKE一起使用的通配符包括“%”、“_”。
    %(百分号):表示任意数量的字符,或者可能根本没有字符。
    _(下划线):表示确切的任意单个未知字符。 

    
3、使用LIKE时,NULL不能被%匹配到。 

SELECT COUNT(*) AS C FROM DUAL WHERE 'abcde' LIKE '%';
SELECT COUNT(*) AS C FROM DUAL WHERE 'abcde' LIKE 'a%';
SELECT COUNT(*) AS C FROM DUAL WHERE 'abcde' LIKE '%e';
SELECT COUNT(*) AS C FROM DUAL WHERE 'abcde' LIKE '%c%';

SELECT COUNT(*) AS C FROM DUAL WHERE 'abcde' LIKE '_bcde';
SELECT COUNT(*) AS C FROM DUAL WHERE 'abcde' LIKE 'abc__';
SELECT COUNT(*) AS C FROM DUAL WHERE 'abcde' LIKE 'ab_de';

SELECT COUNT(*) AS C FROM DUAL WHERE NULL LIKE '%';
SELECT COUNT(*) AS C FROM DUAL WHERE NULL LIKE '_';

二、常用符号:

SELECT ASCII(' '), --CHR(32)
       ASCII('%'), --CHR(37)
       ASCII('&'), --CHR(38)
       ASCII('*'), --CHR(42)
       ASCII('_'), --CHR(95)
       ASCII(''''), --CHR(39)
       ASCII('"'), --CHR(34)
       ASCII(','), --CHR(44)
       ASCII('$'), --CHR(36)
       ASCII('?'), --CHR(63)
       ASCII('^'), --CHR(94)
       
       ASCII('a'), --CHR(97)
       ASCII('z'), --CHR(122)
       ASCII('0'), --CHR(48)
       ASCII('9'), --CHR(57)
       
       ASCII('+'), --CHR(43)
       ASCII('-'), --CHR(45)
       ASCII('*'), --CHR(42)
       ASCII('/'), --CHR(47)
       ASCII('='), --CHR(61)
       
       ASCII('|'), --CHR(124)
       
       CHR(10), --是一个换行符\n
       CHR(13), --是一个回车符\r
       
       'a' || CHR(10) || 'b',
       'a' || CHR(13) || 'b'
  FROM DUAL;
 

三、如何保存特殊字符到数据库中:

--如何插入百分号
INSERT INTO C VALUES (1, '100%'); --可以直接正常保存
INSERT INTO C VALUES (2, '100' || CHR(37) || 200); -- chr(37)代表字符%

--如何插入下划线
INSERT INTO C VALUES (3, 'a_b'); --可以直接正常保存
INSERT INTO C VALUES (4, 'a' || CHR(95) || 'b'); -- chr(95)代表字符_

--如何插入单引号
INSERT INTO C VALUES (5, 'i' || CHR(39) || 'm'); -- chr(39)代表字符'
INSERT INTO C VALUES (6, 'i''m'); -- 两个''可以表示一个'

--如何插入&符号
INSERT INTO C VALUES (7, CHR(38) || '_hello');-- chr(38)代表字符&

--另一种方法,使用 set define off 关闭替代变量的功能,再插入数据。
set define OFF;
INSERT INTO C VALUES (8, '&_hello');
  

四、如何匹配查询特殊字符,如通配符%与_ 

--百分号%
SELECT * FROM C WHERE NAME LIKE '100\%' ESCAPE '\';
SELECT * FROM C WHERE NAME LIKE '100\%%' ESCAPE '\';
SELECT * FROM C WHERE NAME LIKE '100' || CHR(37) || '%';

--下划线_
SELECT * FROM C WHERE NAME LIKE 'a\_%' ESCAPE '\';
SELECT * FROM C WHERE NAME LIKE '_\__' ESCAPE '\';
SELECT * FROM C WHERE NAME LIKE '_'||chr(95)||'_' ;--不准确,会查出NAME值为3个字符长度的全部数据。
SELECT * FROM C WHERE NAME LIKE 'a'||chr(95)||'b' ;

--单引号'
SELECT * FROM C WHERE NAME LIKE 'i''m';
SELECT * FROM C WHERE NAME LIKE 'i' || CHR(39) || 'm';  
SELECT * FROM C WHERE NAME LIKE 'i\''m' ESCAPE '\';--报错
 
--符号&
SELECT * FROM C WHERE NAME LIKE '&_hello'; --提示输入变量“_hello”
SELECT * FROM C WHERE NAME LIKE '\&%' ESCAPE '\';--报错
SELECT * FROM C WHERE NAME LIKE CHR(38) || '_hello';

五、去除空格换行

SELECT ID,
       NAME,
       TRIM(REPLACE(NAME, ' ' )) 去除空格,
       REPLACE(NAME, CHR(13), '') 去除回车,
       REPLACE(NAME, CHR(10), '') 去除换行
  FROM C;

 
--字符相关函数
LTRIM
  LTRIM函数删除字符串左边的前缀字符。一般前缀字符总是空格。
  其具体的语法格式如下:
  LTRIM(string[,trimchars])
  其中:
  string  任意VARCHAR2型或CHAR型的数值
  trimchars  待删除的字符串
  下面是该函数的使用情况:
  LTRIM(’     Jeff’)=‘Jeff’(leading spaces removed)
  LTRIM(’*****Jeff’,’*’)=‘Jeff’
  LTRIM(’*!*!*Jeff’,’*!’)=‘Jeff’
  
RTRIM
	RTRIM函数压缩掉串右面的尾随字符,常常是从指定字符串(第一参数)中压缩空格。
	其具体的语法格式如下:
	RTRIM(string[,trimchars])
	其中:
	string	任意VARCHAR2型或CHAR型的数据
	trimchars	准备压缩掉的字符(串)
	下面是该函数的使用情况:
	RTRIM(‘Jeff     ’)= ‘Jeff’(trailing spaces removed)
	RTRIM(‘Jenny*****’)= ‘Jeff’
	RTRIM(‘Jenny*!*!*’)= ‘Jeff’	

TRIM
	TRIM函数将字符串的前缀(或尾随)字符删除。
	其具体的语法格式如下:
	TRIM([LEADING|TRAILING|BOTH][trimchar FROM] string)
	其中:
	LEADING	指明仅仅将字符串的前缀字符删除
	TRAILING	指明仅仅将字符串的尾随字符删除
	BOTH		指明既删除前缀字符,也删除尾随字符。这也是默认方式
	string	任意一待处理字符串
	trimchar	可选项。指明试图删除什么字符,默认被删除的字符是空格
	下面是该函数的使用情况:
	TRIM(’   Ashley   ’)=‘Ashley’
	TRIM(LEADING ’*’ FROM’***Ashley***’)=‘Ashley***’

REPLACE
	REPLACE函数在一字符串中搜索一指定的子串,并将其替换成另外一指定串。
	其具体的语法格式如下:
	REPLACE(string,substring[,replace_string])
	其中:
	string		被搜索字符串。在其中搜索待替换串
	substring		被搜索子串。所有找到的子串均被替换掉
	replace_string	替换结果子串。是一可选项。如果该参数被忽略,则所有被搜索到的子串实质上均被删除
	下面是该函数的使用情况:
	REPLACE(’This is a test’,’is’,’was’)=‘Thwas was a test’
	REPLACE(’This is a test’,’is’)=‘Th a test’


 

分享到:
评论

相关推荐

    oracle 个人学习笔记

    以下是对Oracle数据库一些基础知识的详细解释,主要基于提供的个人学习笔记内容。 **第一节:数据库管理** 1. **创建用户**:`CREATE USER`命令用于创建新的数据库用户,如`CREATE USER username IDENTIFIED BY ...

    Oracle学习笔记_(PDF版)

    ### Oracle学习笔记要点 #### 一、SQL Plus的使用方法 - **命令行方式**: 在命令行中直接输入 `sqlplus` 命令,并随后输入用户名和密码。 - **客户端方式**: 使用Oracle提供的SQL Plus客户端工具进行登录。 - **Web...

    oracle学习笔记1

    在尚学堂马世兵的Oracle课堂笔记中,我们能看到一系列基础的SQL查询语句,这些都是学习Oracle数据库不可或缺的部分。 首先,`DESC`命令用于获取表的结构信息,例如`DESC emp`、`DESC dept`和`DESC salgrade`分别...

    oracle数据库学习笔记

    ### Oracle 数据库学习笔记 #### Oracle DML 数据库操作语言 - **数据插入**: 在 Oracle 数据库中,可以通过 `INSERT` 语句将一个表的部分数据插入到另一个表中。例如,利用 `INSERT INTO table_name (subquery)` ...

    Oracle查询操作的学习笔记

    ### Oracle查询操作学习笔记知识点详解 #### 一、Oracle用户管理与权限分配 ...以上是关于Oracle查询操作的学习笔记中的核心知识点汇总,希望能够帮助初学者更好地理解和掌握Oracle数据库的基础知识。

    oracle完整学习笔记

    Oracle是世界上最广泛使用的数据库管理系统之一,它提供了丰富的功能和强大的性能。本文主要聚焦于Oracle SQL的学习,涵盖了数据...通过不断实践和学习,我们可以熟练运用这些工具,以高效地管理和操作Oracle数据库。

    Oracle学习笔记

    ### Oracle学习笔记知识点详解 #### 一、Oracle账户解锁与密码过期处理 在Oracle数据库管理过程中,可能会遇到账户被锁定或密码过期的情况。这些情况通常需要通过一系列的SQL命令来解决。 - **账户被锁定**:在...

    最全的ORACLE-SQL笔记

    【Oracle SQL笔记详解】 Oracle SQL是用于访问和操作Oracle数据库的强大工具,涵盖了各种查询、更新和管理数据的方法。以下是对笔记中提及的一些关键...学习并掌握这些知识,对于有效管理和操作Oracle数据库至关重要。

    Oracle经典学习笔记

    从给定的“Oracle经典学习笔记”中,我们可以提炼出一系列关键的Oracle数据库操作与查询技巧,涵盖了SQL语言的基础到进阶用法。下面将详细解释这些知识点: ### SQL Plus登录与用户管理 - **登录SQL Plus:** 使用...

    oracle常用命令_笔记

    Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的SQL语言支持和...在实际应用中,还有许多其他高级特性和功能,如子查询、连接查询、游标、存储过程等,这些都是进一步学习Oracle数据库的重要内容。

    oracle课堂笔记

    ### Oracle课堂笔记知识点总结 #### Oracle数据库概述 - **Oracle** 是一款由Oracle公司开发的关系型...通过对上述知识点的学习,我们可以更好地理解Oracle数据库的核心概念和技术细节,为实际应用打下坚实的基础。

    oracle学习笔记

    根据提供的文件信息,我们可以归纳出一系列关于Oracle数据库学习的关键知识点,...以上是对提供的“oracle学习笔记”中的关键知识点的总结。这些基本的SQL操作和高级查询技术对于熟练掌握Oracle数据库是非常重要的。

    Oracle 11g学习笔记基础篇(pdf)

    - **LIKE**:用于模糊查询,支持通配符'%'和'_',分别代表任意数量的字符和单个字符。 - **IS NULL**与**IS NOT NULL**:用于判断字段是否为NULL值。 以上内容涵盖了Oracle 11g基础篇中的核心知识点,对于初学者来说...

    Oracle11g学习笔记一.docx

    在学习Oracle 11g时,首先要了解的关键服务包括OracleOraDb11g_home1TNSListener和OracleServiceORCL,这两个服务分别对应于监听器和数据库服务,对于数据库的正常运行至关重要。 监听器(OracleOraDb11g_home1...

    Oracle BJSXT笔记PDF

    根据提供的信息,我们可以总结出以下Oracle数据库相关的知识点: ...以上知识点涵盖了从基础的数据库连接到复杂的数据筛选与处理等方面的内容,对于学习Oracle数据库管理和查询来说是非常实用的基础知识。

    ORACLE使用心得笔记

    以上就是从“ORACLE使用心得笔记”中提炼出的关键知识点,涵盖了Oracle数据库的基础操作、数据查询与管理、数据类型与运算、模式匹配与逻辑操作以及数据转换与函数应用等多个方面,希望对正在学习和使用Oracle数据库...

    2018教程读书笔记之oracle从入门到精通

    Oracle数据库是世界上最...以上内容构成了Oracle数据库基础操作的核心部分,对于初学者来说,理解和掌握这些知识点是进一步学习Oracle数据库管理、开发和优化的基础。通过实践和练习,可以逐步熟练运用这些概念和技巧。

    oracle/SQL和PL/SQL课堂笔记

    Oracle SQL和PL/SQL是数据库管理和编程的重要工具,主要用于...这些笔记提供了学习SQL和Oracle数据库操作的基本框架,对于初学者来说是非常有价值的资源。通过实践和深入学习,可以掌握更复杂的查询技巧和PL/SQL编程。

    ORACLE学习笔记-查询篇

    在Oracle中,查询是数据操作的核心,本篇笔记将重点介绍Oracle查询的基本语法和一些高级特性。 首先,我们从最基础的查询开始。在Oracle中,使用`SELECT`语句来获取数据。例如,`SELECT * FROM STU` 将返回表`STU`...

Global site tag (gtag.js) - Google Analytics