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