HSQLDB-Null 값

SQL NULL은 누락 된 값을 나타내는 데 사용되는 용어입니다. 테이블의 NULL 값은 공백으로 표시되는 필드의 값입니다. 필드 또는 열 값을 NULL과 비교하는 조건을 지정하려고 할 때마다 제대로 작동하지 않습니다.

세 가지를 사용하여 NULL 값을 처리 할 수 ​​있습니다.

  • IS NULL − 연산자는 열 값이 NULL이면 참을 반환합니다.

  • IS NOT NULL − 연산자는 열 값이 NOT NULL이면 true를 반환합니다.

  • <=> − 연산자는 = 연산자와 달리 두 개의 NULL 값에 대해서도 참인 값을 비교합니다.

NULL 또는 NOT NULL 인 열을 찾으려면 각각 IS NULL 또는 IS NOT NULL을 사용하십시오.

테이블이있는 예를 고려해 보겠습니다. tcount_tbl두 개의 열, author 및 tutorial_count를 포함합니다. tutorial_count에 NULL 값을 제공 할 수 있습니다. 이는 작성자가 하나의 자습서도 게시하지 않았 음을 나타냅니다. 따라서 해당 작성자의 tutorial_count 값은 NULL입니다.

다음 쿼리를 실행하십시오.

create table tcount_tbl(author varchar(40) NOT NULL, tutorial_count INT);
INSERT INTO tcount_tbl values ('Abdul S', 20);
INSERT INTO tcount_tbl values ('Ajith kumar', 5);
INSERT INTO tcount_tbl values ('Jen', NULL);
INSERT INTO tcount_tbl values ('Bavya kanna', 8);
INSERT INTO tcount_tbl values ('mahran', NULL);
INSERT INTO tcount_tbl values ('John Poul', 10);
INSERT INTO tcount_tbl values ('Sathya Murthi', 6);

다음 명령을 사용하여 tcount_tbl 표.

select * from tcount_tbl;

위의 명령을 실행하면 다음과 같은 출력이 표시됩니다.

+-----------------+----------------+
|     author      | tutorial_count |
+-----------------+----------------+
|      Abdul S    |      20        |
|    Ajith kumar  |      5         |
|        Jen      |     NULL       |
|    Bavya kanna  |      8         |
|       mahran    |     NULL       |
|     John Poul   |      10        |
|   Sathya Murthi |      6         |
+-----------------+----------------+

tutorial_count 열이 NULL 인 레코드를 찾기위한 쿼리는 다음과 같습니다.

SELECT * FROM tcount_tbl WHERE tutorial_count IS NULL;

쿼리를 실행하면 다음 출력이 표시됩니다.

+-----------------+----------------+
|     author      | tutorial_count |
+-----------------+----------------+
|       Jen       |     NULL       |
|      mahran     |     NULL       |
+-----------------+----------------+

tutorial_count 열이 NULL이 아닌 레코드를 찾으려면 쿼리는 다음과 같습니다.

SELECT * FROM tcount_tbl WHERE tutorial_count IS NOT NULL;

쿼리를 실행하면 다음 출력이 표시됩니다.

+-----------------+----------------+
|      author     | tutorial_count |
+-----------------+----------------+
|      Abdul S    |      20        |
|     Ajith kumar |       5        |
|     Bavya kanna |       8        |
|     John Poul   |      10        |
|   Sathya Murthi |       6        |
+-----------------+----------------+

HSQLDB – JDBC 프로그램

다음은 tutorial_ count가 NULL이고 tutorial_count가 NULL이 아닌 테이블 tcount_tbl과 별도로 레코드를 검색하는 JDBC 프로그램입니다. 다음 프로그램을NullValues.java.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class NullValues {
   public static void main(String[] args) {
      Connection con = null;
      Statement stmt_is_null = null;
      Statement stmt_is_not_null = null;
      ResultSet result = null;
      try {
         Class.forName("org.hsqldb.jdbc.JDBCDriver");
         con = DriverManager.getConnection(
            "jdbc:hsqldb:hsql://localhost/testdb", "SA", "");
         stmt_is_null = con.createStatement();
         stmt_is_not_null = con.createStatement();
         result = stmt_is_null.executeQuery(
            "SELECT * FROM tcount_tbl WHERE tutorial_count IS NULL;");
         System.out.println("Records where the tutorial_count is NULL");
         
         while(result.next()){
            System.out.println(result.getString("author")+" |
            "+result.getInt("tutorial_count"));
         }
         result = stmt_is_not_null.executeQuery(
            "SELECT * FROM tcount_tbl WHERE tutorial_count IS NOT NULL;");
         System.out.println("Records where the tutorial_count is NOT NULL");
         
         while(result.next()){
            System.out.println(result.getString("author")+" |
            "+result.getInt("tutorial_count"));
         }
      } catch (Exception e) {
         e.printStackTrace(System.out);
      }
   }
}

다음 명령을 사용하여 위 프로그램을 컴파일하고 실행합니다.

\>javac NullValues.java
\>Java NullValues

위의 명령을 실행하면 다음과 같은 출력이 표시됩니다.

Records where the tutorial_count is NULL
Jen         | 0
mahran      | 0

Records where the tutorial_count is NOT NULL
Abdul S        | 20
Ajith kumar    | 5
Bavya kanna    | 8
John Poul      | 10
Sathya Murthi  | 6