字符函数接受字符输入,可以返回字符或数字值作为输出。SQL提供了许多不同的字符数据类型,包括–CHAR、VARCHAR、VARCHAR2、LONG、RAW和LONG RAW。各种数据类型分为三种不同的数据类型:
null
- 瓦查尔2 –一种可变长度字符数据类型,其数据由RDBMS转换。
- 烧焦 –固定长度的数据类型。
- 未经加工的 –一种可变长度的数据类型,其数据不被RDBMS转换,而是以“原始”形式保留。
注: 当character函数返回字符值时,该值始终为VARCHAR2(可变长度)类型,但有以下两个例外:上限和下限。这些函数分别转换为大写和小写,如果调用它们进行转换的字符串不正确,则返回字符值(固定长度) 固定长度 字符参数。
角色功能
SQL提供了一组丰富的字符函数,允许您获取有关字符串的信息,并以多种方式修改这些字符串的内容。字符函数有以下两种类型: 1.外壳操纵功能(下、上和初始盖) 2.字符操作功能(CONCAT、LENGTH、SUBSTR、INSTR、LPAD、RPAD、TRIM和REPLACE)
案例操纵函数
- 较低: 此函数用于将字母字符值转换为小写。如果传入的字符串是固定长度的,LOWER将实际返回一个固定长度的字符串。LOWER不会更改字符串中任何非字母的字符,因为大小写与数字和特殊字符(如美元符号($)或模数(%)无关。 语法:
LOWER(SQL course)
Input1: SELECT LOWER('GEEKSFORGEEKS') FROM DUAL; Output1: geeksforgeeks Input2: SELECT LOWER('DATABASE@456') FROM DUAL; Output2: database@456
- 上: 此函数用于将alpha字符值转换为大写。同样,如果传入的字符串是固定长度的,则UPPER函数也将实际返回一个固定长度的字符串。UPPER不会更改字符串中任何非字母的字符,因为大小写与数字和特殊字符(如美元符号($)或模数(%)无关。 语法:
UPPER(SQL course)
Input1: SELECT UPPER('geeksforgeeks') FROM DUAL; Output1: GEEKSFORGEEKS Input2: SELECT UPPER('dbms$508%7') FROM DUAL; Output2: DBMS$508%7
- INITCAP: 此函数用于将每个单词的第一个字母的alpha字符值转换为大写,并将所有其他字母的值转换为小写。字符串中的单词必须用#或u或空格分隔。 语法:
INITCAP(SQL course)
Input1: SELECT INITCAP('geeksforgeeks is a computer science portal for geeks') FROM DUAL; Output1: Geeksforgeeks Is A Computer Science Portal For Geeks Input2: SELECT INITCAP('PRACTICE_CODING_FOR_EFFICIENCY') FROM DUAL; Output2: Practice_Coding_For_Efficiency
字符操纵函数
- 康卡特: 此函数始终将string2附加(连接)到string1的末尾。如果字符串中的任何一个为NULL,CONCAT函数将返回非NULL参数。如果两个字符串都为NULL,CONCAT将返回NULL。 语法:
CONCAT('String1', 'String2')
Input1: SELECT CONCAT('computer' ,'science') FROM DUAL; Output1: computerscience Input2: SELECT CONCAT( NULL ,'Android') FROM DUAL; Output2: Android Input3: SELECT CONCAT( NULL ,NULL ) FROM DUAL; Output3: -
- 长度: 此函数返回输入字符串的长度。如果输入字符串为NULL,那么LENGTH函数返回NULL而不是零。此外,如果输入字符串的开头、中间或结尾包含额外的空格,那么LENGTH函数也包含额外的空格,并返回字符串的完整长度。 语法:
LENGTH(Column|Expression)
Input1: SELECT LENGTH('Learning Is Fun') FROM DUAL; Output1: 15 Input2: SELECT LENGTH(' Write an Interview Experience ') FROM DUAL; Output2: 34 Input3: SELECT LENGTH('') FROM DUAL; or SELECT LENGTH( NULL ) FROM DUAL; Output3: -
- SUBSTR: 此函数返回从给定起点到终点的字符串的一部分。如果未给出子字符串长度,则SUBSTR将返回所有字符,直到字符串结束(从指定的起始位置开始)。 语法:
SUBSTR('String',start-index,length_of_extracted_string)
Input1: SELECT SUBSTR('Database Management System', 9) FROM DUAL; Output1: Management System Input2: SELECT SUBSTR('Database Management System', 9, 7) FROM DUAL; Output2: Manage
- 说明: 此函数用于返回给定字符串中字符或字符串的数字位置。或者,你可以提供一个职位 M 开始搜索,然后 N 一根绳子。此外,如果没有给出起始位置,那么默认情况下,它会从索引1开始搜索。如果在字符串中搜索后未找到匹配项,则INSTR函数返回0。
Syntax: INSTR(Column|Expression, 'String', [,m], [n])
Input: SELECT INSTR('Google apps are great applications','app',1,2) FROM DUAL; Output: 23
- LPAD和RPAD: 这些函数返回向左或向右填充的字符串(根据使用情况);因此,“LPAD”中的“L”和“RPAD”中的“R”;到指定的长度,并使用指定的填充字符串。如果未指定填充字符串,则在给定字符串的左侧或右侧(根据使用情况)填充空格。 语法:
LPAD(Column|Expression, n, 'String') Syntax: RPAD(Column|Expression, n, 'String')
LPAD Input1: SELECT LPAD('100',5,'*') FROM DUAL; LPAD Output1: **100 LPAD Input2: SELECT LPAD('hello', 21, 'geek') FROM DUAL; LPAD Output2: geekgeekgeekgeekhello RPAD Input1: SELECT RPAD('5000',7,'*') FROM DUAL; RPAD Output1: 5000*** RPAD Input1: SELECT RPAD('earn', 19, 'money') FROM DUAL; RPAD Output1: earnmoneymoneymoney
- 修剪: 此函数从开始或结束(或两者)修剪字符串输入。如果没有指定要从字符串中删除的字符串或字符,并且字符串的开头或结尾存在一些额外的空间,那么这些额外的空间将被删除。
Syntax:
TRIM(Leading|Trailing|Both, trim_character FROM trim_source)
Input1: SELECT TRIM('G' FROM 'GEEKS') FROM DUAL; Output1: EEKS Input2: SELECT TRIM(' geeksforgeeks ') FROM DUAL; Output2:geeksforgeeks
- 替换: 此函数用于搜索字符串,如果找到,则在所有字符串出现时用给定的替换字符串替换它。REPLACE用于搜索字符的模式,然后在单个函数调用中更改该模式的所有实例。 如果替换字符串不是函数中给定字符串的所有匹配项,则删除该字符串的所有匹配项。如果既没有指定匹配字符串,也没有指定替换字符串,则REPLACE返回NULL。
语法:
REPLACE(Text, search_string, replacement_string)
Input1: SELECT REPLACE('DATA MANAGEMENT', 'DATA','DATABASE') FROM DUAL; Output1: DATABASE MANAGEMENT Input2: SELECT REPLACE('abcdeabcccabdddeeabcc', 'abc') FROM DUAL; Output2: deccabdddeec
本文由 安妮卡·戈亚尔。 如果你喜欢Geeksforgek并想投稿,你也可以使用contribute写一篇文章。极客。组织或邮寄你的文章到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。
如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END