EDUCBA Logo

EDUCBA

MENUMENU
  • Explore
    • EDUCBA Pro
    • PRO Bundles
    • All Courses
    • All Specializations
  • Blog
  • Enterprise
  • Free Courses
  • All Courses
  • All Specializations
  • Log in
  • Sign Up
Home Data Science Data Science Tutorials PostgreSQL Tutorial PostgreSQL Case Insensitive
 

PostgreSQL Case Insensitive

Updated May 31, 2023

PostgreSQL Case Insensitive

 

 

Introduction to PostgreSQL Case Insensitive

PostgreSQL case insensitive is defined as searching with considering as the SQL select queries and the regular expression in PostgreSQL. While using regular expressions, we need to use the PostgreSQL ~* operator instead of the like operator; we can also use the ilike operator in PostgreSQL. It can also create an extension name as citext to use the case-insensitive query in PostgreSQL; need to create it first to use the extension of citext. We have also used the lower function in PostgreSQL to use the case-insensitive query; we also have to add an index of the lower function on the column.

Watch our Demo Courses and Videos

Valuation, Hadoop, Excel, Mobile Apps, Web Development & many more.

Syntax

Different syntax are mentioned below:

1. PostgreSQL case insensitive by using the citext extension

Create extension citext (Create new extension of citext in PostgreSQL);
Select name_of_column1, name_of_column2, name_of_column3, …, name_of_columnN from name_of_table where name_of_column::citext IN (value_of_column1, value_of_column2, value_of_column3, …, value_of_columnN);

2. PostgreSQL case insensitive using the lower function 

SELECT name_of_column1, name_of_column2, name_of_column3, …, name_of_columnN from name_of_table WHERE lower('name_of_column') = LOWER('name_of_column');

3. PostgreSQL case insensitive using add the index of lower function 

Create index name_of_index on name_of_table (lower (name_of_column));

Below is the parameter description syntax of PostgreSQL case insensitive.

  • Select – The “SELECT” operation defines the retrieval of rows from a column without considering any casting requirements. We have to use the citext extension to retrieve records from the table.
  • Create extension – This is defined as creating an extension name as citext in PostgreSQL. So, for example, we can create this extension to define the case insensitive.
  • Citext – This is the extension used in PostgreSQL case insensitive. If we have to fetch records from the string table without casting, we must use the citext extension in PostgreSQL.
  • Name of column 1 to the name of column N – To perform a case-insensitive query in PostgreSQL and apply the lower function and citext extension to a selection of columns, you can specify the column names as “Name of column 1” to “Name of column N”.
  • Name of the table – The “Name of the table” refers to the specific table name used to select columns and apply the lower function and citext extension for a case-insensitive query in PostgreSQL.
  • Where condition – We use the where condition in PostgreSQL to retrieve the specified records from the table. We have used the where condition to use the citext extension in PostgreSQL.
  • Lower – The lower function is employed in case-insensitive queries. While using the lower function, it will not issue the error of typecasting.
  • Create index – We create an index on the column using the lower function. To create an index in PostgreSQL using the lower function, you can follow these steps.
  • Name of the index – The “Name of the index” refers to the designation of creating a new index in PostgreSQL using the lower function.

How Case Insensitive Query Work in PostgreSQL

  • Below is the working of case insensitive query in PostgreSQL.
  • Now, we are using citext extension to work on case-insensitive query in PostgreSQL. By default, PostgreSQL has not installed the citext extension; we need first to install the same on our server to use this extension.
  • The below example shows that by default citext extension is not installed; we need to install it first to use the same in PostgreSQL.
select * from stud2 where name::citext in ('ABC', 'PQR');
create extension citext;
select * from stud2 where name::citext in ('ABC', 'PQR');

Output:

PostgreSQL Case Insensitive output 1

  • In this example, we have created an extension of citext by using the command of creating an extension, and the extension name is citext.
  • After creating an extension, the select operation successfully uses the citext extension.
  • Citext extension will call lower functions internally into the system. The citext extension automatically applies the lower function. Therefore, we do not need to use the lower function in our query while using the citext extension in PostgreSQL.
  • To check citext extension is enabled or not, we are using the following command as follows.
\dx citext;

Output:

PostgreSQL Case Insensitive output 2

  • Using the above command, we can check whether the citext extension is installed on our PostgreSQL database server. Also, we can check the version name and schema name on which we have enabled the extension.
  • It will also show the description of the citext extension.

Examples

Below is an example of case insensitive in PostgreSQL as follows. We are using the case_test table to describe the example of case insensitive.

Below is the structure and data for the table of the case_test.

\d+ case_test;
select * from case_test;

Output:

PostgreSQL Case Insensitive output 3

1. Case insensitive query by using citext extension –

  • The example below shows that the case is insensitive using the citext extension.
  • We have used the ‘ABC,’ ‘PQR,’ ‘aBc,’ and ‘PQr’ strings to search the data from the case_test table.
select * from case_test where name::citext in ('ABC', 'PQR', 'aBc', 'PQr');

Output:

output 4

2. Case insensitive query by using lower function –

  • The example below shows that the case is insensitive using the lower function.
  • We have used a lower function on the name column to fetch the data from the case_test table.
SELECT * FROM case_test WHERE lower('Name') = LOWER('name');

Output:

output 5

3. Case-insensitive query by creating a lower function index on the column

The below example shows that case-insensitive query by creating a lower function index on the column.

Create index lower_idx on case_test (lower(name));
SELECT * FROM case_test WHERE name = 'ABC';

Output:

output 6

Recommended Articles

We hope that this EDUCBA information on “PostgreSQL Case Insensitive” was beneficial to you. You can view EDUCBA’s recommended articles for more information.

  1. PostgreSQL Vacuum
  2. PostgreSQL REINDEX
  3. Variables in PostgreSQL
  4. PostgreSQL Inner Join
Primary Sidebar
Footer
Follow us!
  • EDUCBA FacebookEDUCBA TwitterEDUCBA LinkedINEDUCBA Instagram
  • EDUCBA YoutubeEDUCBA CourseraEDUCBA Udemy
APPS
EDUCBA Android AppEDUCBA iOS App
Blog
  • Blog
  • Free Tutorials
  • About us
  • Contact us
  • Log in
Courses
  • Enterprise Solutions
  • Free Courses
  • Explore Programs
  • All Courses
  • All in One Bundles
  • Sign up
Email
  • [email protected]

ISO 10004:2018 & ISO 9001:2015 Certified

© 2025 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you

Loading . . .
Quiz
Question:

Answer:

Quiz Result
Total QuestionsCorrect AnswersWrong AnswersPercentage

Explore 1000+ varieties of Mock tests View more

EDUCBA
Free Data Science Course

Hadoop, Data Science, Statistics & others

By continuing above step, you agree to our Terms of Use and Privacy Policy.
*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA Login

Forgot Password?

🚀 Limited Time Offer! - 🎁 ENROLL NOW