Community Blog When to Use NULL and When to Use Empty String

When to Use NULL and When to Use Empty String

This article explains the difference between NULL and empty strings using MySQL on Alibaba Cloud RDS.

By Pablo Puig

Have you ever been confused about when to use NULL and when to use an empty string in a database table? Well, database developers use NULLs and empty strings interchangeably within their databases. That's not correct because NULL and empty string represent different things in the relational database. Using these values incorrectly or opting for the wrong one can have massively different results.


MySQL relational database is widely used by developers due to its advanced features, including various transaction support and built-in functions. The RDBMS standard library functions are a particular set of routines performing a specific task and returning results quickly. MySQL functions handle complex operations, including string formats, mathematical computations, I/O processing, and more.

This article will help you understand when to use NULL and when to use an empty string in MySQL functions on Alibaba Cloud RDS.

How to Launch an RDS Instance

Follow this step-by-step guide to launch an AsparaDB for the RDS instance:

  • Step 1: Log in to your Alibaba Cloud and navigate to AsparaDB for RDS under the Product and Services section:


  • Step 2: Select the Create Instance option to create the RDS instance:


Then, you will be redirected to the Product Purchase Console:


  • Step 3: Select your preferred payment method. In the basic configuration section, select the Region and Zones where you want to launch the RDS instance:


  • Step 4: Choose the instance configurations and storage types that best suit your requirements:


You will be redirected to the order confirmation page:


The service will be activated as soon as the payment is confirmed:


Note: It will take some time to prepare and launch your instance. Once the state of your instance is running, you can manage it from the console.

NULL or Empty String: Which One to Use

The concept of NULL and empty string often creates confusion since many people think NULL is the same as a MySQL empty string. However, this is not the case.

An empty string is a string instance of zero length. However, a NULL has no value at all.

We can use a test database and apply the knowledge in the production environment to understand the concept better.

Create a test database named info_db on the server using the syntax below:

mysql>Create database info_db CHARACTER SET utf8 COLLATE utf8_general_ci;

Switch to the database:

mysql > use info_db

Then, create a sample users table:

mysql> create table users (id BIGINT PRIMARY KEY, name VARCHAR (50), phone VARCHAR (50))

Use the example below to understand the concept of NULL and empty string:

mysql>INSERT into users (phone) VALUES (NULL);


mysql> INSERT into users (phones) VALUES (');

Both statements insert value in the phone column. However, the first query insets a NULL value, and the second inserts an empty string. The first one could be interpreted as an unknown number, and the second could be interpreted as the user has no phone number.

NULL works well when a UNIQUE field is set. For example, in this case, a phone number is optional. Since the phone number is a unique field, the user with no phone number will get added. However, it will throw an error of unique constraint if you use an empty string here. So, NULL is better.

An empty string is useful when the data comes from multiple resources. NULL is used when some fields are optional, and the data is unknown.


A string refers to a character's sequence. Sometimes strings can be empty or NULL. The difference is that NULL is used to refer to nothing. However, an empty string is used to point to a unique string with zero length.

0 0 0
Share on

Alibaba Cloud Community

900 posts | 201 followers

You may also like