SQL | Wildcard operators

Prerequisite:  SQL | WHERE Clause
In the above mentioned article WHERE Clause is discussed in which LIKE operator is also explained, where you must have encountered the word wildcards now lets get deeper into Wildcards.

Wildcard operators are used with LIKE operator, there are four basic operators:

Operator Description
% It is used in substitute of zero or more characters.
_ It is used in substitute of one character.
[range_of_characters] It is used to fetch matching set or range of characters specified inside the brackets.
[^range_of_characters] or [!range of characters] It is used to fetch non-matching set or range of characters specified inside the brackets.

Basic syntax:



SELECT column1,column2 FROM table_name WHERE column LIKE wildcard_operator;
column1 , column2: fields in the table
table_name: name of table
column: name of field used for filtering data

table1

Queries

  • To fetch records from Student table with NAME ending with letter ‘T’.
    SELECT * FROM Student WHERE NAME LIKE '%T';
    

    Output:

    ROLL_NO NAME ADDRESS PHONE Age
    3 SUJIT ROHTAK XXXXXXXXXX 20
    3 SUJIT ROHTAK XXXXXXXXXX 20
  • To fetch records from Student table with NAME ending any letter but starting from ‘RAMES’.
    SELECT * FROM Student WHERE NAME LIKE 'RAMES_';
    

    Output:

    2RAMESHGURGAONXXXXXXXXXX18

    ROLL_NO NAME ADDRESS PHONE Age
    2 RAMESH GURGAON XXXXXXXXXX 18
  • To fetch records from Student table with address containing letters ‘a’, ‘b’, or ‘c’.
    SELECT * FROM Student WHERE ADDRESS LIKE '%[A-C]%';
    

    Output:

    2RAMESHGURGAONXXXXXXXXXX18

    ROLL_NO NAME ADDRESS PHONE Age
    2 RAMESH GURGAON XXXXXXXXXX 18
    2 RAMESH GURGAON XXXXXXXXXX 18
    3 SUJIT ROHTAK XXXXXXXXXX 20
    3 SUJIT ROHTAK XXXXXXXXXX 20
  • To fetch records from Student table with ADDRESS not containing letters ‘a’, ‘b’, or ‘c’.
    SELECT * FROM Student WHERE ADDRESS LIKE '%[^A-C]%';
    

    Output:

    ROLL_NO NAME ADDRESS PHONE Age
    1 Ram Delhi XXXXXXXXXX 18
    4 SURESH Delhi XXXXXXXXXX 18
  • To fetch records from Student table with PHONE field having a ‘9’ in 1st position and a ‘5’ in 4th position.
    SELECT * FROM Student WHERE PHONE LIKE '9__5%';
    

    Output:

    ROLL_NO NAME ADDRESS PHONE Age
    1 Ram Delhi XXXXXXXXXX 18
  • To fetch records from Student table with ADDRESS containing total of 6 characters.
    SELECT * FROM Student WHERE ADDRESS LIKE '______';
    

    Output:

    ROLL_NO NAME ADDRESS PHONE Age
    3 SUJIT ROHTAK XXXXXXXXXX 20
    3 SUJIT ROHTAK XXXXXXXXXX 20
  • To fetch records from Student table with ADDRESS containing ‘OH’ at any position, and the result set should not contain duplicate data.
    SELECT DISTINCT * FROM Student WHERE ADDRESS LIKE '%OH%';
    

    Output:

    ROLL_NO NAME ADDRESS PHONE Age
    3 SUJIT ROHTAK XXXXXXXXXX 20

This article is contributed by Pratik Agarwal. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.



My Personal Notes arrow_drop_up



Article Tags :
Practice Tags :


1


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.