📜  SQL |带有示例的字符函数

📅  最后修改于: 2022-05-13 01:55:07.506000             🧑  作者: Mango

SQL |带有示例的字符函数

字符函数接受字符输入并且可以返回字符或数值作为输出。 SQL 提供了许多不同的字符数据类型,包括 - CHAR、VARCHAR、VARCHAR2、LONG、RAW 和 LONG RAW。各种数据类型分为三种不同的数据类型:

  1. VARCHAR2 – 一种可变长度字符数据类型,其数据由 RDBMS 转换。
  2. CHAR – 固定长度数据类型。
  3. RAW – 一种可变长度数据类型,其数据不被 RDBMS 转换,而是以“原始”形式保留。

注意:当字符函数返回字符值时,该值始终为 VARCHAR2(可变长度)类型,但以下两个例外:UPPER 和 LOWER。这些函数分别转换为大写和小写,如果调用它们转换的字符串是固定长度的CHAR 参数,则返回 CHAR 值(固定长度)。

字符函数

SQL 提供了一组丰富的字符函数,允许您获取有关字符串的信息并以多种方式修改这些字符串的内容。字符函数有以下两种类型:
1. 大小写操作函数(LOWER、UPPER 和 INITCAP)
2. 字符操作函数(CONCAT、LENGTH、SUBSTR、INSTR、LPAD、RPAD、TRIM 和 REPLACE)

案例操作函数

  1. LOWER :此函数将字母字符值转换为小写。如果传入的字符串是固定长度的,LOWER 实际上会返回一个固定长度的字符串。 LOWER 不会更改字符串中不是字母的任何字符,因为大小写与数字和特殊字符无关,例如美元符号 ($) 或模数 (%)。
    句法:
    LOWER(SQL course)
    Input1: SELECT LOWER('GEEKSFORGEEKS') FROM DUAL;
    Output1: geeksforgeeks
    
    Input2: SELECT LOWER('DATABASE@456') FROM DUAL;
    Output2: database@456
  2. UPPER :此函数将字母字符值转换为大写。如果传入的字符串是固定长度的,那么 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
  3. INITCAP :此函数将每个单词的第一个字母的字母字符值转换为大写字母,而其他所有字母的值都转换为小写字母。字符串中的单词必须用# 或_ 或空格分隔。
    句法:
    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

字符操作函数

  1. CONCAT:此函数始终将 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: - 
  2. LENGTH:此函数返回输入字符串的长度。如果输入字符串为 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: - 
  3. 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 
  4. INSTR:此函数返回给定字符串中字符或字符串的数字位置。或者,您可以提供一个位置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 
  5. 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
  6. TRIM :此函数从开头或结尾(或两者)修剪字符串输入。如果没有指定要从字符串中修剪的字符串或字符,并且在字符串的开头或结尾处存在一些额外的空格,那么这些额外的空格将被修剪掉。
    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
  7. REPLACE :此函数搜索字符,如果找到,则在该字符串的所有出现处将字符串。 REPLACE 可用于搜索字符模式,然后在单个函数调用中更改该模式的所有实例。
    如果没有给出替换字符串,则 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