MySQL – IS NOT NULL Operator
A NULL value in a MySQL table indicates a missing or unknown value. It appears to be blank and does not contain any data. This is different from zero values.
It is very important to understand that a NULL value is different than a zero value or a field that contains spaces. To check for NULL values in a table column, we can use two basic operators:
-
IS NULL
-
IS NOT NULL
MySQL IS NOT NULL Operator
The MySQL IS NOT NULL operator is used to verify whether a particular column has a non-null value or not. This operator can be used with SQL statements such as SELECT, UPDATE, and DELETE.
By using the IS NOT NULL operator in a conditional clause, we can only fetch the records that contain valid data in a particular column.
Syntax
Following is the syntax of IS NOT NULL in MySQL −
SELECT column_name1, column_name2, ... FROM table_name WHERE column_name IS NOT NULL;
Example
Firstly, let us create a table named CUSTOMERS using the following query −
CREATE TABLE CUSTOMERS ( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT, ADDRESS CHAR (25), SALARY DECIMAL (18, 2), PRIMARY KEY (ID) );
In the following query, we are using the INSERT statement to insert values to the table −
INSERT INTO CUSTOMERS VALUES (1, ''Ramesh'', 32, ''Ahmedabad'', NULL), (2, ''Khilan'', 25, ''Delhi'', 1500.00), (3, ''Kaushik'', NULL, ''Kota'', 2000.00), (4, ''Chaitali'', 25, ''Mumbai'', NULL), (5, ''Hardik'', 27, ''Bhopal'', 8500.00), (6, ''Komal'', NULL, ''Hyderabad'', 4500.00), (7, ''Muffy'', 24, ''Indore'', 10000.00);
The table is created as follows −
ID | NAME | AGE | ADDRESS | SALARY |
---|---|---|---|---|
1 | Ramesh | 32 | Ahmedabad | NULL |
2 | Khilan | 25 | Delhi | 1500.00 |
3 | Kaushik | NULL | Kota | 2000.00 |
4 | Chaitali | 25 | Mumbai | NULL |
5 | Hardik | 27 | Bhopal | 8500.00 |
6 | Komal | NULL | Hyderabad | 4500.00 |
7 | Muffy | 24 | Indore | 10000.00 |
Example
In the following query, we are going to return all the records from the CUSTOMERS table where the AGE is not NULL.
SELECT * FROM CUSTOMERS WHERE AGE IS NOT NULL;
Output
Following output is produced −
ID | NAME | AGE | ADDRESS | SALARY |
---|---|---|---|---|
1 | Ramesh | 32 | Ahmedabad | NULL |
2 | Khilan | 25 | Delhi | 1500.00 |
4 | Chaitali | 25 | Mumbai | NULL |
5 | Hardik | 27 | Bhopal | 8500.00 |
7 | Muffy | 24 | Indore | 10000.00 |
IS NOT NULL with COUNT() function
We can use the IS NOT NULL operator along with the MySQL COUNT() function to count only the non-null values in a specific column(s).
Syntax
Following is the syntax of the IS NOT NULL with COUNT() function in MySQL −
SELECT COUNT(column_name1, column_name2, ...) FROM table_name WHERE condition IS NOT NULL;
Example
The following query returns the count of all rows in the CUSTOMERS table where the ADDRESS column is not NULL.
SELECT COUNT(*) FROM CUSTOMERS WHERE ADDRESS IS NOT NULL;
Output
On executing the above query, it will generate an output as shown below −
COUNT(*) |
---|
5 |
IS NOT NULL with UPDATE statement
In MySQL, we can update all the non-null rows in a specific column(s) using the UPDATE statement with IS NOT NULL operator.
Syntax
Following is the syntax of the IS NOT NULL operator with the UPDATE statement in MySQL –
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE columnname1, columnname2, ... IS NOT NULL;
Example
In the following query, we will update the SALARY column to a value of 9000 for all records where the SALARY column is not NULL −
UPDATE CUSTOMERS SET SALARY = 20000 WHERE SALARY IS NOT NULL;
Verification
To check whether the table has been updated or not, execute the SELECT query to display the CUSTOMERS table.
ID | NAME | AGE | ADDRESS | SALARY |
---|---|---|---|---|
1 | Ramesh | 32 | Ahmedabad | NULL |
2 | Khilan | 25 | Delhi | 20000.00 |
3 | Kaushik | NULL | Kota | 20000.00 |
4 | Chaitali | 25 | Mumbai | NULL |
5 | Hardik | 27 | Bhopal | 20000.00 |
6 | Komal | NULL | Hyderabad | 20000.00 |
7 | Muffy | 24 | Indore | 20000.00 |
IS NOT NULL with DELETE statement
In MySQL, we can delete all the non-null rows in a specific column(s) using the DELETE statement with IS NOT NULL operator.
Syntax
Following is the syntax of the IS NOT NULL operator with the DELETE statement in MySQL –
DELETE FROM table_name WHERE columnname1, columnname2, ... IS NOT NULL;
Example
In the following query, we are trying to delete records which are not null in the AGE column of CUSTOMERS table.
DELETE FROM CUSTOMERS WHERE AGE IS NOT NULL;
Verification
To verify whether the table has been updated or not, display the table using a SELECT query.
ID | NAME | AGE | ADDRESS | SALARY |
---|---|---|---|---|
3 | Kaushik | NULL | Kota | 20000.00 |
6 | Komal | NULL | Hyderabad | 20000.00 |
IS NOT NULL Operator Using Client Program
In addition to executing the IS NOT NULL Operator on a MySQL Server using SQL query, we can also execute it using a client program.
Syntax
Following are the syntaxes of the IS NOT NULL Operator in MySQL table in various programming languages −
To execute the IS NOT NULL Operator in MySQL through a PHP program, we need to execute the SQL query with IS NOT NULL operator using the mysqli function named query() as −
$sql = "SELECT column_name1, column_name2, ... FROM table_name WHERE column_name IS NOT NULL"; $mysqli->query($sql);
To execute the IS NOT NULL Operator in MySQL through a JavaScript program, we need to execute the SQL query with IS NOT NULL operator using the mysql2 function named query() as −
sql= " SELECT column_name1, column_name2, ...FROM table_name WHERE column_name IS NOT NULL"; con.query(sql);
To execute the IS NOT NULL Operator in MySQL through a Java program, we need to execute the SQL query with IS NOT NULL operator using the function named executeQuery() provided by JDBC type 4 driver −
String sql = "SELECT column_name1, column_name2, ... FROM table_name WHERE column_name IS NOT NULL"; statement.executeQuery(sql);
To execute the IS NOT NULL Operator in MySQL through a Python program, we need to execute the SQL query with IS NOT NULL operator using the function named execute() provided by MySQL Connector/Python −
is_not_null_query = "SELECT column_name1, column_name2, ... FROM table_name WHERE column_name IS NOT NULL" cursorObj.execute(is_not_null_query );
Example
Following are the implementations of this operation in various programming languages −
$dbhost = ''localhost $dbuser = ''root $dbpass = ''password $dbname = ''TUTORIALS $mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname); if($mysqli->connect_errno ) { printf("Connect failed: %s
", $mysqli->connect_error); exit(); } //printf(''Connected successfully.
''); $sql = "SELECT * FROM CUSTOMERS WHERE AGE IS NOT NULL"; $result = $mysqli->query($sql); if ($result->num_rows > 0) { printf("Table records: n"); while($row = $result->fetch_assoc()) { printf("Id %d, Name: %s, Age: %d, Address %s, Salary %f", $row["ID"], $row["NAME"], $row["AGE"], $row["ADDRESS"], $row["SALARY"]); printf("n"); } } else { printf(''No record found.
''); } mysqli_free_result($result); $mysqli->close();
Output
The output obtained is as follows −
Table records: Id 1, Name: Ramesh, Age: 32, Address Hyderabad, Salary 0.000000 Id 2, Name: Khilan, Age: 25, Address , Salary 1500.000000 Id 4, Name: Chaital, Age: 25, Address Mumbai, Salary 0.000000 Id 5, Name: Hardik, Age: 27, Address Vishakapatnam, Salary 8500.000000 Id 7, Name: Muffy, Age: 24, Address , Salary 10000.000000
var mysql = require(''mysql2''); var con = mysql.createConnection({ host: "localhost", user: "root", password: "Nr5a0204@123" }); //Connecting to MySQL con.connect(function (err) { if (err) throw err; console.log("Connected!"); console.log("--------------------------"); //Creating a Database sql = "create database TUTORIALS" con.query(sql); //Select database sql = "USE TUTORIALS" con.query(sql); //Creating CUSTOMERS table sql = "CREATE TABLE CUSTOMERS(ID INT NOT NULL,NAME VARCHAR(20),AGE INT,ADDRESS CHAR(25),SALARY DECIMAL(18, 2),PRIMARY KEY(ID));" con.query(sql); //Inserting Records sql = "INSERT INTO CUSTOMERS(ID, NAME, AGE, ADDRESS, SALARY) VALUES(1,''Ramesh'', 32, ''Hyderabad'',NULL),(2,''Khilan'', 25, NULL, 1500.00),(3,''kaushik'', NULL, ''Hyderabad'', 2000.00),(4,''Chaital'', 25, ''Mumbai'', NULL),(5,''Hardik'', 27, ''Vishakapatnam'', 8500.00),(6, ''Komal'',NULL, ''Vishakapatnam'', 4500.00),(7, ''Muffy'',24, NULL, 10000.00);" con.query(sql); //Using NOT EQUAL Operator sql = "SELECT * FROM CUSTOMERS WHERE AGE IS NOT NULL;" con.query(sql, function(err, result){ if (err) throw err console.log(result) }); });
Output
The output produced is as follows −
Connected! -------------------------- [ {ID: 1, NAME: ''Ramesh'', AGE: 32, ADDRESS: ''Hyderabad'', SALARY: null}, { ID: 2, NAME: ''Khilan'', AGE: 25, ADDRESS: null, SALARY: ''1500.00'' }, { ID: 4, NAME: ''Chaital'', AGE: 25, ADDRESS: ''Mumbai'', SALARY: null }, { ID: 5, NAME: ''Hardik'', AGE: 27, ADDRESS: ''Vishakapatnam'',SALARY: ''8500.00'' }, { ID: 7, NAME: ''Muffy'', AGE: 24, ADDRESS: null, SALARY: ''10000.00'' } ]
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class IsNotNullOperator { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/TUTORIALS"; String user = "root"; String password = "password"; ResultSet rs; try { Class.forName("com.mysql.cj.jdbc.Driver"); Connection con = DriverManager.getConnection(url, user, password); Statement st = con.createStatement(); //System.out.println("Database connected successfully...!"); String sql = "SELECT * FROM CUSTOMERS WHERE AGE IS NOT NULL"; rs = st.executeQuery(sql); System.out.println("Table records: "); while(rs.next()) { String id = rs.getString("Id"); String name = rs.getString("Name"); String age = rs.getString("Age"); String address = rs.getString("Address"); String salary = rs.getString("Salary"); System.out.println("Id: " + id + ", Name: " + name + ", Age: " + age + ", Addresss: " + address + ", Salary: " + salary); } }catch(Exception e) { e.printStackTrace(); } } }
Output
The output obtained is as shown below −
Table records: Id: 1, Name: Ramesh, Age: 32, Addresss: Hyderabad, Salary: null Id: 2, Name: Khilan, Age: 25, Addresss: null, Salary: 1500.00 Id: 4, Name: Chaital, Age: 25, Addresss: Mumbai, Salary: null Id: 5, Name: Hardik, Age: 27, Addresss: Vishakapatnam, Salary: 8500.00 Id: 7, Name: Muffy, Age: 24, Addresss: null, Salary: 10000.00
import mysql.connector #establishing the connection connection = mysql.connector.connect( host=''localhost'', user=''root'', password=''password'', database=''tut'' ) cursorObj = connection.cursor() is_not_null_query = f""" SELECT * FROM CUSTOMERS WHERE AGE IS NOT NULL; """ cursorObj.execute(is_not_null_query) # Fetching all the rows that meet the criteria filtered_rows = cursorObj.fetchall() for row in filtered_rows: print(row) cursorObj.close() connection.close()
Output
Following is the output of the above code −
(1, ''Ramesh'', 32, ''Hyderabad'', None) (2, ''Khilan'', 25, None, Decimal(''1500.00'')) (4, ''Chaital'', 25, ''Mumbai'', None) (5, ''Hardik'', 27, ''Vishakapatnam'', Decimal(''8500.00'')) (7, ''Muffy'', 24, None, Decimal(''10000.00''))